Credo documentation
Credo is an open source TypeScript framework for verifiable credentials. You use it to build issuers, verifiers, wallets and mediators that exchange SD-JWT VC, mdoc, W3C and AnonCreds credentials over OpenID4VC and DIDComm, on Node.js and React Native.
Start here
Choose your setup recommends a platform, protocol, credential format and storage to start with.
Installation
Set up a Node.js or React Native project and install Credo.
Your first agent
Configure storage and keys, initialize an agent and create a DID.
Verifiable credentials
Issuers, holders and verifiers, and how protocols and formats fit together.
Example setups
Complete agent configurations for a mobile wallet, an issuer and verifier service, a multi-tenant service, a mediator and tests.
Build by role
Issue credentials
Run an OpenID4VCI issuer and offer credentials to any compliant wallet.
Build a wallet
Receive, store and present credentials from a mobile or cloud wallet.
Verify credentials
Request claims with DCQL and verify presentations with OpenID4VP.
Run a mediator
Relay DIDComm messages for mobile wallets that can't receive them directly.
Explore the docs
Agent setup
Storage, key management, caching, multi-tenancy and logging.
Protocols
OpenID4VC and DIDComm, role by role, and how to use each credential format with them.
Credential formats
SD-JWT VC, mdoc, W3C Verifiable Credentials, AnonCreds and status lists.
DIDs and trust
DID methods, X.509 certificates and deciding which issuers to trust.
Use with AI coding agents
Point your coding agent at llms.txt, an index of these docs as Markdown. Every page is also available as Markdown by adding .md to its URL. See AI coding agents.
Get help
Ask questions in the #credo channel on Discord, open an issue on GitHub, or join the working group calls.