Spend control is not enough
heldA cap says how much. A warrant says whether.
Limits stop an agent overspending. They do not stop it paying for a 500, an empty payload or a fabricated result.
Conditional releaseBuilt on Rialo
Warrant holds an agent’s payment until the deliverable behind it is verified against your policy, confidentially, inside REX. Clean pass releases automatically. Anything else goes to a human.
npx warrant initThe three states
Payment signed, funds parked, waiting on the verifier.
Deliverable matched the spec inside REX, funds cleared.
Check failed or landed in the grey band, a human decides.
Spec
200 + schema:invoice.v2 + freshness<60s
Evidence
waiting on the verifier
no decision yet
How it works
Your agent signs an intent: amount ceiling, payee, deliverable spec, verifier, deadline.
Nothing leaves the balance. The warrant and its policy are recorded before anything executes.
The deliverable is pulled live over native HTTPS and checked against the spec confidentially. The agent's own report is never the evidence.
Clean pass releases in one hop. Anything borderline goes to a human with the evidence attached. Nothing expires into limbo, unverified warrants refund themselves.
Built for the agent economy
Spend control is not enough
heldLimits stop an agent overspending. They do not stop it paying for a 500, an empty payload or a fabricated result.
Proof, not self-report
releasedThe verifier fetches the deliverable itself and checks it inside confidential compute.
A human only when it matters
escalatedBorderline checks reach a person with the evidence already assembled, on a phone, approved with a passkey.
x402, paid on delivery
| Aspect | x402 as it ships | x402 through Warrant |
|---|---|---|
| When money moves | On request, before the response | After the response is checked |
| What you pay for | The attempt | The deliverable |
| Bad response | You paid | Held, then refunded or escalated |
| Integration | HTTP 402 flow | The same flow, one config line |
Point your existing x402 client at Warrant’s facilitator endpoint. Same protocol, different moment of settlement.
Verifiers
Verifiers are the part that compounds. Wallets are a commodity.
Agent to agent
Two agents can transact with nobody watching, because the money is not the trust, the check is.
The trace
warrant wr_4471_0f2a9c
policy pol_invoice_v2 @ 7
policy_hash 9f2c4e8a71b03d55e6c1a4f70b8d239e
verifier json.schema + data.freshness
inputs https://api.exampledata.io/invoices/8812
evidence sha256:3b1f0c7d94ae2856ff40b7c1d8e5a2069c33b7e14a8d05f2
sha256:c81a4f60de37b295a0e1f8d34b6720cc95ae83d17f04e6b2
decision released
reason schema_match, freshness_ok
actor system
block rialo:testnet #4,912,338
recorded_at 2026-08-10T09:41:22.418ZEvery decision is recorded before execution, so “who authorised this, what were the limits, is there a record” has one answer.
Warrant Score
Every trace is a permanent pass-or-fail record against an agent identity. Published as a score, it lets one agent price and size a job for another on delivery history instead of trust.
Open your first warrant in sandbox. No funds move until a check passes.
Open a warrant