pay per run · no account
botx402 / agents
/agents · x402 + USDC, machine-callable

Same bots. Talked to in HTTP.

Every botx402 product is also a paid HTTP endpoint. Your agent calls it, the server returns 402 Payment Required with a USDC quote, the agent signs an EIP-3009 authorization and retries. We verify and settle through Coinbase's hosted facilitator. No account. No API key. Receipt by tx hash.

01

Discover the bot

Agent reads /.well-known/x402 for each bot's slug, price and payee, and the bot's input schema from /api/v1/agent/bots.

02

Sign the authorization

Agent calls the bot's /run, gets 402 with the price + payee. It signs an EIP-3009 transferWithAuthorization for the exact amount and retries with PAYMENT-SIGNATURE (x402 v2).

03

Settle on success

Server verifies via the facilitator, dispatches the work, settles on Base after delivery. Failed runs auto-refund — they simply never settle.

/agent-callable · live

1 bot live on the agent surface.

more bots ship → more endpoints unlock here
/inventory-reorder
Inventory Reorder Snapshot
Send 90 days of SKU sales, stock and lead times. Get what to order now, how many, and where cash is stuck.
POST /api/v1/agent/inventory-reorder/run
price 19.00 USDC
Bot details →

x402 v2 · Network: eip155:84532 (Base Sepolia) on dev · eip155:8453 (Base) on prd · USDC asset pinned to the canonical Circle contract per network. Verified at build time against on-chain name().

/discovery · machine-readable

Two endpoints to introspect from.

/.well-known/x402

Catalog manifest. Every live bot's slug, the full /run URL, and the same x402 v2 PaymentRequired the 402 returns, ready for the agent's signing path.

Fetch the manifest JSON →
/api/v1/agent/bots

Slim catalog. Each bot's slug, name, USDC + USD price, status, and the JSON Schema for its inputs field. Useful for agent UIs that want to render the offer.

Fetch the slim catalog →
/quickstart · 4 calls

From zero to a settled run.

# 1. Discover the bots, prices and payee.
curl https://api.botx402.io/.well-known/x402

# 2. Unpaid call. Returns 402; the PAYMENT-REQUIRED header holds what to sign.
curl -X POST https://api.botx402.io/api/v1/agent/<slug>/run \
     -H 'content-type: application/json' -d '{"inputs": {...}}'

# 3. Pay + run. Use any x402-compatible client to sign an EIP-3009
#    authorization for those requirements and resend with PAYMENT-SIGNATURE.
#    The x402 project ships reference clients in TypeScript, Python, and Go:
#    https://github.com/x402-foundation/x402

# 4. Poll the run with the access token from the 200 response.
curl "https://api.botx402.io/api/v1/agent/runs/<receipt_id>?t=<access_token>"

# On success the status is "completed" and the response carries:
# pdf_url:     presigned URL to the report PDF
# receipt_url: presigned URL to the receipt PDF
# settlement_tx_hash: the settlement hash on Base

x402 client libraries: github.com/x402-foundation/x402 — official x402 reference implementations in TypeScript, Python, and Go.

/the memo

What's protocol vs. ours.

The 402 handshake, the EIP-3009 authorization shape, the facilitator URL — that's all Coinbase's x402 protocol. We didn't invent it. We just wear it.

What's ours: a clean abstraction for adding new agent-callable bots — registry, pricing, payment plumbing, fulfilment queue. When bot #2 ships, it surfaces here as one new row; the x402 protocol layer above doesn't change.

Settle-on-success means failed runs auto-refund — your USDC never leaves your wallet because the authorization expires. For runs that do complete and you dispute the result: email refunds@botx402.io with the receipt id and your wallet. We send the USDC back from the recipient wallet manually. Crypto refunds are operator-driven on purpose; auto-refund APIs invite replay abuse.

We're on x402 v1 today. v2 lands when an agent SDK we want to onboard demands it.