Circle Gateway for AI agents: deposit USDC once, pay every call with a signature
Circle Gateway on BlockRun Nano: deposit USDC once on any of 11 chains, then pay for 89 AI models and every tool API per call with an off-chain signature. No gas, no API key.
Circle Gateway, in the buyer's terms.
Circle Gateway is Circle's unified USDC balance: a buyer deposits USDC once on any supported chain, and from then on can authorize payments against that balance by signing an EIP-712 message — no transaction, no gas, no waiting for a block. BlockRun Nano is the AI gateway built on it. Every paid request here comes back as an HTTP 402 with the price in dollars; the SDK signs an authorization for exactly that amount and retries; Circle's Gateway facilitator verifies the signature before the model runs and settles the call on-chain later, in a batch with thousands of others.
That split — per-call pricing for the agent, batched settlement for the chain — is what makes sub-cent AI calls workable. An agent making a thousand small calls an hour cannot send a thousand transactions; it can sign a thousand messages. The chain sees one settlement. The buyer never holds a gas token except for the single deposit, and on Arc not even that.
The catalog and the API surface are blockrun.ai's: the same OpenAI-compatible /v1/chat/completions and Anthropic-compatible /v1/messages, the same image, video, music, speech, search, market-data and RPC routes, the same model ids. What differs is the rail. blockrun.ai settles each call natively through x402 on Base and Solana; nano settles through Circle Gateway on every other EVM chain Circle supports, and never offers Base.
What you actually run.
npm install @blockrun/nano-clientimport { NanoClient } from "@blockrun/nano-client";
const client = new NanoClient({ chain: "<chain>", privateKey: process.env.PRIVATE_KEY });
await client.deposit("5"); // one on-chain tx into Circle Gateway
const r = await client.chat({ model: "openai/gpt-5.5", messages: [{ role: "user", content: "hi" }] });
console.log(r.payment.formattedAmount); // the USD this call cost, signed off-chaincurl -s https://nano.blockrun.ai/.well-known/x402 | jq '.endpoints[0].networks'await client.withdraw("2"); // Gateway → wallet, same chain
await client.withdraw("2", { chain: "arc" }); // cross-chain over CCTPCircle Gateway for pay-per-call AI,
question by question.
- What is Circle Gateway, and how does an AI agent pay with it?
- Circle Gateway is a unified USDC balance Circle holds for a wallet across supported chains. An agent deposits USDC into it once, then authorizes each payment by signing an EIP-712 message; Circle's facilitator verifies the signature and settles in batches. On BlockRun Nano every AI call is one such signature — the SDK does it for you.
- Is Circle Gateway gasless for pay-per-call AI?
- For the buyer, yes. The only transaction you send is the deposit. Every call after it is an off-chain signature, and Circle pays the settlement gas when it batches. On Arc, USDC is the gas token, so even the deposit needs no second asset.
- Which chains can I deposit USDC on for Circle Gateway AI payments?
- 11 chains today — Polygon, Arbitrum, Optimism, Unichain, Avalanche, Sonic, Sei, World Chain, HyperEVM, Ethereum and Arc — every mainnet chain Circle Gateway supports. The list in the 402 is the live one: a chain appears the moment Circle's facilitator lists it.
- How is Circle Gateway different from x402 on Base, or from OpenRouter credits?
- Native x402 on Base settles each call as its own on-chain payment; Circle Gateway signs each call off-chain and settles many at once, so there is no per-call gas and no Base wallet needed. OpenRouter credits are a prepaid account balance topped up by card; a Gateway balance is USDC you still own, withdrawable to your wallet at any time, and the price of each call is in the 402 before it runs.
- What does a call cost through Circle Gateway, and is there a batching fee?
- The same as on blockrun.ai: provider cost plus a 5% margin and a flat $0.002 per call, quoted in the 402 before the call runs. Batching changes when settlement lands on-chain, not what a call costs. No subscription, no minimum, no expiring credits.
- How long does a Circle Gateway deposit take before I can call a model?
- About ten seconds. client.deposit() sends one transaction (two the very first time — an approve, then the deposit); Circle's indexer credits the Gateway balance shortly after it confirms. A 'Gateway available 0' error right after depositing is indexer lag — wait and retry.
- When does the USDC actually leave my Circle Gateway balance?
- Circle's facilitator checks the signature before the model runs, so a call never runs unpaid. Settlement to BlockRun happens later in Circle's batches; client.getPaymentStatus() shows each intent moving Received → Batched → Confirmed. You never wait for a block.
- Can I use Circle Gateway with the OpenAI SDK or Claude Code instead of the nano client?
- The request shapes are OpenAI's and Anthropic's, so any client can send them — but something has to sign the 402. Today that is @blockrun/nano-client (TypeScript). Point an OpenAI-compatible client at nano and it will receive the 402 with the price; wrap the call with the nano client to pay it.
- Can I withdraw my Circle Gateway balance, or move it to another chain?
- Yes. client.withdraw() returns USDC to your wallet on the same chain immediately; withdraw with a chain option moves it over Circle's CCTP to another supported chain in roughly a quarter of an hour. Nothing is locked.