BlockRun
x402 rail · Circle Gateway

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.

01
How it works

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.

02
Setup

What you actually run.

1. Install the SDK
bash
npm install @blockrun/nano-client
2. Deposit once, then call
ts
import { 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-chain
3. See which chains the 402 accepts right now
bash
curl -s https://nano.blockrun.ai/.well-known/x402 | jq '.endpoints[0].networks'
4. Move a balance between chains, or back to your wallet
ts
await client.withdraw("2");                    // Gateway → wallet, same chain
await client.withdraw("2", { chain: "arc" });  // cross-chain over CCTP
FAQ

Circle 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.
Other rails on this host