Agent identity

Every agent gets an identity, not just a key.

Static keys never expire and never say who is calling. Trade one for a short-lived signed token that carries the agent's identity, its scopes, and an expiry, then verify it anywhere without calling home.

15-minute default TTL · verified locally · no database round-trip

axr_tok_…9f2a1c
{
  "sub": "agent_7f3c2a",
  "workspace": "ws_demo",
  "scope": ["gateway:write", "logs:read"],
  "exp": "in 14m 51s"
}
verified locally, no database round-trip
15m
Default token lifetime
1h
Maximum lifetime
0
Scoped permissions
0
Round-trips to verify

Why short-lived

A leaked static key is a standing invitation.

A key that never expires and never names a caller is the easiest thing in your stack to misuse.

Never expires

A copied key works until someone notices and rotates it, which is often never.

Says nothing

A bare key carries no identity, no scope, and no subject to attribute an action to.

Shared blast radius

One key across many agents means one leak compromises all of them at once.

Token lifecycle

Exchange once. Verify everywhere. Expire automatically.

Watch a static key become a signed token, inspect its claims, and see it expire on a live clock. Tamper with it and the signature check fails.

Mint a token

Trade a static key for a short-lived signed token. Pick a lifetime and watch it expire.

15 min

Default

30 min
1 hour

Maximum

Tamper with the token

A modified token fails its signature check locally, with no call home.

axr_tok_…000000valid
00:00until expiry
decoded claims
{
  "iss": "axiorank",
  "sub": "agent_7f3c2a",
  "workspace": "ws_demo",
  "scope": [
    "gateway:write",
    "logs:read"
  ],
  "iat": 0,
  "exp": 0,
  "jti": "tok_000000000000"
}
signaturevalid
expirywithin window
decisionrejected

Verification

Verified against a public key, with no call home.

The gateway holds only the public key, so it can confirm a token is real and unexpired without ever asking the console.

  1. Receive the token
    on the gateway
  2. Check the signature
    against a public key
  3. Check expiry and scopes
    all in process
  4. Accept or reject
    no call home

Nothing on the hot path

Verification is offline. The gateway never has to ask whether a token is still valid, so identity adds nothing to the time it takes to decide a call.

Least privilege

Scope a key to exactly what an agent should do.

Toggle scopes and watch which control-plane actions the key can and cannot perform. Most agents need one or two.

Key scopes

Grant only what an agent needs. Every scope you leave off is one it can never use.

  • gateway:write
    Run governed tool calls
  • cards:verify
    Verify external MCP and A2A cards
  • inbound:verify
    Verify inbound agents
  • logs:read
    Read the audit trail
  • policies:write
    Create and edit policies
  • agents:write
    Create and manage agents
  • keys:write
    Rotate and revoke keys

What this key can do

  • Govern an outbound tool callgateway:write
  • Verify an external server before trusting itcards:verify
  • Verify an agent that visits your siteinbound:verify
  • Read the redacted audit traillogs:read
  • Write a new policypolicies:write
  • Quarantine a misbehaving agentagents:write
  • Rotate a leaked keykeys:write

Migration

Keep your static keys while you roll tokens out.

Adopting short-lived identity is not a flag day.

Backward compatible

Static keys remain fully supported, so you can move agent by agent to short-lived tokens with nothing breaking in between.

Stop trusting keys that never expire.

Give every agent a short-lived identity that proves who is calling and disappears on its own.