Documentation Index
Fetch the complete documentation index at: https://docs.beltic.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Beltic publishes three.well-known endpoints that any verifier — your own service, a counterparty, an offline tool — can fetch without authentication. These are the building blocks of W3C-compliant verifiable credentials: the JWKS exposes the signing keys, the DID document describes the issuer identity, and the status list reports revocations.
/.well-known/jwks.json
Returns the issuer’s JSON Web Key Set: the public keys credentials are signed with. Verifiers fetch this to validate signatures.
- The
kidmatches thekidclaim in every JWT-VC’s header. - V1 publishes a single signing key; multi-key rotation lands in a later phase.
- Cache-Control is 1 hour. Verifiers should respect it.
/.well-known/did.json
Returns the W3C DID document for did:web:beltic.com. The DID document describes the issuer identity and references the JWKS endpoint.
/.well-known/status-lists/v1
Returns the Status List 2021 bitstring for the org whose credentials are being verified. The bit at status_list_index is 1 for revoked credentials, 0 for active.
encodedListis a base64url-encoded, gzipped byte-aligned bitstring. Decode, gunzip, then check bitstatus_list_indexMSB-first within each byte.- Cache-Control is 60 seconds — short enough that revocations propagate quickly, long enough that high-throughput verifiers don’t hammer the endpoint.
- The
orgquery parameter targets a specific organisation’s bitstring. Each org has its own.
Decoding the Bitstring
When to Use Which
| You want to… | Fetch |
|---|---|
| Verify a JWT signature offline | /.well-known/jwks.json |
| Integrate with a W3C-conformant verifier library | /.well-known/did.json |
| Check whether a specific credential has been revoked | /.well-known/status-lists/v1?org=... |
| Run the full verify pipeline server-side | POST /v1/credentials/verify (handles all three for you) |
Caching Recommendations
- JWKS: cache for 1 hour. Re-fetch only on
kidmismatch. - DID document: cache for 1 hour. Treat it as the same lifetime as JWKS.
- Status list: cache for 60 seconds. If your application can tolerate longer staleness, increase locally — but understand that revocations won’t propagate faster than your cache TTL.