Verify Once. Prove Anything. Reveal Nothing
zKYC is a privacy-preserving identity verification system for Hong Kong ID (HKID) cards. Using zero-knowledge proofs generated entirely on a mobile phone, users can prove their identity is valid and that they are over 18 — without ever revealing their actual ID number or birth date to any third party. Built with Circom circuits, Groth16 proofs (snarkjs), and React Native. All proofs are compact (~720 bytes JSON) and directly verifiable by Solidity smart contracts on-chain.
Key Features
Local-First Privacy
All identity processing runs on the mobile device. The only data that leaves the phone is a set of hashed commitments and proof artifacts. No plaintext identity fields are ever transmitted.
Three Independent ZK Proofs
HKID validity, age threshold, and liveness are each proven by a separate Circom circuit. Groth16 proofs are generated through a hidden WebView bridge using snarkjs.
Dual-Chain Audit Design
Identity hashes are registered on a private EVM chain in batches, then anchored to a public Ethereum Sepolia chain as Merkle roots for transparent, independent auditability.
3
ZK circuits: HKID, Age, Liveness
294 / 248 / 515
Constraint counts (HKID / Age / Liveness)
~700–800 B
Typical JSON-serialized Groth16 proof payload
Proof generation timing is device-dependent. Pilot warm-path baselines are presented on the Results page.