Inspiration
Traditional KYC (Know Your Customer) processes require users to share sensitive personal data, which can lead to privacy risks and data breaches. Inspired by the growing need for privacy-first solutions and the power of zero-knowledge proofs (ZKP), I set out to build a KYC system where users can prove facts about themselves—like being over 18—without ever revealing their actual data.
What I learned
How to integrate Auth0 for secure authentication and user management. How to use MongoDB Atlas for cloud-based, scalable data storage. The principles and UX of zero-knowledge proofs, and how to simulate ZKP flows in a web app. The importance of clear privacy communication and user-friendly design.
How I built it
I designed a pixel-art themed web app using Node.js, Express, and EJS for a fun and retro user experience. Auth0 handles authentication, registration, and secure session management. MongoDB Atlas stores only ZKP proofs and minimal user data—never sensitive information. The KYC flow simulates ZKP by letting users prove eligibility (like age) without sharing their real details. I added animated explanations and real-world ZKP examples (age, passwordless login, voting, DeFi)
Challenges I faced
Integrating Auth0 and MongoDB Atlas securely with a local and public (ngrok) environment. Simulating ZKP in a way that is both understandable and technically sound for a hackathon demo. Designing a UI that is both playful and clear about privacy. Handling edge cases like password resets and ensuring no sensitive data is ever stored.
Built With
- auth0
- circom
- css
- ejs
- express.js
- javascript
- mongodb-atlas
- ngrok
- node.js
Log in or sign up for Devpost to join the conversation.