Credential Revocation Status: A Practical Guide to Safer Verifiable Credential Checks
A verifiable credential can have a correct signature and still be unsafe to accept today. The issuer may have discovered an issuance error, the credential may have been replaced, or policy may require a temporary suspension. Reliable verification therefore asks two separate questions: was this digital credential issued with valid integrity, and what is its current credential revocation status?
That distinction shapes the entire lifecycle. A verifier should never treat a valid proof as evidence that a credential is still active. Issuers, holders, and relying parties need a status model that is explicit, available, privacy-aware, and easy to audit.
How integrity and credential status differ
Cryptographic verification helps establish that credential data has not been altered and that the proof can be associated with the stated issuer. It does not automatically tell a verifier whether the issuer later chose to revoke a verifiable credential.
A useful verification result separates at least four outcomes:
- The proof is invalid.
- The credential is valid and active.
- The credential is suspended, expired, replaced, or revoked.
- The credential status service is unavailable or too stale for the decision.
The last outcome matters. Turning an unavailable status check into “valid” hides uncertainty. Turning every outage into “revoked” is also inaccurate. The relying application needs an explicit result and a policy appropriate to the risk of the transaction.
Define credential lifecycle states before API endpoints
Start with the business meaning of each status. An issuer might support active, suspended, revoked, expired, and replaced. Do not add states just because a database enum makes them easy.
Revocation is normally terminal: once the issuer decides to revoke credentials for fraud, material error, or loss of entitlement, clients should not silently restore them. Suspension can be temporary when policy allows an investigation or remediation. Replacement should point users toward a newer record without disclosing unnecessary personal data.
Document who can change the status, which evidence is required, whether the holder is notified, and what an appeal or correction process looks like. This governance is as important as the status list mechanism.
Design a controlled process to revoke a verifiable credential
A generic update endpoint is too broad for a sensitive lifecycle transition. Use a dedicated command to revoke a credential, authorize it separately, and make the operation idempotent. A safe request records the credential identifier, reason category, effective time, actor, case reference, and policy version.
Do not place private case notes in public revocation information. Public status information should communicate only what a verifier needs for a decision. Detailed evidence belongs in a protected audit system.
If a retry arrives with the same idempotency key, return the original result. If a credential has been revoked already, the response should explain that no new transition occurred. These semantics make automated issuance and revocation checks easier to operate safely.
Use a status list mechanism for efficient revocation checks
A one-URL-per-credential design can leak which individual credential a verifier is checking. It also creates large operational overhead at scale. A status list groups many entries so clients can retrieve compact status information and check an index locally.
The W3C Bitstring Status List v1.0 Recommendation defines a privacy-preserving, space-efficient mechanism for publishing suspension or revocation information for Verifiable Credentials. A credential can include a credentialStatus entry that identifies the status purpose, status list credential, and index. The signed status list credential encapsulates the encoded list that verifiers inspect.
This approach lets an issuer revoke credentials by changing the relevant entry and publishing an updated list. A single status list can represent many issued verifiable credentials, reducing per credential network calls. Verifiers must still authenticate the list, confirm its purpose, and enforce freshness policy.
Read the current W3C Bitstring Status List v1.0 and Verifiable Credentials Data Model v2.0 before implementing exact fields or algorithms.
Do not confuse credential revocation with PKI certificate revocation
Search results often mix two different systems. A certificate revocation list and the Online Certificate Status Protocol are used for certificate revocation in X.509 public-key infrastructure. They answer whether a public-key certificate has been revoked.
Credential revocation concerns the status of claims represented by a Verifiable Credential. A VC status list is not automatically interchangeable with a PKI revocation list. A deployment may use both layers: certificate revocation or key rotation for cryptographic infrastructure, and a separate credential status process for business credentials.
Making the distinction explicit prevents teams from copying unsuitable CRL or OCSP assumptions into a credential lifecycle.
Protect privacy with privacy-preserving status information
The status service should not become a surveillance endpoint. A one-to-one lookup can let an issuer observe which verifier is checking which holder. Aggregated lists reduce that correlation risk, especially when a holder can provide an authenticated list to the verifier.
Privacy does not eliminate freshness requirements. Define a maximum acceptable age for status information based on use case. An event ticket may tolerate a different interval from a professional license or regulated employment decision.
Set cache headers deliberately. A short cache can increase issuer load; a long cache can hide a recent revoke event. Clients should record when a list was issued or retrieved, the policy they applied, and whether the credential revocation status was current enough for the decision.
Make verification failures visible to the verifier
A verification API should return structured reasons instead of a single boolean. Useful reason codes include invalid proof, unresolved issuer, unsupported format, status list unavailable, status list signature invalid, credential is revoked, credential suspended, credential expired, and policy rejected.
For an unavailable list, return an indeterminate outcome plus the last known freshness data. The application can then fail closed for a high-risk decision, request manual review, or retry. It should not quietly mark the credential as valid.
The verifier also needs the decision timestamp, policy version, evidence references, and a human-readable explanation. This makes later review possible without storing an unnecessary copy of the holder’s full credential.
Secure revoke operations and audit the revocation lifecycle
Only approved issuer roles should be able to change the status of a credential. Apply least privilege, strong authentication, separation of duties where appropriate, rate limits, and alerting for bulk actions. Treat the signing or update service as a security boundary.
Audit every attempt to revoke a verifiable credential, including denied requests. Preserve the actor, authorization context, old and new state, reason category, policy version, and result. Protect audit logs from tampering and restrict access because operational metadata can still be sensitive.
Monitor list publication failures, unusual volumes, stale status lists, repeated verifier errors, and discrepancies between the lifecycle database and the published revocation status. Test recovery procedures before an incident forces the issue.
How a verifier checks the status list credential
At the data-model layer, a credentialStatus entry can use a URL that identifies the status information associated with the verifiable credential. When a verifier retrieves the status list credential, it authenticates the document, checks the index position in the list, and determines whether the relevant bit is set. The resulting verifiable credential can support multiple status purposes and a defined range of verifiable credential status values.
Bundling credentials into a single list lets an issuer publish status for large sets of verifiable digital credentials without a one-to-one mapping between a verifiable credential and a URL. Compact bit-array data and data compression help a verifier check the status of many credentials. They do not expose a list of all verifiable credentials issued.
In a standards-oriented implementation, the status of the verifiable credential is evaluated as part of the algorithm followed when validating a verifiable credential. The public key certificate or decentralized identifier used for issuer verification belongs to a separate digital identity layer.
Implementation checklist for credential revocation status
Before launch, confirm that:
- lifecycle states and permitted transitions are documented;
- each revoke operation is authorized, idempotent, and auditable;
- public status information excludes private case details;
- the status list credential is authenticated and refreshed reliably;
- freshness and cache rules match the decision risk;
- unavailable status is returned as uncertainty, never false validity;
- verifier responses use structured reason codes;
- certificate revocation list and VC status concepts are not mixed;
- privacy, enumeration, and correlation risks are threat-modeled; and
- conformance and failure-path tests run in continuous delivery.
Credential status is not a minor feature added after issuance. It is part of the trust contract. A sound design keeps integrity, lifecycle, privacy, availability, and policy visible to every verifier.
For practical digital credential and verification resources, explore Certify. Always validate implementation details against the current standards and the requirements of your own credential program.
