A payment stack your agents can trust
Let agents pay for APIs per call — with spending limits you set, USDC settled on Arc, and optional post-payment Assurance via GenLayer when service delivery fails.
The infrastructure standard
AgentPay orchestrates the x402 lifecycle and, when Assurance is enabled, binds bounded evidence to a GenLayer SLA verdict and a provider-funded refund on Arc. Explore Assurance
One agent run, end to end
- 402 Payment Required
POST /research
no API key sent
- signed
sign transfer · 0.005 USDC
EIP-3009, off-chain
- 200 OK
retry with X-PAYMENT
settles on Arc Testnet
x402 Protocol · EIP-3009 · testnet funds
One client, explicit policy
Autonomous payments, without hiding the controls.
One client handles the 402 handshake. Your policy and journal keep every authorization bounded, durable, and inspectable.
from arc_agent_pay import PaymentClient, PaymentPolicy, SqlitePaymentStore
policy = PaymentPolicy(
max_payment_usdc="0.05",
daily_cap_usdc="2.00",
)
async with PaymentClient(
account=account,
policy=policy,
payment_store=SqlitePaymentStore("payments.db"),
) as client:
response = await client.get(url)Settlement
Automatic x402 negotiation and EIP-3009 USDC settlement with explorer-verifiable receipts.
Identity
ERC-8004 agent identity, reputation checks, and evidence-bound validation attestations.
Workflow
Durable policy and payment journals, validation escrow, and an ERC-8183 client profile.
Payment succeeded. What if the service didn't?
Agents can pay instantly over x402. Assurance captures what was promised and delivered, lets GenLayer judge semantic SLA violations, and can refund the buyer from a provider-funded bond on Arc.
Arc
Settles payment + refund
GenLayer
Judges the SLA
AgentPay
Binds evidence, verdict + settlement
Original payment stays final. Refund = a new USDC transfer from WarrantyBond.
Built into the SDK
The hard parts are already handled.
Budgets, discovery, retries, and receipts ship in the box — so the only thing you write is your agent.
Budgets that actually hold.
Every run gets a hard cap. Quote-aware policy adds maximum-price, rolling spend, velocity, provider, network, asset, recipient, and kill-switch controls before any signature.
Agents find the right API on their own.
A built-in registry ranks services by name, tags, and description. Your agent searches for what it needs — 'crypto prices' — and gets back live, payable endpoints.
Your agent code never changes.
PaymentClient is a drop-in HTTP client. When a server answers 402, the payment is signed, attached, and retried behind the scenes — your application logic stays exactly as it was.
- amount
- 0.005 USDC
- network
- Arc Testnet
- tx
- 0x9f2c…a41b
Every payment on the record.
A durable SQLite journal records quoted terms and pending, authorized, settled, failed, or ambiguous outcomes. Settlements link to Arc Explorer; assured calls can also bind them to evidence and a finalized GenLayer SLA verdict.
The handshake
An agent pays. The protocol settles.
Five steps, a few seconds, every payment verifiable on-chain.
Request
The agent calls a paid API — no auth header, no API key.
402
The server answers with a price: 0.005 USDC, payable on Arc.
Sign
The agent signs an EIP-3009 authorization off-chain. No gas.
Retry
The signed payment rides along in the X-PAYMENT header.
Settle
The server settles on Arc Testnet and returns 200 with the tx hash.
Optional Assurance continues after settlement: evidence → GenLayer judgment → bond-funded refund. See how Assurance works
Public playground
Hosted playground activity.
Every run and payment made by this public sandbox.
Questions
Frequently asked.
An open-source Python SDK that lets AI agents pay for APIs as they use them. Servers price each call over the x402 protocol, and the agent settles in USDC on Arc Testnet — no accounts, no API keys.
Give your agents a wallet of their own.
Run one in your browser and watch it find an API, pay for the call, and settle in seconds. Nothing to install.