Design partners · a direct line to the people building it

Every agent actiongets exactly one answer:ALLOW

The enterprise is about to hand real systems, real budgets and real money to fleets of AI agents. authoxi decides what each one may do — identity, permissions, usage, money — enforces it at every action, and keeps a signed record of who approved what.

One POST returns a live key — no account, no card, no sales call

ed25519 passports · signed mandates · hard budget caps · never a key vault

Decision ledgersigning
deploy-bot
github · push acme/api
within keyring scope repo:write
allow
procurement-bot
payment · $12,400.00
exceeds mandate cap of $10,000
deny
billing-bot
stripe · refund $12.00
within mandate · signed
allow
support-agent
passport · refresh
usage budget exhausted · agent cut off
deny
triage-agent
execution · 14 mcp calls
attributed to did:key:z6Mk…4Rn
metered

Watch the escalation get approved. Sample fleet — the four outcomes, the signing and the resolve are the real ones.

Built onEd25519did:keyRFC 9421JWKSOAuth 2.0MCPOpenAPI
The whole product, in four words
01

Allow

Within mandate, within budget, within scope. It proceeds — and is signed and recorded anyway.

the common case
02

Deny

It stops, with a reason code an operator can debug from — not a 403 and a shrug.

31 today, across the fleet
03

Escalate

A named human signs, with their own key. Non-repudiable, and the agent waits.

the money path
04

Challenge

Not yet — and here is what would change that. The agent steps up and retries, in one call.

the one most systems lack

Treating the fourth as a denial is the single easiest mistake to make against this API, so it is a separate exception type rather than a subclass — and there is a test that proves it.

One question

May this actor do this, right now — and who is accountable?

Identity has always assumed one kind of actor and split the work three ways: SSO asks right human?, CAPTCHA asks not a bot?, API keys were how machines snuck in. Agents act as a chain — human → agent → sub-agent → action — and the three old questions collapse into one that nobody owns.

01 · identity

Passport

An Ed25519 keypair and a short-lived, offline-verifiable did:key passport. Proof-of-possession — we never see the private key, so we cannot impersonate your agent and neither can anyone who breaches us.

02 · permissions

Keyring

Scoped, signed, revocable access to connected systems — GitHub, Stripe, MCP servers — clamped three ways: grant ⊆ role ⊆ tenant guardrail.

03 · usage

Meter

Inference and execution budgets enforced at credential issuance. Over budget means no passport refresh, so an agent is cut off without us sitting on the inference path.

04 · money

Wallet

Signed mandates with hard caps, and Ed25519-signed, non-repudiable human approval for high-stakes spend.

The chain

Authority that narrows at every hop.

A sub-agent cannot be granted more than its parent holds, and cannot outlive it. That is checked at issuance, not documented as a guideline.

a named human
signs approvals
procurement-bot
agent-on-behalf-of-human
≤ $10,000 / mo
sourcing-sub
sub-agent it spawned
≤ $500, cannot outlive parent
stripe · charge
the action, at the moment it happens
allow · signed
Adoption

Start where nothing can break.

L0
Ship a signed record

pip install authoxi. No account, no key of ours. Your agent signs what it did and anyone can verify it offline.

Live
L1
Watch without blocking

Shadow mode records what it WOULD have refused. Nothing breaks while you find out what your fleet actually does.

Live
L2
Turn on the gate

Promote the mandate the shadow period proposed. Now the four outcomes are real.

Live
L3
Put a human on the money

Escalation thresholds and Ed25519-signed approval. The evidence a regulator asks for exists by construction.

Live
Quickstart

Four steps, and the last one is a stranger checking your work.

# no account needed to start
curl -X POST https://api.authoxi.com/signup \
  -d '{"name": "Acme Robotics"}'

# → { "secret_key": "sk_live_…" }
Asserted, not claimed
3implementations, one signing vector, checked in CI
7signed formats with cross-language test vectors
1,523tests, green
8dsince the last shipped change

Every one of these is what the suites in this repository actually report, re-derived on each build. The fleet in the ledger above is sample data.

Design partners

Bring one agent.

Design partners get the gate, the signed evidence and a direct line to the people building it. One field — we will not make you fill in a form to find out what this costs.

Request access

One email. Leave in one click. We never sell it.

One field. One click to leave. Never sold.