Verify an SD-JWT verifiable presentation
POST/api/v1/vp/sdjwt/verify
Verifies the authenticity and validity of a Selective Disclosure JWT (SD-JWT) verifiable presentation.
Request
- application/json
Body
required
The credential to verify. For SD-JWT-VC format, this should be a compact JWT string with disclosures and optional key binding JWT separated by tilde (~) characters
Possible values: [jwt_vc, vc+sd-jwt]
List of acceptable credential formats. If omitted, format is automatically inferred. Useful for strict validation of credential format
List of trusted issuer DIDs. If specified, the credential issuer must be one of these DIDs. If empty, all issuers are accepted
List of claim names that must be disclosed in the credential. Used for SD-JWT credentials to ensure specific claims are present. Verification will fail if any required claim is missing or undisclosed
The expected subject DID. If provided, the credential subject must match this value. Used to prevent credential substitution attacks
If true, skips verification of the credential status (e.g., revocation status). Use only when status verification is not applicable
Nonce value used in the key binding JWT to prevent replay attacks. The key binding must sign this exact nonce value
Responses
- 200
The presentation verification result.
- application/json
- Schema
- Example (from schema)
Schema
Indicates whether the credential verification succeeded
List of error messages encountered during verification. Empty if success is true
Array of error codes corresponding to the errors. Only populated if errors occurred
The parsed credential structure. Only populated if credential parsing succeeded, even if other verification checks failed
The disclosed claims from the credential. Only populated if the credential was successfully parsed and claims were extracted
{
"success": true,
"errors": [
"Signature verification failed",
"Issuer is not trusted"
],
"errorCodes": [
"SIGNATURE_VERIFICATION_FAILED",
"UNTRUSTED_ISSUER"
],
"parsedCredential": {
"iss": "did:web:issuer.example.com",
"sub": "did:key:z6MkhaXgBZDvotDkL5257faWxcqDy2Kwp5l0EQ3SL7AEm57D",
"vc": {
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential"
],
"credentialSubject": {
"name": "John Doe",
"email": "john@example.com"
}
}
},
"claims": {
"name": "John Doe",
"email": "john@example.com",
"address": {
"street": "123 Main St",
"city": "Springfield"
}
}
}