Revoke credentials
Each format revokes differently. The verifier's side is the same everywhere: a revoked credential fails the trust decision.
SD-JWT VC: Token Status Lists
Create a list, register each credential on it at offer time, flip the bit to revoke. The agent serves the list as a signed token at /oid4vc/status-list/{id} and re-signs it on every change.
curl -s -X POST http://127.0.0.1:3000/v2/openid4vc/status-lists -H 'content-type: application/json' -d '{}' | jq # returns statusListId and uri
# at offer time: "statusListId": "<id>", "statusListIndex": 42
curl -s -X POST http://127.0.0.1:3000/v2/openid4vc/revoke-credential -H 'content-type: application/json' \
-d '{"statusListId":"<id>","statusListIndex":42}'
Verifiers fetch the list from the issuer and accept only credentials whose status is valid. A change of your signing certificate re-signs the list with the new chain, which ends the acceptance of every credential the old certificate signed; plan certificate rotation as a re-issuance.
AnonCreds: revocation registries
curl -s -X POST http://127.0.0.1:3000/v2/anoncreds/revoke-credential -H 'content-type: application/json' \
-d '{"revocationRegistryDefinitionId":"<revRegId>","revocationRegistryIndex":7}' | jq
The agent publishes the new status list; verifiers that request non-revocation proofs refuse the credential.
Public JSON-LD credentials: revoke the accreditation
A W3C credential issued over vt-flow to a service has no credential-level revocation in v4. Revoke the holder's accreditation on the registry instead (participant card in the frontend): the holder's agent deletes the credential and removes it from its DID Document, and trust resolution stops accepting it.
Next
- Specification: VS Agent v4,
VSA-PUB-OID-1,VSA-ADM-AC-CR; Verifiable Trust v4,VT-CRED-SDJWT-7.