Spark
Mainnet

Unisky Pass

I built Unisky Pass, a mobile-first onchain membership system on Monad. Issuers can create programs and issue non-transferable, time-based passes to wallet addresses. At check-in, the issuer generates a fresh 60-second challenge. The member signs an EIP-712 proof, and the issuer scans the response. Unisky Pass then verifies the signer and performs a fresh Monad contract read before returning VALID. The app supports Monad mainnet and testnet, Privy onboarding, optional public pass labels and notes, and does not hold user funds. It solves the problem of memberships being verified through screenshots, static QR codes, or manual checks. A screenshot can look correct while the membership is expired, revoked, tied to another wallet, or from the wrong deployment. Unisky Pass makes the proof wallet-bound, time-limited, chain-bound, and based on current contract state. I learned how to build a complete Monad dApp across Solidity, viem, wagmi, QR flows, and EIP-712 signatures. I also learned the importance of binding every proof to the exact chain and contract, treating browser storage as untrusted, isolating mainnet and testnet state, and designing clear failure states for real-world verification.

讨论

登录后即可评论此项目。
0
L@lucky-chad·5 天前

Hmm