🌟 Inspiration
With rising interest in decentralized infrastructure and on-chain access control, we wanted to explore how people could own and carry digital "passes" tied to real-world activities — like transit, events, or memberships — without depending on centralized storage or verification. This led us to build PassPort, a Web3-powered pass system using Privy authentication and Walrus decentralized storage.
🚀 What it does
PassPort lets users:
Log in with their wallet via Privy
Upload a digital "pass" (image) to decentralized storage using Walrus (via Tusky)
View all their previously uploaded passes securely and privately
Store metadata on-chain (optional for future versions)
🛠️ How we built it
Frontend: Built with Next.js and TailwindCSS for a clean UI
Authentication: Used Privy for seamless wallet-based login
Storage: Integrated Tusky for uploading to the Walrus decentralized storage layer
Backend: Node.js/Next.js API routes for handling uploads and storing metadata in MongoDB
😓 Challenges we ran into
Understanding how Walrus and Tusky differ from IPFS/Filecoin and integrating it properly
Handling async upload states and generating a public URL for preview
Debugging Privy’s wallet authentication and session handling across refreshes
Making uploaded images visible reliably from decentralized storage
🏆 Accomplishments that we're proud of
Successfully implemented decentralized file uploads and wallet login
Used cutting-edge storage tech (Walrus) that goes beyond IPFS/Filecoin
Built a working prototype that can be expanded for real-world applications like transit, ticketing, or digital identity
📚 What we learned
How Walrus and Sui provide a programmable storage alternative to IPFS/Filecoin
Best practices for integrating Privy and Tusky SDKs
The importance of fallbacks and error handling in decentralized apps
How to build a minimal full-stack Web3 dApp with wallet-based login, file upload, and metadata display
🔮 What's next for PassPort
Add token-gated access (e.g., only NFT holders can upload/view certain passes)
Integrate on-chain storage references or verifiable credentials
Mint uploaded passes as Soulbound Tokens or NFTs
Enable pass expiration or renewal tied to smart contracts
Deploy on Sui or Ethereum L2 for scalability
Built With
- metamask
- next.js
- privy
- sui
- tusky
- typescript
- walrus

Log in or sign up for Devpost to join the conversation.