AgentPay is a machine-payable data rail on BOT Chain. The agent signs an EIP-712 voucher off-chain; the facilitator settles it on-chain and pays the fee itself. The payer needs no gas, no account, no signup, no subscription — just a signature.
Live screens, captured from this deployment — not mockups.
Pick a route. Your browser runs the real exchange — it takes the 402, signs a voucher with the demo agent wallet, and re-sends it. The facilitator settles on BOT Chain testnet, and the transaction hash below is the actual receipt.
Select a route to run a real paid call.
No API keys to provision, no invoice to reconcile, no gas tank to top up. The whole exchange is two HTTP round-trips and one signature.
A plain GET on a paid route. No credentials, no SDK, no handshake.
GET /v1/votes/508?hours=6
A standard 402 carrying the price, a fresh invoice id, an expiry and the payee.
402 · 0.010 USDT · inv 0x7a… · exp 300s
An EIP-712 voucher over agent, payee, amount, invoice and expiry. Off-chain: no gas, no nonce, no transaction.
voucher(agent,payee,amount,invoice,expiry,chainId,vault)
The facilitator submits it to the vault, pays the gas, and returns the data with the receipt attached.
settle() → 80,123 gas · 0.0016 BOT
The usual x402 flow relies on EIP-3009 transferWithAuthorization — a gasless transfer the payer authorises with a signature. That is a USDC feature. USDT never implemented it, on any chain, including this one.
That was verified by scanning the deployed bytecode for the function selectors, not by reading docs:
absent permit (EIP-2612) 0xd505accf absent transferWithAuthorization 0xe3ee160e absent receiveWithAuthorization 0xef55bec6 absent authorizationState 0xe94a0102 PRESENT approve 0x095ea7b3 PRESENT transferFrom 0x23b872dd
The agent deposits USDT once. After that, every call is a signature — no chain write, no gas, no nonce management on the payer's side. The facilitator submits the voucher and eats the fee.
It is x402 v2's batch-settlement scheme, and it is permissionless: anyone can submit a valid voucher, and an agent's balance can only move with the agent's own signature.
The four-step flow, mid-call on a phone.
A settlement is a fixed 80,123 gas. At 20 gwei that is 0.0016 BOT, so a call priced at a tenth of a cent still covers itself with room to batch. That ratio is the whole reason machine payments belong on a chain like this and not on one where a transfer costs more than the data.
Module 01 of the chain's Agent OS is an MCP server: nine tools that speak the Model Context Protocol over stdio, so Claude, Codex, Hermes or Cursor get live BOT Chain data with no integration code at all.
hermes mcp add botchain \
--command node \
--args /root/botchain-mcp/src/index.js
# then, from any agent session:
ecosystem_votes { projectId: 508, hours: 6 }
→ 71 votes, 16 distinct wallets
Prices are per request and settle on BOT Chain. Nothing is prepaid beyond the vault deposit an agent chooses to make.
| Route | What it returns | Price |
|---|
Everything below is deployed and queryable right now. The log is the last settlements as this page loaded.
The vault runs on BOT Chain testnet with a test USDT that deliberately replicates the real token's constraints — no permit, no EIP-3009. The contract is token-agnostic; mainnet is a deployment, not a rewrite.
Clicking a route signs with the demo agent wallet and spends its vault balance, so a visitor watches a real settlement without risking their own funds. Rate-limited to one signature every few seconds.
Right now a single key submits and pays for every settlement. That is fine on testnet and wrong for production, where the relayer wants a spend ceiling and a rotated key.
The MCP server speaks stdio, so it runs where the agent runs. A remote transport so agents can connect over a URL is the next piece, not a shipped one.