Skip to main content

VC Knots Coverage

The following tables are organized based on OpenID for Verifiable Credential Issuance 1.0 and OpenID for Verifiable Presentations 1.0, and describe the current implementation scope of this repository.

✅ means that the feature is implemented for the relevant role. ❌ means that it is not implemented or is not available end to end. Conditions for configuration-dependent features are described in the notes column. ⏳ denotes pending test confirmation.

OpenID for Verifiable Credential Issuance 1.0​

Specification sectionFunctional areaSpecification role / featureIssuerWalletNotes
3.5Issuance FlowPre-Authorized Code FlowSince v0.6.0
✅
✅Current standard flow.
3.4Issuance FlowAuthorization Code Flow❌❌Not supported end to end.
4.1Credential Offercredential_offer (Pre-Authorized Code)Since v0.6.0
✅ Generate
✅ ParseReference-based credential_offer_uri is not supported.
3.5Transaction Codetx_codeSince v0.6.0
✅ Issue / validate
✅ SendUsed in the Pre-Authorized Code Flow.
A.1Credential Formatjwt_vc_jsonSince v0.6.0
✅ Issue
✅ Receive
A.3Credential Formatdc+sd-jwt (SD-JWT VC)Since v0.6.0
✅ Issue
✅ Receive
A.2Credential Formatmso_mdoc❌❌
6Token EndpointAccess Token issuanceSince v0.6.0
✅
✅Supports the Pre-Authorized Code Flow.
13.2Client Authenticationprivate_key_jwtSince v0.6.0
✅ Validate
✅ SendClient authentication method for registered OAuth clients at the Token Endpoint. The wallet supports only private_key_jwt and none (the default); client_secret_basic is not implemented, so an Authorization Server that omits token_endpoint_auth_methods_supported cannot be used (RFC 8414 section 2). Related section: 6.1
6.1Client AuthenticationAnonymous Pre-Authorized Token RequestSince v0.6.0
✅ Conditional
✅ SendThe wallet omits client_id only when the Authorization Server Metadata sets pre-authorized_grant_anonymous_access_supported to true, whose default is false. Otherwise it sends client_id, and returns an error before sending when none is configured. Related section: 12.3
13.2Sender ConstraintDPoP sender-constrained Access TokenSince v0.6.0
✅
✅Related sections: 6.1, 7.2, 8.2. External spec: RFC 9449
8Credential EndpointCredential Request / ResponseSince v0.6.0
✅
✅
8.2Credential ProofJWT ProofSince v0.6.0
✅ Validate
✅ GenerateOnly a single Proof is currently supported. The wallet omits iss only for an anonymous Pre-Authorized Token Request. Related section: 6.1
7.2NonceOpenID4VCI c_nonceSince v0.6.0
✅ Issue
✅ Retrieve / useCredential Proof nonce returned in the JSON body of POST /nonce.
7.2NonceDPoP-NonceSince v0.6.0
✅ Conditional
✅ ConditionalExternal spec: RFC 9449
12.2MetadataCredential Issuer MetadataSince v0.6.0
✅ Unsigned JSON
✅ RetrieveSigned Metadata is not supported. The wallet rejects metadata whose credential_issuer does not match the Credential Offer.
6.1.1Credential Selectionauthorization_details❌❌Not supported end to end in Token Requests / Responses.
3.3.4Credential Selectioncredential_identifier❌Partialcredential_identifiers integration in the Token Response is not supported. Related section: 6.2
3.3.2Credential IssuanceBatch Credential Issuance❌❌
9Credential IssuanceDeferred Credential Endpoint❌❌
10EncryptionCredential Request encryption❌❌
10EncryptionCredential Response encryption❌❌
11NotificationNotification Endpoint❌❌

OpenID for Verifiable Presentations 1.0​

Specification sectionFunctional areaSpecification role / featureVerifierWalletNotes
5Authorization RequestAuthorization RequestSince v0.7.0
✅ request_uri, URL-encoded parameters
⏳ request, request_uri, URL-encoded parameters
5Authorization RequestSigned Authorization Request (JAR)Since v0.7.0
✅
⏳Uses a Request Object. External spec: RFC 9101
5Authorization RequestEncrypted Authorization Request (JAR)❌❌External spec: RFC 9101
5.5Credential QueryAuthorization Request using scope❌❌
5.9.3Client IdentificationClient Identifier PrefixSince v0.7.0
✅ redirect_uri, x509_san_dns
⏳ redirect_uri, x509_san_dns
5.10Request URIRequest URI MethodSince v0.7.0
✅ GET
⏳ GET, POST
6Credential QueryDCQLSince v0.7.0
✅
⏳Uses dcql_query parameter. The Wallet discloses only the requested claims.
8.1Authorization ResponseAuthorization ResponseSince v0.7.0
✅
⏳
8.2Response ModeResponse ModeSince v0.7.0
✅ direct_post
⏳ direct_post
8.3Authorization ResponseEncrypted Authorization Response❌⏳
8.4Transaction DataTransaction DataSince v0.7.0
✅
⏳Supported for dc+sd-jwt only.
8.5Authorization ResponseAuthorization Error Response❌❌
10MetadataWallet Metadata❌❌
11MetadataVerifier Metadata — client_metadataSince v0.7.0
✅
⏳ Parse
12Client AuthenticationVerifier Attestation JWT❌❌
Appendix ADigital Credentials APIDigital Credentials API / DC API❌❌
Appendix B.1Credential Formatjwt_vc_json formatSince v0.7.0
✅
⏳
Appendix B.2Credential Formatmso_mdoc (Mobile Documents / mdocs)❌❌
Appendix B.3Credential FormatSD-JWT VC format (dc+sd-jwt)Since v0.7.0
✅
⏳Only ES256 is supported as the signing algorithm.
Appendix B.3.6Holder BindingSD-JWT VC Key Binding / KB-JWTSince v0.7.0
✅
⏳Only ES256 is supported as the signing algorithm.