Inspiration KYC in Web3 is clunky and privacy-hostile. We wanted a demo where users prove attributes (e.g., OVER18, AML_OK) without exposing PII—and devs can drop it into a dApp fast.

What it does BadgeMe issues a zk-style KYC badge experience: users enter a wallet, the UI shows Verified / Not Verified and displays example flags like OVER18 and AML_OK, powered by a mock API you can swap for a real attestation backend.

How we built it Next.js + Tailwind frontend with wallet input, re-verify action, and responsive layout. Mock API routes that simulate proof responses (easy to replace with real endpoints). Repo structure includes frontend, backend, contracts, deployments, and tests/e2e scaffolding.

Challenges we ran into Designing a clean UX that communicates “verified attributes” without revealing raw identity data. Keeping wallet validation simple for the demo (currently 0x…), with a path to Midnight’s Bech32 format.

Accomplishments that we’re proud of Click-through demo UI that works out of the box and clearly shows attribute badges. A modular setup where teams can plug in real attestation/key-gen routes later. Open-sourced under MIT, inviting contributions.

What we learned Small, clear signals (“Verified / Not Verified”, discrete flags) help users grasp selective disclosure fast. Good DX matters: a drop-in Next.js app lowers the barrier for compliance-minded dApps.

What’s next for BadgeMe Swap the mock API for production attestation endpoints (key-gen, attest, verify). Update wallet handling to Bech32 for Midnight network. Flesh out Solidity/contract flows for on-chain badge logic and add e2e tests in the existing scaffold. BadgeMe ships privacy-first Web3 KYC: issue zk-KYC badges proving 'OVER18'/'AML_OK' without exposing PII. Next.js UI with wallet input; demo now!

Share this project:

Updates