ORBIS.ID
You are on Anyone PUBorbis.id

BUILD · TOOLS · STATUS LIST READER

Read a status list. One index, one bit, no service.

This page is not a working tool. What belongs here is a text box: paste a status-list URL and an index, see one bit come back. It is waiting on client-side JavaScript, which this site does not ship on any page. Until it lands, the recipe below decodes the exact same signed, compressed bitstring from a terminal — the format is an IETF Token Status List, and every step below follows that specification directly.

A token status list is one JWT wrapping one compressed bitstring. Reading one bit out of it is decode, decompress, shift — nothing more.

The whole decode, against this platform's own list

Decode the JWT payload, base64url-decode and DEFLATE-decompress the lst field it carries, then read the bit at your credential's own index.

witnessed/status/1
# 0 is the index your credential names in its own status_list.idx claim
IDX=0

curl -s https://id.orbis.id/status/1 \
  | cut -d. -f2 | tr '_-' '/+' | base64 -d 2>/dev/null \
  | IDX="$IDX" python3 -c '
import sys, json, base64, zlib, os
payload = json.load(sys.stdin)
sl = payload["status_list"]
raw = zlib.decompress(base64.urlsafe_b64decode(sl["lst"] + "=="))
idx = int(os.environ["IDX"])
byte, bit = divmod(idx * sl["bits"], 8)
value = (raw[byte] >> bit) & ((1 << sl["bits"]) - 1)
print("bits per entry:", sl["bits"])
print("total entries:", len(raw) * 8 // sl["bits"])
print("entry", idx, ":", value, "(0 = valid, nonzero = revoked or suspended)")
'
The endpoint answered on 2026-08-27 (src/data/externals.json). No service in the middle reads the bit for you.

What is real here.

The status list this tool would read is real, signed, and live-fetchable today. The browser tool itself does not exist — this site ships no client-side JavaScript on any page.

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

1 of the 1 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.

  • revocation

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

Is there a box to paste an index into on this page?
No. There is a shell-and-Python recipe that reads any index from any status list of this shape.
Does reading a bit require a key?
No — the endpoint is an open read, like the recipe shows.

Do not trust us. Check us.