Specifications for the Access Layer, meaning the paths through which people and their agents read from Ethereum, write to it, prove things about themselves, delegate authority, and exit when a provider fails.
The repository defines rules, interfaces, profiles, lifecycle status, and where each spec originally comes from. It does not list tools or implementations. It does not compete with EIPs and ERCs, W3C specs or the Tor protocol specs, it links to them, depends on them, or defines Access Layer profiles on top of them.
Renamed from zkspecs on 14 September 2026, following #29. Old links redirect.
Start with process/ to see how the repository works and where a new spec should go.
Generated from each spec's front matter by scripts/build_registry.py. Edit the spec, not this table.
| # | Name | Type | Status | Domains | Description |
|---|---|---|---|---|---|
| 1 | 1/COSS | process | deprecated | — | Specification framework and editorial process, superseded by process/ |
| 2 | 2/ANON-AADHAAR-V2 | protocol | draft | prove | Privacy-preserving verification of Aadhaar identity cards using ZK proofs |
| 3 | 3/SEMAPHORE-V4 | protocol | draft | read, write, prove | Anonymous group membership and signaling protocol |
| 4 | 4/EXCUBIAE | protocol | draft | prove, delegate | Composable attribute-based access control framework for EVM |
| 5 | 5/ZK-PROOF-OF-PERSONHOOD | protocol | draft | prove | ZK-based proof of personhood for online forums, text currently in zkID |
- Specs change slowly. The guides and tool lists around them change weekly. Kept together, every small update to a guide would show up as a change to the specs.
- Specs need a stricter review, approval and versioning process than the material around them.
Every spec here is hosted, mirrored or indexed, and carries a type and a lifecycle status. The process README says when to use each of the three, the front matter reference defines all three, and lifecycle.md defines what each status promises.
Specs may be tagged with the Access Layer verbs they serve, any of read, write, prove, delegate and exit. A spec routinely serves several. Semaphore covers reading a leaf position, writing an identity into a group, and proving membership, so it carries all three of those tags rather than being filed under one.
Read process/intake.md. New specs start as an issue, small changes start as a pull request.
CC0, the same as the EIP repository. Every spec ends with a copyright waiver, see process/governance.md.