Inspiration
Every day, websites ask people to hand over selfies, passports, and phone numbers just to prove they're not bots. That's a huge privacy risk — data breaches, identity theft, and surveillance. We asked ourselves: what if you could prove you're human without giving away anything about who you are? That's how ZIP was born.
The Midnight Network's privacy-first philosophy was the perfect match for this idea. Midnight believes sensitive data should be protected by default — and so do we.
What it does
ZIP lets you prove you're a real human to any app or website — without sharing your name, face, ID, or any personal data. Instead of uploading a selfie, you generate a zero-knowledge proof that simply says "yes, this person is real" and nothing more.
The app has three main flows:
- Create a Vault — You pick a username. ZIP creates a secret key and stores it on your device. Nothing goes to a server.
- Generate a Proof — You choose what to prove ("I'm human" or "I'm over 18"). Our Gemini AI checks if you're a real person by analyzing a short text sample. Then ZIP builds a zero-knowledge proof with that confidence score baked in.
- Use the Proof — We built a demo app called Nova Social. It's a social platform under bot attack. You verify with your ZIP proof, and the platform only gets a simple "yes, this person is real." It never learns your name or anything about you.
How we built it
- Frontend: React 19, TypeScript, and Vite for fast development. TailwindCSS v4 for a premium dark-mode look. Framer Motion for smooth, cinematic animations.
- AI: Google Gemini 2.5 Flash for real-time behavioral authenticity analysis. It checks if a text input sounds like a real human or a bot — no biometrics needed.
- Smart Contract: We wrote a Compact smart contract (
HumanityProof.compact) on the Midnight Network that handles proof registration, verification, and selective disclosure on-chain. - Architecture: The app was scaffolded with
create-mn-app. For the hackathon demo, cryptographic operations are simulated locally in the browser for speed and reliability, but the contract scaffold is ready for mainnet deployment.
Challenges we ran into
- Getting Gemini AI to return structured, reliable JSON responses for the authenticity analysis took some fine-tuning of the prompt and schema.
- Designing a UX that actually communicates what zero-knowledge proofs do — without confusing non-technical users — was harder than writing the code itself.
- Balancing between a fully functional blockchain integration and a polished, demo-ready experience within the hackathon timeframe.
What we learned
- Zero-knowledge cryptography doesn't have to be scary or confusing. With the right UX, you can make it feel natural and even exciting.
- Midnight's Compact language is surprisingly approachable for writing privacy-preserving smart contracts.
- AI and ZK together are a powerful combo — Gemini handles the "are you human" question, and ZK handles the "I'm not telling you who I am" part.
What's next for ZIP
- Deploy the
HumanityProof.compactcontract to Midnight testnet for real on-chain proof verification. - Add more disclosure options like proof of location, proof of membership, or proof of credentials.
- Build a browser extension so users can verify with ZIP on any website with one click.
- Integrate with real-world platforms that need bot protection without invading user privacy.
Log in or sign up for Devpost to join the conversation.