- OpenID4VCI
- OpenID4VP
- ISO 18013-5
- DC API
- SD-JWT VC
- mdoc
- W3C VC
- DIDComm
- AnonCreds
One framework
Every role in the credential ecosystem
Use the same agent and APIs whether you issue credentials, build a wallet or verify presentations.
Issuer
Issue credentials to any compliant wallet, with your own authorization flow, status lists and batch issuance.
Start buildingWallet
Build mobile and cloud wallets that receive, store and present credentials, online and in person, with keys in secure hardware.
Start buildingVerifier
Request exactly the claims you need with DCQL, online or through the Digital Credentials API in the browser.
Start buildingMediator
Run the cloud agent that queues and relays DIDComm messages for mobile wallets.
Start buildingIn production
Who uses Credo
Platforms, wallets and apps that run on Credo today.
A platform for issuing and verifying credentials in EUDI and other ecosystems. It can issue and verify credentials from national EUDI wallets such as France Identité and the German d‑you. Each customer is a separate Credo tenant.
An open source wallet app for iOS and Android, built with Credo on React Native. It supports the EUDI flows, such as receiving a PID and presenting it with OpenID4VP, as well as DIDComm, and is a starting point for building your own wallet.
Builds Hologram, a messaging app and AI agent framework where people, services and agents identify each other with verifiable credentials. The Hologram app and VS Agent, the service agent of the Verana trust network, are built on Credo.
A UK deep tech innovation organisation. Its open source Veritable framework provides a RESTful interface for supply chain use cases exploring verifiable credentials. The Veritable cloud agent runs on Credo, supporting DIDComm, W3C credentials and AnonCreds.
Building with Credo? Add your project.
Interoperable
Speaks the standards your ecosystem uses
Exchange protocols and credential formats are separate building blocks in Credo, so you can combine them the way your ecosystem requires: EUDI and mobile driving licences, Aries networks, or both.
| Format | OpenID4VC | ISO mdoc | DIDComm | ||||
|---|---|---|---|---|---|---|---|
| OpenID4VCI | OpenID4VP | DC API | Proximity | DC API | Issue Credential v2 | Present Proof v2 | |
SD-JWT VCdc+sd-jwt | Supported | Supported | Supported | Not supported | Not supported | Not supported | Not supported |
mdocISO 18013-5 | Supported | Supported | Supported | Supported: The BLE or NFC transport comes from a native module | Supported: ISO/IEC 18013-7 Annex C | Not supported | Not supported |
W3C VC 1.1, JWTjwt_vc_json | Supported | Supported | Supported | Not supported | Not supported | Not supported | Supported: Through DIF Presentation Exchange |
W3C VC 1.1, JSON-LDldp_vc | Partly supported: Issuing between Credo agents needs workarounds | Partly supported: Presenting with DCQL fails when Credo creates the presentation | Partly supported: Presenting with DCQL fails when Credo creates the presentation | Not supported | Not supported | Supported | Supported: Through DIF Presentation Exchange |
W3C VC 2.0, SD-JWTvc+sd-jwt | Supported | Supported | Supported | Not supported | Not supported | Supported: Aries RFC 0881 | Not supported |
W3C VC 2.0, Data Integrityeddsa-jcs-2022 | Not supported | Not supported | Not supported | Not supported | Not supported | Supported: The issuer doesn't verify the holder's binding proof | Not supported |
AnonCredsCL signatures | Not supported | Not supported | Not supported | Not supported | Not supported | Supported | Supported |
Pluggable by design
Pick the pieces you need
Every capability is a module. You choose the storage, key management, DID methods and protocols your deployment needs.
const agent = new Agent({
dependencies: agentDependencies,
modules: {
// Records in PostgreSQL with Drizzle, keys in Askar
storage: new DrizzleStorageModule({
database,
bundles: [tenantsBundle, openid4vcBundle, didcommBundle],
}),
askar: new AskarModule({
askar: NativeAskar,
enableStorage: false,
store,
}),
// Replace the default cache, required with tenants
cache: new CacheModule({ cache: new InMemoryLruCache({ limit: 500 }) }),
tenants: new TenantsModule(),
// Exchange protocols
openid4vc: new OpenId4VcModule(),
didcomm: new DidCommModule(),
},
})
Open source
Built in the open
Credo is an Apache 2.0 licensed project of the OpenWallet Foundation, developed by a community of maintainers and contributors.
Set up your first agent
Install Credo, configure storage and keys, and create your first DID in a few minutes.