01What it is
Agentic layers / agent authorization

AI agent authorization, enforced before the money moves.

Set what an agent may spend. Check it before every payment.

A Precept is signed spend authority bound to an agent identity: a cap, a period, an allowlist, an expiry. Know Your Intent is the Abstraxn process that produces a Precept. Every proposed action is checked against the sealed Precept before x402 requests payment.

INPUTPOLICY ENGINEOUTCOMEtools/callget_token_pricespend policydaily · $5.00ledger sumDENIEDbudget exceeded402 → paypayment requiredsettle + ledgerremaining budgettransfer · unsignedyour app signsENFORCE · KIT TOOLSAPPROVE · TRANSFERSHITL · 402
02Controls
Autonomous agents need boundaries. Agent authorization is the control plane for what is this agent allowed to do with money and external services? In Web3 Agent Kit, trust is not a single switch. It is a set of enforceable checks and composable patterns. The kit enforces spend policy on fixed-price tools (e.g. get_token_price at $0.001); your application enforces recipient allowlists, transfer approval, and policy on variable paid_fetch calls.
Built-in controls
06
$5/day
Per-agent spend policy.
Daily and monthly budgets on kit-priced MCP tools, bound to one agent identity. Evaluated before x402 payment is requested or verified.
Spend ledger.
Every decision is versioned and hash-anchored, refusals included. Hashes only, never user data, so a deletion request does not break the trail.
https
Invocation guardrails.
AI agent access control at the tool level. Host allowlists and discovery filters bound the surface an agent can reach, not only the amount it can spend.
ok?
Human-in-the-loop by design.
Four pause points where an agent must stop and ask. Escalation is a rule you write, not an exception the runtime happens to raise.
DENY
Deny with data.
A refusal returns the failing rule, the remaining allowance, the reset time and a retry shape. Error code -32403, not a generic 403.
Custody stays with you.
Abstraxn holds no funds, issues no spendable credential and initiates no payment. Signing stays in your wallet, which is what makes neutral verification possible.

Cap kit spend. Gate external calls. Keep humans in the loop.

03Policy
Spend policy is built in

Spend policy is per agent and off by default. Enable it with PATCH /agents/:id/spend-policy, stored as metadata.spendPolicy. Run it in advisory mode first. Advisory records what the policy would have decided without blocking anything, so you can tune against real traffic before it enforces.

Precept fields

amount

The ceiling on a single call. Checked against the quoted kit price, not an estimate, so the comparison is exact.

window

The rolling period budget and its reset boundary. The refusal payload returns both the remaining allowance and the reset timestamp.

category

The merchant or tool categories this agent may spend in. Where a business ceiling also applies, the effective set is the intersection.

host

The domains this agent may reach. A call to any host outside the list is denied before payment is requested.

commitment_shape

Whether the agent may enter a recurring commitment or only a one-off. A subscription binds future periods, so it is authorised separately.

expiry

When the Precept stops being valid. An expired Precept fails closed. It does not degrade to a warning.

mode

enforce or advisory. Advisory decides and records without blocking, which is how you promote a rule safely.

Denial payload

A denied call returns which rule failed, which rules passed, the remaining allowance, the reset time, a retry shape and a receipt hash. The agent can act on that. A generic 403 tells it nothing.

04Scope
What spend policy covers (and what it does not)
  • Kit-priced tools

    Covered. Fixed-price MCP tools where the amount is known before the call. Spend policy runs first, then payment requirements, then verify, execute and settle.

  • Variable third-party APIs

    Not covered. Where price is only known after the response, a cap has nothing to compare against. The host allowlist and discovery filters apply instead. Abstraxn states this rather than implying a control it cannot enforce.

  • On-chain transfers

    Not covered. Signing stays in your wallet, so a raw transfer sits outside the kit. Recipient allowlists belong in your application, next to the key that signs. Abstraxn never holds that key.

05Allowlists
Allowlists and access control

Host allowlist

Bounds which domains an agent may reach. A call to a host outside the list is denied before any payment is requested, and the refusal names the host.

Tool allowlist

Bounds which MCP tools an agent may invoke on an allowed host. This matters when one server exposes a read tool and a write tool at the same address.

Category allowlist

