ORBIS.ID
You are on Anyone PUBorbis.id

BUILD · QUICKSTART · VERIFY

Check a credential without ever calling us.

A verifier makes no network call to ORBIS at all — everything it needs was published by the organization that vouched, at its own domain. All three artefacts below are open reads, reachable right now, and the presentation in step 3 is not a fixture written for this page — it is read straight out of the conformance set at build time.

The wire, drawn.

Verifying a credential — quickstart sequence Verifier quickstart: a relying service opens a presentation transaction on ORBIS.ID and receives a transaction id plus a result token, the wallet fetches the request and posts its presentation, the cell checks the signature and the status list, and the service reads the outcome with its result token. POST /verify/request txId + resultToken presentation request GET /oid4vp/request/{txId} what to prove POST /oid4vp/response check sig · /status/{n} GET /verify/result/{id} verified + claims Your service verifier · API key ORBIS.ID id.orbis.id Wallet holder device CALL RETURN ONE-WAY

Every command below can be run by a machine that has never heard of ORBIS before this page.

The four steps

  1. 01

    Fetch the issuer's trust anchor

    The did:web document names the keys this issuer actually signs with. Trust the domain, or do not — but the key comes from there, never from us. A sandbox tenant's identifier carries its own segment (did:web:<host>:sandbox:t:<slug>) distinct from a production one — read how issuance separates the two planes before you decide what a given did:web is telling you.

    witnessed/.well-known/did.json
    curl -s https://id.orbis.id/.well-known/did.json
    Reached on 2026-08-30.
  2. 02

    Fetch the status list it references

    A signed, compressed bitstring. One index, one bit, no account needed to read it.

    witnessed/status/1
    curl -s https://id.orbis.id/status/1
    Reached on 2026-08-30.
  3. 03

    Take a real presentation to test against

    Pull the "valid" vector out of the conformance set — the same set /build/conformance renders as a table, read from the same file rather than retyped.

    witnessed/conformance/vectors
    curl -s https://id.orbis.id/conformance/vectors | jq -r '.vectors[] | select(.id=="valid") | .input.presentation'
    Set version 1.0.0, checked 2026-08-30. This is the same JWT this build embeds — it starts eyJ0eXAiOiJkYytzZC1qd3Qi….
  4. 04

    Run the five checks and see where it stops

    Signature, issuer, holder binding, status, and — the one most implementations skip — that every disclosed claim re-hashes into the signed set. Each check, and what it catches, is written up here. Then point your own verifier at the vectors that are supposed to fail — a set that only contains valid proofs tests nothing.

What is real here.

Every artefact on this page is a live, unauthenticated read, probed for this build. Nothing on it is described from memory.

  • LIVE Publishes deterministic vectors a third party can recompute offline to check their implementation against ours conformance-vectors

The register holds 17 live · 2 partial · 2 planned · 5 not yet.

3 of the 4 capabilities this page depends on have no row in the register yet, so this page will not print a state for them. They are named rather than dropped, because a slice that silently shortens itself is the same defect as a claim with no receipt.

  • did-web-anchor
  • revocation
  • selective-disclosure

The register route serves, but it carries no row for these yet. List what it does carry:

curl -s https://id.orbis.id/api/site/register | jq -r '.entries[].slug'

Straight answers

Does step 4 call ORBIS to check the presentation?
No. Everything it needs came from steps 1–3; the checking runs entirely on your side.
Do I need my own wallet to follow this page?
No — step 3 supplies a real presentation from the published conformance set instead.
Is the "valid" vector the only one I should test?
No. The other vectors are engineered to fail, and a correct verifier must reject every one of them.

Do not trust us. Check us.