Capability tokens
a brane can prove it holds.
When a brane calls a third-party API, talks to a peer over Biome, or requests a snapshot from storage, it presents an Arsenal Capability Token (ACT). ACTs are scoped to specific audiences, expire, and carry their full lineage — so the receiver can verify, offline, exactly which authority granted the call and how it was delegated.
Arsenal · brane-keyed
JWT-like · ed25519 signed
no-amplification rule
short · auto-rotate
The properties
that matter.
compact JOSE · Ed25519 over CBOR-canonical claims
iss, sub, aud, exp, scope, lineage[]
capability:resource[:constraint] (e.g. net.http:api.example.com:GET)
no-amplification — a derived token is always a subset
short TTL · automatic refresh by Arsenal SDK
OAS revocation feed · 30s steady-state propagation
aud claim must match the receiver DID; replay-attack-resistant
How you
describe it.
[brane.api.capability_token] mint = "arsenal://issuer/api" ttl = "30m" audience = ["api.branes.sh", "did:omega:brane:archive"] delegation = "no-amplification"
What it
looks like running.
$ω capability inspect $TOKEN
header ed25519 · key ed25519:RJ4P
issuer did:omega:brane:api/v1.4
subject did:omega:brane:api/v1.4
audience api.branes.sh, did:omega:brane:archive
exp 2026-05-01T14:13:42Z (in 28m11s)
…
$ω capability mint --brane api --aud archive --scope "fs.tmp:/scratch/x:rw" --ttl 5m
→ minted ACT · ttl=5m · ed25519 signed · lineage extended
→ COPY: eyJhbGciOiJFZERTQSJ9.eyJpc3MiOi...
What you
can rely on.
Scope is the entire API
No "admin: true" flags. Capabilities are explicit verbs over explicit resources, with optional constraints.
Delegated tokens are always subsets
A brane can pass a token onward, but never with more authority than it holds. Verifiable from the lineage chain alone.
Replay-resistant by audience claim
A token minted for archive can't be replayed against api. The audience match is a hard check.
Verifiable without phoning home
The chain is self-contained: the public keys, the lineage, the revocation feed snapshot. Air-gapped substrates verify normally.