Status lists and revocation
When a credential can be revoked (or suspended), holders and verifiers need a public, cacheable way to learn the current status without calling your private APIs. A status list is a large array of compact status values, packaged as a signed token that verifiers fetch by URI. Each issued credential carries a pointer: which list, and which index in that list.
Operators create and size lists before issuance. The issuer allocates indexes when credentials are issued. Later, an operator or automation updates the value at an index (for example revoked). The next published token reflects that change.
Whether any list already exists depends on product onboarding and sample data. Empty is normal for a clean production tenant.
Audience: tenant admin (or platform operator in a tenant context).
Prerequisites: Onboard a tenant. Issuance of revocable credentials also needs a working issuer, a signing identity for the list (see Keys and DID), and designs that put a status claim on the VC.
Reference: Status lists
APIs: Status list management, Status list hosting.
Guide variables useful for live Run: statusListId, statusListIndex, signing key alias, public list URI.
How it fits issuance
- Create a status list with enough capacity for expected credentials and a public URI verifiers can reach.
- Configure issuance (design / issuer settings) so each revocable credential gets a status claim pointing at that URI and an allocated index.
- When you must revoke or suspend, update that index (by index or by business entry key).
- Verifiers refresh the hosted token and read the bit(s) at the index.
Do not reuse indexes across unrelated credentials. Capacity is finite: plan length for growth, not only the first pilot.
List status lists
The inventory shows list slug (correlation id), specification, purposes (revocation, suspension, and so on), proof format, hosting mode, remaining capacity, and last update. Filter by spec or purpose when many lists exist. Open a row for overview, entry updates, and the signed token.
Navigation: Resources > Status Lists > Lists
Deep link: #resource=statuslists&rarea=lists
An empty list only means none were created yet. If the product reports that an OID4VCI issuer is not configured, fix issuer setup before creating lists.
- Admin Console
- REST API

Management API (tenant token):
- Overview
- Request
- Response
List status lists
Endpoint: GET /api/statuslist/v1/statuslists
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Create a status list
Create before you issue revocable credentials that need a place to allocate indexes. Defaults below match a common IETF Token Status List setup; adjust for your threat model and wallet ecosystem.
| Decision | Why it matters |
|---|---|
| List slug (correlation id) | Stable business id. Often appears in the public path. Hard to rename once credentials point at the URI. |
| Registered issuer | DID (or product-equivalent) that signs or is bound as the list issuer in metadata. Must match what verifiers expect. |
| Specification | Token Status List vs bitstring list (and related). Pick what your wallets and verifiers implement. |
| Purposes | Revocation alone is 1-bit friendly. Suspension typically needs at least 2 bits per status so values can distinguish valid / revoked / suspended. |
| Proof format | JWT, CWT, or VC-JWT for the published token. Must match verifier support. |
| Length | Number of indexes. Under-sizing forces a second list mid-lifecycle. Over-sizing wastes storage and publish cost. |
| Bits per status | 1 for simple revoke/valid; 2+ for suspension or multi-value status. |
| Hosting mode | Hosted: platform publishes at a derived public URI. Export: you host the token yourself and supply the external URI. |
| TTL | How long caches may treat a fetched token as fresh. Too long delays visibility of revocations; too short increases load. |
Indexes for issued credentials are allocated by the issuer at issue time (often non-sequential) so list position does not leak issuance order.
The create capture may use template placeholders ({{tenantStatusListApiBaseUrl}}, ...). With a connected environment, substitute via guide variables or edit the request on the Request tab before Run.
- Admin Console
- REST API
New status list opens the create dialog. Fill slug, issuer, purposes, capacity, and hosting, then create. The console opens the new list detail when creation succeeds.

- Overview
- Request
- Response
Create token status list
Endpoint: POST /statuslists
Captured response: Response capture pending the next QA-gate run.
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Inspect a list (Overview)
Overview is the operational identity of the list: internal id, slug, spec, purposes, proof format, hosting, issuer DID, capacity, content type, and public URI. Copy the public URI into credential status claims and into any design or issuer config that must reference this list.
Capacity shows how many slots remain. When remaining capacity is low, plan a new list and cut over issuance before you run out.
- Admin Console
- REST API
Open a list row. Overview is the default tab.

- Overview
- Request
- Response
Get token status list
Endpoint: GET /api/statuslist/v1/statuslists/00000000-0000-4000-8000-000000000000
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Entries: lookup, revoke, reactivate, suspend
The Entries tab is where operators change a credential's status after issuance.
- Locate the entry by status-list index (from the credential status claim) or by entry business key when your issuer stored one.
- Lookup to see the current value.
- Apply an action: revoke, reactivate (clear revocation when the product allows), or suspend when bits-per-status supports it.
For a typical 1-bit revocation list: value 1 means revoked, 0 means valid (or unused). Unallocated indexes are intentionally hard to distinguish from valid zeros on the public read path, which limits probing.
Revocation is a security action. Prefer automation with audit over ad-hoc console use in production, but the console is valid for break-glass and lab work.
- Admin Console
- REST API

Revoke (value 1):
- Overview
- Request
- Response
Revoke a status entry
Endpoint: POST /api/statuslist/v1/statuslists/00000000-0000-4000-8000-000000000000/status
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Reactivate (value 0):
- Overview
- Request
- Response
Reactivate the status entry
Endpoint: POST /api/statuslist/v1/statuslists/00000000-0000-4000-8000-000000000000/status
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Read entry (management API; authenticated):
- Overview
- Request
- Response
Read status entry
Endpoint: GET /api/statuslist/v1/statuslists/00000000-0000-4000-8000-000000000000/entries/42
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
Signed token and public hosting
Verifiers do not call the management API. They fetch the signed status list token from the public URI (no bearer). That surface must stay available independently of the Admin Console, and it should be cache-friendly within the TTL you chose.
Signed token in the console shows the current published token and content type so operators can debug publish failures without leaving the product. Prefer the public URL for real verifier checks.
- Admin Console
- REST API
Public URI is on Overview. Token payload is under Signed token.

Unauthenticated host fetch (walkthrough capture):
- Overview
- Request
- Response
Fetch hosted status list token
Endpoint: GET /public/statuslists/eupid-revocation
Captured response: 200 OK
This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.
Connect an environment to rewrite this call to real service bases and run it.
After status lists
- Point credential designs / issuer issuance config at the list slug or public URI as your product expects
- Issue credentials so indexes are allocated
- Verify credentials including status checks
- Automate revoke/reactivate against the management API for production operations