AAuth Explorer
r3

Content Addressing & User Consent

The R3 document's display section drives informed user consent — the resource describes what IT does, including irreversible actions. The agent's Person Server (PS) fetches the R3 document and presents it to the user before approving. The r3_s256 hash baked into the final auth token creates a permanent, content-addressed audit record: even if the resource later updates the document at the same URI, the approved semantics are pinned forever.

R3 §5 — R3 Document, §6 — Auth Token Extensions
AgentCalendar ResourcePerson ServerUser1POST /authorize + r3_operat…2002POST /token + resource toke…3GET /r3/a1b2c3d4 → R3 docum…4User reviews consent (irrev…5Poll /pending/... → 200 aut…
POST https://calendar.example.com/authorize200

Agent requests two MCP tools: create_calendar_event and send_calendar_invite.

Resource maps these to an R3 document. This R3 document has a display.irreversible field — sent invitations cannot be recalled.

The resource token carries r3_uri (where the doc lives) and r3_s256 (SHA-256 of its content).

aud=PS URL in the resource token — this is a 3-party flow. The PS is the token authority and will handle consent.

The agent cannot read the R3 document. It only carries the hash — 'agent opacity'.

1 / 5
speed

Step 1: POST /authorize + r3_operations → resource token (r3_uri + r3_s256)

Request / response
Token Lifecycle
Resource Tokenresource+jwt
Auth Tokenauth+jwt
User Consent Flow
POSThttps://calendar.example.com/authorize
Host

calendar.example.com

Content-Type?

application/json

Signature-InputAAuth?

sig=("@method" "@authority" "@path" "signature-key");created=1741825000;alg="ed2…

Signature-KeyAAuth?

sig=jwt;jwt="eyJhbGciOiJFZERTQSIsImtpZCI6ImFnZW50LWtleS0xIiwidHlwIjoiYWEtYWdlbnQ…

SignatureAAuth?

sig=:Q29udGVudEFkZHJlc3NpbmdBdXRob3JpemVTaWduYXR1cmVCYXNlNjQ=:

Body
{
  "r3_operations": {
    "vocabulary": "urn:aauth:vocabulary:mcp",
    "operations": [
      {
        "tool": "create_calendar_event"
      },
      {
        "tool": "send_calendar_invite"
      }
    ]
  }
}
Resource Tokenaa-resource+jwt
Header
{
"alg":"ES256",
"kid":"resource-key-1",
"typ"?:"aa-resource+jwt"
}
Payload
{
"iss"?:"https://calendar.example.com",
"dwk"?:"aauth-resource.json",
"aud"?:"https://ps.example",
"jti"?:"rt-ca-890a",
"agent"?:"aauth:local@agent.example",
"agent_jkt"?:"NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs",
"r3_uri"?:"https://calendar.example.com/r3/a1b2c3d4e5f67890",
"r3_s256"?:"ZzKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMn",
"iat"?:1741825000,
"exp"?:1741825300
}
sig: MEYCIQDcontent_addressing_resour