AnonCreds

Identity Protocol

Anonymous Credentials: a verifiable-credential format that uses zero-knowledge proofs, so a holder can prove claims from credentials without revealing the credentials or a correlatable identifier. An issuer publishes a schema and a credential definition (with a public key), signs a credential for a holder, and can publish a revocation registry; the holder later produces a proof that discloses only chosen attributes or predicates (for example 'over 18') and proves the credential is not revoked, linking multiple credentials through a hidden master secret. The specification formalises an implementation in use since 2017, first in Hyperledger Indy and now the Hyperledger AnonCreds project, now hosted at the LF Decentralized Trust. The v1.0 draft aims to be ledger-agnostic .

Foundation

Details

License Permissive: code under Apache-2.0; the specification text under the Community Specification License 1.0. https://github.com/anoncreds/anoncreds-spec; https://github.com/anoncreds/anoncreds-rs (Rust reference implementation)
Dev Status 🟢 Active
Owner LF Decentralized Trust (Hyperledger AnonCreds project; the GitHub organisation 'anoncreds' describes itself as an LF Decentralized Trust project); the specification's editors include Stephen Curran, Sam Curren and others from IDunion and the Technische Universität Berlin
Governing Body LF Decentralized Trust, AnonCreds Project (charter and maintainer process in the anoncreds/governance repository)
Country International (an LF Decentralized Trust project; editors named across several organisations; the cited sources give no single country)
Start Year 2017
Stack Rust reference library (issuer, prover/holder, verifier services) with bindings; CL-signature-based zero-knowledge proofs; schema, credential definition, revocation registry and status-list objects published to a verifiable data registry of the implementer's choice
Funding Not stated by the project.
Last Investigated Oct 29, 2026

Topology view

This tool in the centre and the things it is directly related to. Each line names the kind of relationship.

Topology view: AnonCredsThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.AnonCredsAnimo (Conforming implementations, Protocol spoken by)Animodid:cheqd (Conforming implementations, Protocol spoken by)did:cheqddid:indy (Conforming implementations, Protocol spoken by)did:indyDIDComm (Conforming implementations)DIDCommDIDs (Conforms to)DIDsDock.io / Truvera (Conforming implementations, Protocol spoken by)Dock.io /TruveraKeyring (Conforming implementations)KeyringNorthern Block / 4sure (Conforming implementations, Protocol spoken by)NorthernBlock / 4sureVCs (Conforms to)VCs
  • Animo (Tool): Conforming implementations, Protocol spoken by
  • did:cheqd (Tool): Conforming implementations, Protocol spoken by
  • did:indy (Tool): Conforming implementations, Protocol spoken by
  • DIDComm (Tool): Conforming implementations
  • DIDs (Tool): Conforms to
  • Dock.io / Truvera (Tool): Conforming implementations, Protocol spoken by
  • Keyring (Tool): Conforming implementations
  • Northern Block / 4sure (Tool): Conforming implementations, Protocol spoken by
  • VCs (Tool): Conforms to

Open in Graph Explorer

Use Case Domains

Affordances

Sovereign identity Portable attestations Contextual disclosure

Identity Protocol Attributes

Origins Privacy-preserving credentials for self-sovereign identity, originating in the Hyperledger Indy project and generalised so the credentials no longer depend on one ledger; based on the 'Anonymous credentials with type-3 revocation' work by Khovratovich, Lodder and Parra
Database N/A
Query Language N/A
Data Formats AnonCreds objects (schema, credential definition, revocation registry definition and status list, credential offer, request, credential, presentation) as JSON; the specification defines each object
Mobile Support Library-level: the Rust library has bindings used by wallet applications; no application of its own
Web Support Library-level only
Native Apps Library-level: the Rust library is embedded in wallets and agents
Terms Free and open: code under Apache-2.0 and the specification under the Community Specification License 1.0
Funds Not stated by the project.
Based On The Hyperledger Indy credential implementation and Camenisch-Lysyanskaya signatures, with type-3 revocation (Khovratovich, Lodder, Parra); the v1.0 draft removes the dependency on one ledger
Permissions Issuers decide who receives credentials; holders decide what to disclose; verifiers decide which proofs to accept
Authentication & Identity A holder proves possession of credentials with zero-knowledge proofs bound to a hidden link secret; no global identifier is revealed to the verifier
Storage Model Schemas, credential definitions and revocation objects are published to a verifiable data registry (originally an Indy ledger, now any supported registry); credentials are held by the holder
Interoperability Used with Aries-style agents and a number of registries; the specification calls itself ledger-agnostic in v1.0; interoperability with W3C Verifiable Credentials data models is addressed by separate profiles outside the cited sources
Data Portability Credentials are held by the holder and can be presented to any verifier that supports the format; they are bound to the issuer's published definition
Governance & Decision Making Project charter and maintainer processes in the anoncreds/governance repository; the specification is the output of the AnonCreds Working Group's consensus
Protocol Maturity / Standardization v1.0 Draft specification under a community specification licence, with a reference implementation and years of deployment; not a W3C or IETF standard
Identity Standards Predates and differs from W3C Verifiable Credentials (it uses its own zero-knowledge format); related to W3C DID practice through Aries and registries
DID Methods Supported Registry-dependent; originally did:sov and Indy-based methods, with registry-agnostic identifiers in v1.0 (details are in the specification)
Key Management The issuer holds the credential-definition private key; the holder keeps a link secret; keys are managed by the implementing wallet or agent
Credential Types Zero-knowledge verifiable credentials with revocation; attributes encoded as integers
Verification Method The verifier checks a zero-knowledge presentation against the published credential definition and revocation status list, including predicates and non-revocation proofs
Privacy Features Zero-knowledge selective disclosure and predicates, unlinkable presentations, and link-secret binding so multiple credentials prove one holder without a shared identifier
Authentication Methods Zero-knowledge proofs of credential possession; the issuer authenticates through its published definition
Revocation Mechanism Type-3 accumulator-based revocation registries with status lists; the holder proves non-revocation without revealing the credential
Agent Types Supported Issuers, holders (provers) and verifiers: individuals, organisations and devices
Wallet/Client Types Wallets and agents that embed the library; the project's own code is a library
Recovery Mechanisms Not stated by the project.
Compliance / Regulations Not stated by the project.
Credential Exchange Protocols Credential offer, request and presentation flows defined in the specification; messaging is carried by the surrounding agent protocols
Trust Framework Trust in issuers' published credential definitions on a verifiable data registry, with the verifier choosing which issuers to accept
Cost Model Free to use; registry publication costs depend on the chosen registry
Censorship Resistance Moderate: verification needs only the published definition, but publishing and revocation depend on the chosen registry

Relationships

How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.

Conforms to