Build with zk-X509
zk-X509 lets a wallet prove it holds a valid X.509 certificate identity with a zero-knowledge proof. The proof is verified on-chain and the wallet is marked verified in a registry — no personal data ever touches the chain. Your contract or dApp then gates access on a single view call: isVerified(wallet).
Gate access
Require a verified identity in your Solidity contract or frontend — the killer use case.
Deploy a registry
Spin up your own registry with custom CA trust anchors and field constraints (country, org…).
Onboard users
Send users to get verified, then read their status on-chain.
Gate your dApp in four steps — Solidity + TypeScript, with a live checker.
zk-x509-sdk — read helpers + a terminal CLI.
The IIdentityRegistry interface, events, and ABIs.
A machine-readable llms.txt describing the whole integration.
Protocol contracts
The shared infrastructure every integrator uses. Deploy your own registry through the factory — one registry per service.
Example registries
Operated by the zkScatter service (a reference consumer of zk-X509) — handy to inspect or to try the live checker against. They are not yours to gate on; deploy your own registry for your service.