š”ļø ZKAGE: Zero-Knowledge Age Verification
š„ What Inspired Us
In June 2025, the U.S. Supreme Court upheld Texas HB 1181, giving legal force to age-verification laws for adult content and setting a precedent for 22+ other states. Almost overnight, millions of websites faced an ultimatum: comply or block access.
But the existing solutions? Theyāre broken. Uploading your government ID to sketchy servers? Biometric scans on porn sites? Centralized databases just waiting to leak?
We saw an opportunity: replace intrusive surveillance with elegant cryptography. Our project was born out of the belief that privacy and compliance should not be mutually exclusive.
š§ What We Learned
⢠How different states interpret āreasonable age verificationā and the technical minimums to achieve it
⢠How to build a real ZK proof system using Noir and integrate it with browser wallets
⢠Why most privacy solutions fail: complexity, poor UX, and lack of legal literacy
⢠That compliance law isnāt just a checkboxāitās a battlefield of edge cases and precedent
š ļø How We Built It
⢠Backend: Fastify (Node.js) API that validates ZK proofs and handles jurisdiction-based age thresholds
⢠ZK Proof System: Noir-based circuits that prove age >= N without revealing DOB, using ephemeral, non-reversible inputs
⢠Frontend: Next.js + Tailwind UI with dynamic jurisdiction selector, instant proof feedback, and demo simulation
⢠Dev Portal: /developers hosts live API docs, OpenAPI schema, and state-by-state law matrix
⢠Compliance Engine: Built a crosswalk table of state laws + thresholds to validate incoming proofs properly
⢠Design: All identity claims are non-replayable, non-linkable, and disposableāno PII ever stored
ā ļø Challenges We Faced
⢠Legal ambiguity: Some states donāt define āreasonable verificationāāwe had to interpret statutes conservatively
⢠UX simplicity vs. cryptographic complexity: Making ZK feel like a single click
⢠No placeholders: We refused to ship pseudocode or mock endpointsāevery line runs in prod
⢠Performance tuning: ZK circuits can be slow; we had to carefully optimize compilation and batch verifications
š The Result
ZKAGE is the first fully legal-compliant, privacy-first age verification API in response to the 2025 Supreme Court ruling. Itās: ⢠š Legally sound in 22+ states ⢠𧬠Cryptographically private ⢠┠Fast enough for production-scale deployment ⢠𧰠Easy to integrate via /verify-age and /issue-proof endpoints
And best of all: we never see your name, your birthday, or your face.
Log in or sign up for Devpost to join the conversation.