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.

Protocol contracts

The shared infrastructure every integrator uses. Deploy your own registry through the factory — one registry per service.

NetworkSepolia (11155111)
RegistryFactory0x9e937dF6ac0E85979622519068412A518fa085d9
SP1 verifier0x261a1619cC63273de7c64872B769305732761888

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.

Users (zkScatter)0x3cF6A96f1970053ffDf957074F988aD53D13ada3
Relayers (zkScatter)0x9fDE6182B1fd10F2eDfE15b704FE95787C170914