{
  "passport_version": "1.1.0",
  "token": "sbp1.<base64url(canonical JSON body)>.<base64url(Ed25519 signature)>",
  "signature": "Ed25519 over 'AILEASH-PASSPORT-v1:' || the exact body bytes",
  "public_key": "https://sebbi.pro/x/continuity/pubkey",
  "body_fields": {
    "pid": "passport id",
    "iss": "issuer",
    "aud": "the one site it is good at",
    "act": "the capability",
    "pd": "digest of {action, params} it was issued for",
    "grant": "grant exercised",
    "ld": "lineage digest at issue",
    "eval": "sealed evaluation id",
    "by": "human who authorised",
    "agent": "who acts",
    "risk": "who accepts the risk",
    "iat": "issued (unix seconds)",
    "iat_ms": "issued (unix milliseconds)",
    "exp": "expires (unix)",
    "blk": "chain block of the evaluation",
    "nonce": "uniqueness"
  },
  "offline_check": [
    "split on '.'",
    "base64url-decode body and signature",
    "verify Ed25519 over prefix + body bytes with the public key",
    "check aud is you and exp is in the future"
  ],
  "live_check": "https://sebbi.pro/x/passport/verify?token=<token>&audience=<you>",
  "redeem": "POST https://sebbi.pro/x/passport/redeem  {token, audience, params}. Binds once, re-derives standing at that instant, compares the exact parameters, seals the outcome.",
  "receipt": {
    "format": "sbr1.<base64url(canonical JSON body)>.<base64url(Ed25519 signature)>",
    "signature": "Ed25519 over 'AILEASH-PASSPORT-RECEIPT-v1:' || the body bytes, same published key. The different prefix means a receipt can never be passed off as a passport.",
    "answers": {
      "A_which_event": "pid, token_digest, presented_at, action, parameter digests presented and authorised",
      "B_what_order": "chain block of this decision against the chain block of every revocation in the lineage, plus how far the revocation log had been read before deciding",
      "C_what_was_checked": "the closed list of every condition redemption depends on, each with its result"
    },
    "check": "https://sebbi.pro/x/passport/receipt?receipt=<receipt>",
    "list": "https://sebbi.pro/x/passport/receipt?pid=<passport id>"
  },
  "discovery": "https://sebbi.pro/x/passport/sitefile?domain=<your.site>&require=payments.*,records.write",
  "mcp": "https://sebbi.pro/x/passport/mcp",
  "requires_continuity": ">= 1.6.0",
  "continuity_version": "1.6.0"
}