Bounds spend by category rather than by host. Where a business sets a ceiling and a user sets their own, the effective list is the intersection of both.

Recipient allowlist

For on-chain transfers, the recipient list lives in your application beside the signing key. Abstraxn does not hold the list, because Abstraxn does not hold the key.

06HITL
Human-in-the-loop

The kit does not replace your approval UI. It creates natural pause points.

  • Above the per-call ceiling

    amount

    The amount clears the period budget but exceeds the single-call cap. The agent gets a hold rather than a denial, and the approval carries through as a one-off.

  • First payment to a new host

    new_host

    The host is not on the allowlist yet. Approving once adds it, so the second call to the same host clears without interrupting anyone.

  • A recurring commitment

    commitment_shape

    A subscription binds future periods, so it is treated differently from a one-off of the same amount. Recurring shape escalates unless it was authorised by name.

  • Anything a dry run flagged

    dry-run

    Advisory mode records what the policy would have denied without blocking it. Promoting that rule to enforcement turns those records into pause points before it starts refusing.

07Flow
Know Your Intent flow
  1. State what the agent may spend

    A person describes the limits in plain language. The Intent Compiler turns that into typed constraints. Anything it cannot enforce is declined out loud, never quietly guessed.

  2. Confirm and seal the Precept

    The person approves the structure, not the sentence. The confirmed version is signed, versioned and hash-anchored in the Precept Ledger. An amendment creates a new version rather than editing the old one.

  3. Check every proposed action

    The Authority Gate is the component that checks each proposed action. It evaluates amount, window, category, host and commitment shape against the sealed Precept. Allow, deny or escalate, before x402 requests payment.

  4. Verify the receipt without us

    Every outcome is receipted, refusals included. The Open Verifier is open-source software that runs offline and checks any receipt against the Precept it cites. No Abstraxn account is required.

08Design
Design principles
  • Decide before, audit after

    A control that only reports after settlement is monitoring, not authorization.

  • Refusals are the product

    A denial naming the failing rule and a retry shape is worth more to an agent than a silent success.

  • Never touch the money

    Abstraxn holds no funds, issues no spendable credential and initiates no payment, which is exactly what makes neutral verification possible.

  • State the boundary

    Abstraxn publishes what spend policy does not enforce, because a control you cannot describe precisely is a control nobody trusts.

  • Verifiable without us

    The verifier is open source and runs offline, so no part of the trail depends on Abstraxn continuing to exist.

09Stack
How it fits the other layers
Explore all agentic layers →
10Integrate
For developers

Spend policy is a PATCH on the agent object. Two MCP responses carry the decision forward. Payment Required (402): approve or sign, then retry with paymentPayload. Spend Policy Denied (-32403): see error.data.spendPolicy for the failing rule, remaining allowance and retry shape.

PATCH /agents/{agentId}/spend-policy
Authorization: X-API-Key (application key)
{
"enabled": true,
"budgetUsd": "5.00",
"period": "daily",
"hardBlock": true
}

Signing stays with you. Enforce recipient allowlists and transfer limits in your application, next to the key. Abstraxn never holds that key.

11FAQ
FAQ
What is AI agent authorization?

AI agent authorization is the check between an agent deciding to spend and the money moving. The agent presents an identity and a Precept, and the amount, period, host and commitment shape are checked before any payment is requested.

What happens when an AI agent exceeds its spend limit?

Nothing moves. The Authority Gate denies before payment is requested and names the failing rule. The refusal returns the remaining allowance and a retry shape, and is sealed as a receipt.

Is spend policy on by default?

No. Abstraxn ships spend policy off by default, enabled per agent, and it can run in advisory mode first, recording what it would have decided without blocking anything.

Can a Precept be revoked after it is issued?

A Precept can be revoked immediately by the principal who signed it, and the revocation is itself receipted. Any decision timestamped after the revocation is invalid by construction rather than by policy.

Does this work with agents built on other stacks?

Yes. Abstraxn checks a Precept over the same MCP call any agent already makes, whoever built the agent. Identity can arrive as an ERC-8004 registration, a DID, a verifiable credential or an enterprise agent ID.

12Start

Set a Precept on one agent, run it in advisory mode for a week, and count how many times it would have said no.