Agent Registry
Give an AI agent its own USDC wallet, set hard spending limits on it, and let it pay on its own. The agent keeps its own funds — Flux never holds them — and every payment is checked against your limits before it can go through.
How it works
Register an agent wallet with three caps: a per-transaction limit, a daily limit, and a lifetime limit. The agent wallet then approves the registry contract to move its own USDC, the same way you'd approve any contract to spend a token on your behalf. After that, the agent can pay recipients directly, and the registry checks every payment against your caps before it happens.
You can update caps, pause an agent, resume it, or shut it down permanently at any time. Only you, as the wallet that registered it, can change its settings.
Two ways an agent can pay
Caps mean different things depending on how the payment moves, and it's worth knowing the difference before you rely on them:
On-chain payments
The agent calls recordPayment. The registry itself pulls the funds from the agent's wallet and sends them. This is trustless: the cap physically cannot be exceeded, because the money can't move without passing the check first.
Gateway / x402 payments
For agent-to-service payments (an AI agent paying per API call, for example), Circle's Gateway moves the funds directly through its own settlement path — the registry never touches that money. The agent calls recordExternalSpend to log the payment against the same caps, but this only works if the agent's own code calls it before paying. Nothing on-chain forces that call to happen, so this cap is enforced by convention, not by the contract. Flux's own agent-payment code always calls it; a third-party integration would need to as well.
Flux agents can only pay for services today — publishing your own endpoint so other agents pay you through Flux is intentionally out of scope for now.
Guardrails
Beyond the three caps, each agent can have:
Why this runs on Flux, not Circle
Flux enforces agent caps itself, on-chain, through this registry — trustless and independent of any wallet provider, so the limits can't be bypassed. Circle's own wallet-level spending policies (per-transaction, daily, weekly, and monthly caps) can layer on top as a second control now that Arc is on mainnet, but the on-chain registry is the enforcement that always holds.
The allowlist, blocklist, and expiry described above go beyond Circle's own policy vocabulary — they're Flux additions, not a mirror of what Circle offers.
Contract
Full function and event signatures are on the Reference page.
function registerAgent(
address agentWallet,
uint256 perTxCap,
uint256 dailyCap,
uint256 totalCap,
uint64 expiry
) external returns (uint256 agentId)