How ATXP's IOU Model Caps Agent Spending by Design

The standard approach to agent spending limits: configure a cap in a settings panel, hope the enforcement logic works correctly, and find out it didn’t when the invoice arrives.

ATXP’s approach is different. The IOU token balance is the ceiling — structurally, not as a setting. An agent cannot spend more than what’s pre-funded. There’s no enforcement logic to get wrong.


IOU token balance meter with hard ceiling indicator and per-category spending bars

The difference between a limit and a ceiling

Definition — IOU Token (Spending Model)
An IOU token is ATXP's unit of pre-funded agent credit. The developer loads a balance; the agent spends per tool call. The ceiling is structural — the agent can only spend what's loaded, in the same way you cannot spend more than your cash balance. This is categorically different from a configurable spending limit: limits require enforcement code that can fail; a pre-funded ceiling has no balance to draw from beyond what's been loaded.
— ATXP

A spending limit is a rule: “don’t spend more than $X.” Rules require enforcement. Enforcement requires code. Code has bugs. And even correct enforcement logic can have race conditions — what happens when two tool calls fire simultaneously and both pass the pre-call balance check, but together they’d exceed the limit?

A pre-funded ceiling is different. It’s not a rule that the system checks — it’s the physical constraint. There is no balance beyond what’s loaded. The agent cannot spend more than it has for the same reason you can’t spend more than your cash balance when paying with cash.

Spending limit (setting)Pre-funded ceiling (IOU)
Requires enforcement code to workStructural — nothing to enforce
Subject to race conditionsNot possible by design
Can be bypassed by misconfigurationCannot be bypassed
Charged first, checked afterPre-funded — nothing charged beyond balance
Surprise invoice if something goes wrongBalance hits zero, calls stop

For autonomous agents running without human approval on every call, the distinction matters. A limit that can theoretically be exceeded isn’t a real limit.


How the IOU model works

The flow from developer to tool call:

  1. Developer funds the agent’s account with IOU tokens via the CLI or dashboard
  2. Agent begins a task — plans steps, identifies what tools to call
  3. Before each tool call, ATXP checks the agent’s balance
  4. If balance is sufficient: tool call executes, balance decrements by the tool’s cost
  5. If balance is insufficient: call returns balance_insufficient, task pauses
  6. Developer sees everything: per-call ledger, balance remaining, which tools ran

Nothing charges beyond the funded balance. Nothing continues if the balance is zero. The ceiling is the balance.

Agent balance: 8.3 IOU tokens

→ web_search("competitor pricing update")     -0.05 tokens  [7.3 IOU remaining]
→ web_browse("competitor.com/pricing")        -0.12 tokens  [7.2 IOU remaining]
→ llm_summarize(context)                      -0.08 tokens  [7.1 IOU remaining]
→ email_send(summary to developer)            -0.02 tokens  [7.1 IOU remaining]
→ Task complete. Balance: 7.1 IOU tokens.

Per-category limits: the secondary layer

The pre-funded balance caps total spending. For finer-grained control, ATXP also supports per-category limits:

CategoryExample limitEffect
Tool callsMax $0.10/callPrevents runaway single-call costs
LLMMax $0.05/callCaps per-inference spend
CommerceMax $50/transactionHard cap on any purchase
DailyMax $5/dayRate cap regardless of balance

These are configurable in the ATXP dashboard or via CLI:

npx atxp limits --agent "commerce-agent" --commerce 50 --daily 20

The per-category limits are the “remember to configure” layer. The pre-funded balance is the floor beneath them — even if every limit is misconfigured, the agent still can’t exceed the total balance.


Why spending controls matter for production agents

The concern isn’t malicious agents — it’s bugs and scope creep.

A monitoring agent configured to check 10 URLs can, through a simple loop error, check 10,000. An agent instructed to buy one item can, through an ambiguous goal, buy ten. An agent running a multi-step research task can, with a long context window and many LLM calls, accumulate significant token costs before the task completes.

None of these are edge cases. They’re the first bugs you hit when moving from demo to production.

"Given how fast we grew, most everything broke — including our own LLM gateway. We were using it constantly, it was getting hammered, and we didn't have the safeguards we should have had. The IOU model came directly out of that experience — we needed something that would stop the bleeding structurally, not just add another limit setting we'd forget to configure."

Louis Amira Louis Amira — Co-founder, ATXP

The IOU model was designed specifically so that worst-case bugs produce a bounded, recoverable outcome: the agent’s balance depletes, calls stop, and the developer refunds what’s needed to continue. The developer gets surprised, but by a depleted balance — not by a five-figure API invoice.


Multiple agents: separate balances by design

Each agent provisioned through ATXP has its own account and its own balance. Budgets don’t pool. An agent that exhausts its balance doesn’t borrow from another agent’s account.

# Research agent — modest budget, low blast radius
npx atxp --agent "research-agent" fund --amount 20

# Commerce agent — higher budget, tighter per-transaction limits
npx atxp --agent "commerce-agent" fund --amount 200
npx atxp --agent "commerce-agent" limits --commerce 75

This lets you right-size budgets per agent based on what each agent is authorized to do. A research agent running competitive monitoring has a $5 ceiling because that’s all it needs — and if something goes wrong, the maximum exposure is $5. A commerce agent has a higher balance because its task requires it — but per-transaction limits ensure it can’t make one catastrophic purchase.

For more on multi-agent setups: how to give your agent payments and identity →


What the agent sees when balance is low

When an agent’s balance drops below a threshold, ATXP returns balance warnings before calls fail. The agent can:

  • Complete the current task step and pause before the next
  • Notify the developer that balance is low
  • Continue with non-paid tool calls (ones that don’t require balance)
  • Request a refill via a configured webhook

This gives the agent — and the developer — a graceful degradation path rather than a hard crash mid-task.


# Provision an agent with a pre-funded balance
npx atxp

# Check current balance and per-call costs
npx atxp status

# Add tokens to an existing agent
npx atxp fund

10 free IOU tokens on registration. Pay per tool call after that. The ceiling is always the balance — nothing can exceed it. Full docs at docs.atxp.ai →


Frequently asked questions

How does ATXP cap agent spending?

The IOU balance is the ceiling — structural, not a configurable rule. The agent can only spend what’s pre-funded. When the balance hits zero, tool calls stop. No overrun possible by design.

What is an IOU token?

ATXP’s unit of pre-funded agent credit. You load a balance; the agent spends per tool call. New accounts get 10 free tokens. Full IOU explainer →

What happens when an agent runs out of IOU tokens?

Tool calls stop gracefully. The agent receives a balance-insufficient response and can pause, notify, or continue with free tool calls. Nothing additional is charged.

How is a pre-funded ceiling different from a spending limit?

A limit is a rule that enforcement code checks — subject to bugs and race conditions. A pre-funded ceiling is structural: there’s no balance to draw from. The agent can’t overspend for the same reason you can’t spend more than your cash balance.

Can I set different limits for different agents?

Yes. Each agent has its own balance and per-category limits. Fund them independently; set per-transaction caps per agent. Multi-agent spending controls →

What is the difference between IOU tokens and API credits?

API credits are provider-specific. IOU tokens are cross-tool and cross-provider — one balance funds web search, image generation, code execution, LLM calls, email, and commerce. AI API cost comparison →