🌟 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

Share this project:

Updates