Credo keeps exchange protocols and credential formats separate, so most formats work with more than one protocol. For which ones to start with, see Choose your setup.
- * mdoc with ISO mdoc Proximity: The BLE or NFC transport comes from a native module.
- * mdoc with ISO mdoc DC API: ISO/IEC 18013-7 Annex C.
- * W3C VC 1.1, JWT with DIDComm Present Proof v2: Through DIF Presentation Exchange.
- * W3C VC 1.1, JSON-LD with OpenID4VC OpenID4VCI: Issuing between Credo agents needs workarounds.
- * W3C VC 1.1, JSON-LD with OpenID4VC OpenID4VP: Presenting with DCQL fails when Credo creates the presentation.
- * W3C VC 1.1, JSON-LD with OpenID4VC DC API: Presenting with DCQL fails when Credo creates the presentation.
- * W3C VC 1.1, JSON-LD with DIDComm Present Proof v2: Through DIF Presentation Exchange.
- * W3C VC 2.0, SD-JWT with DIDComm Issue Credential v2: Aries RFC 0881.
- * W3C VC 2.0, Data Integrity with DIDComm Issue Credential v2: The issuer doesn't verify the holder's binding proof.
OpenID for Verifiable Credentials
Package: @credo-ts/openid4vc. See OpenID4VC.
| Specification | Versions | Roles |
|---|
| OpenID for Verifiable Credential Issuance | 1.0, drafts 11 to 15 | Issuer, holder |
| OpenID for Verifiable Presentations | 1.0, drafts 21 and 24 | Verifier, holder |
| Digital Credentials Query Language (DCQL) | OpenID4VP 1.0 | Verifier, holder |
| DIF Presentation Exchange | 2.0, with OpenID4VP drafts only | Verifier, holder |
| W3C Digital Credentials API | OpenID4VP requests. For ISO 18013-7 requests, see ISO mdoc | Verifier, holder |
| OAuth 2.0 DPoP, PKCE, PAR | | Issuer, holder |
| OAuth 2.0 Attestation-Based Client Authentication (wallet attestations) | | Issuer, holder |
ISO mdoc
Package: @credo-ts/core (agent.mdoc). See ISO mdoc.
| Specification | Roles | Notes |
|---|
| ISO/IEC 18013-5 proximity presentation | Holder, verifier | Credo creates and verifies the device response. The BLE or NFC transport comes from a native module such as expo-mdoc-data-transfer. Reader authentication and device MAC aren't supported. |
| ISO/IEC TS 18013-7 Annex C, over the Digital Credentials API | Verifier, holder | Signed requests with reader authentication are supported. |
DIDComm
Package: @credo-ts/didcomm, with optional protocol packages. Credo implements DIDComm v1 messaging and the protocols below. See DIDComm.
| Protocol | Aries RFC | Package |
|---|
| Out of Band 1.1 | 0434 | @credo-ts/didcomm |
| DID Exchange 1.1 | 0023 | @credo-ts/didcomm |
| DID Rotate 1.0 | 0794 | @credo-ts/didcomm |
| Issue Credential 2.0 | 0453 | @credo-ts/didcomm |
| Present Proof 2.0 | 0454 | @credo-ts/didcomm |
| Coordinate Mediation 1.0 | 0211 | @credo-ts/didcomm |
| Message Pickup 1.0 and 2.0 | 0212, 0685 | @credo-ts/didcomm |
| Discover Features 1.0 and 2.0 | 0031, 0557 | @credo-ts/didcomm |
| Revocation Notification 1.0 and 2.0 | 0183, 0721 | @credo-ts/didcomm |
| Basic Message 1.0 | 0095 | @credo-ts/didcomm |
| Action Menu 1.0 | 0509 | @credo-ts/action-menu |
| Question Answer 1.0 | 0113 | @credo-ts/question-answer |
| DIDComm RPC 1.0 | 0804 | @credo-ts/drpc |
DID methods
See DIDs.
| Method | Package |
|---|
did:key, did:jwk, did:peer, did:web | @credo-ts/core |
did:webvh | @credo-ts/webvh |
did:cheqd | @credo-ts/cheqd |
did:indy, did:sov | @credo-ts/indy-vdr |
did:hedera | @credo-ts/hedera |