sub, wallet, kyc_status, and scopes claims — proving your verifier is accepting live Sumvin credentials.
A Stamped Mandate is delivered over the API as a PINT (header x-sumvin-pint-token). This is the Standard Sigil verification tier — the JWT alone is enough; no signature recovery required.
Prerequisites
- A Stamped Mandate JWT (the
PINTfrom thex-sumvin-pint-tokenheader). Either grab one from a test partner, a sample incoming request, or the verification tiers reference for a sample token. - Your registered audience identifier (the value SIS puts in the JWT’s
audclaim — provided during partner onboarding). - A JWT library. This page uses jose for TypeScript and PyJWT for Python.
No SIS API key is required for JWT verification — the JWKS endpoint is public.
1
Install a JWT library
2
Fetch the SIS JWKS
The JWKS endpoint is public and holds the ES256 keys SIS uses to sign PINT JWTs. Keys rotate, so use a remote JWK set helper that caches and auto-refreshes rather than hardcoding the payload.Response:
200 OK3
Verify the JWT
Validate the signature, issuer, audience, expiry, and algorithm. Anything that fails throws — treat exceptions as verification failures and reject the request.
4
Inspect the decoded payload
This is the working artefact. If the Stamped Mandate’s JWT is valid, you print a decoded payload that looks like this:Claims you act on:
You have a verified Stamped Mandate. The user is who SIS says they are, the scopes in front of you are authorised, and you have their SRI and wallet ready to act on.
5
Next: check revocation (optional)
A signed JWT proves identity at issuance, but users can revoke a Stamped Mandate before the
exp time. For high-stakes actions, hit the SIS revocation endpoint with the pint_uri from the payload before you act. See revocation checks for the full flow.