Circuit Improvement Proposals (CIPs) are open specifications for privacy-preserving credential proofs on Ethereum and EVM-compatible networks.
Each CIP defines what is proven, what remains private, the credential or trust source being relied upon, nullifier semantics, the verifier interface, and relevant security assumptions. Reference implementations are maintained separately in the zkproofport/circuits repository.
Each CIP defines proof semantics independently of a particular application or integration.
CIPs are project-level RFCs inspired by the EIP process; they are not EIPs.
A CIP specifies the semantics of a credential proof independently of any one implementation. A technical reviewer should be able to determine:
- the credential source and trust anchor;
- the exact statement or predicate;
- public and private inputs;
- nullifier, scope, and linkability behavior;
- freshness and revocation assumptions;
- the verification interface and conformance requirements;
- known limitations and security-review status; and
- a pinned reference implementation when one exists.
- selective disclosure and minimal public information;
- explicit trust assumptions and limitations;
- scope and domain separation;
- privacy-preserving duplicate detection where applicable;
- implementation independence and verifier interoperability;
- reproducible implementations and deployments; and
- credential-source neutrality where the underlying statement permits it.
A CIP should enable an independent implementer to understand exactly what is proven, what remains private, which external entities or cryptographic assumptions are trusted, and how a compatible proof can be verified.
Credential source
↓
CIP specification
↓
Reference Noir circuit
↓
ZK proof
↓
EVM verifier
↓
Any compatible application
The CIPs repository contains specifications. The circuits repository contains Noir source, shared libraries, tests, generated Solidity verifiers, scripts, and deployment records.
Draft → Review → Final → Deprecated
| Status | Meaning |
|---|---|
| Draft | The specification is changing, important trust-model questions remain, or the implementation is incomplete or experimental. |
| Review | The specification is sufficiently complete for public review and has a reproducible implementation or test vector. Normative semantics may still change. |
| Final | Normative semantics are stable and no major backwards-incompatible changes are expected. |
| Deprecated | The CIP has been superseded or is no longer recommended for new implementations. |
Specification lifecycle status is tracked independently from implementation, deployment, and security-review status. See CIP-0 for the full process.
| CIP | Title | Status | Implementation | Security review | Reference verification |
|---|---|---|---|---|---|
| CIP-0 | CIP Process | Final | — | None | — |
| CIP-1 | Coinbase KYC Attestation | Review | Reference | Internal | Ethereum Sepolia, Base Sepolia, Base Mainnet |
| CIP-2 | Coinbase Country Predicate | Review | Reference | Internal | Ethereum Sepolia, Base Sepolia, Base Mainnet |
| CIP-3 | OIDC Domain Attestation | Review | Reference | Internal | Ethereum Sepolia, Base Sepolia, Base Mainnet |
| CIP-4 | GIWA Dojang Verified Address Proof | Draft | PoC | None | GIWA Sepolia |
| CIP-5 | Korean Mobile ID Selective Disclosure Profile | Draft | Experimental | None | Base Sepolia |
The current reference revision is 28bbc303e04b732eb612d419b44dfd39d8a38a9a. Each CIP pins its own implementation path and deployment records.
Reference implementations are informative rather than normative unless a CIP explicitly states otherwise. A conforming implementation may use different implementation tooling as long as it preserves the statement, public/private input semantics, and any proof-system or verifier requirements defined by the CIP.
Read CONTRIBUTING.md, CIP-0, and cip-template.md. New proposals should begin with a discussion of the credential source, trust assumptions, predicate, privacy goals, and known limitations.
Shared guidance is available in:
ZKProofport maintains mobile proving and SDK software that consumes several CIP reference circuits.
All CIPs are released under CC0.