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:

  1. Create a Vault — You pick a username. ZIP creates a secret key and stores it on your device. Nothing goes to a server.
  2. 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.
  3. 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.compact contract 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.

Built With

Share this project:

Updates