402tools402 docs
docs · live

Base

Base is the default chain for tools402 — it's where x402 was originally specified by Coinbase and where the agent payment ecosystem standardised in 2026.

#Identity

| Field | Value | |------------------|----------------------------------------------------| | CAIP-2 networkId | eip155:8453 | | Chain ID | 8453 | | RPC (public) | https://mainnet.base.org | | Explorer | basescan.org |

#USDC

| Attribute | Value | |------------------|--------------------------------------------------------| | Contract address | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | | Decimals | 6 | | Issuer | Circle (native, not bridged) | | Verified | 2026-05-17 | | Explorer link | basescan.org/address/0x833589...2913 |

#Buyer payment scheme

Base uses the exact scheme — buyer signs an EIP-3009 transferWithAuthorization off-chain. The facilitator broadcasts the tx, paying gas. The buyer never holds ETH to pay gas; only USDC is needed.

text
402 quote (relevant fields)
{
  "scheme": "exact",
  "network": "base",
  "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "payTo": "0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878",
  "maxAmountRequired": "10000",
  "maxTimeoutSeconds": 60
}

#Facilitator stack (3 levels, sub-500 ms failover)

| Priority | Facilitator | Type | Notes | |----------|-------------------|-----------------------------|--------------------------------------------------------| | 1 | Coinbase CDP | External, official x402 | Hosted by Coinbase. Highest priority, fastest path. | | 2 | PayAI | External, multi-chain x402 | Picks up if Coinbase CDP misses SLA. | | 3 | local-key | Same-chain self-signed | Server signs + broadcasts itself if both externals miss. Uses TOOLS402_FACILITATOR_KEY env. Zero third-party custody touch. |

See Facilitators for the full architecture across the 3 chains.

#Marketplace recipient

text
0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878

Self-custody from day one. Buyer payments land here on-chain ; daily settlement at 00:00 UTC forwards (net of 3 % paywall or 4 % proxy take rate) to the seller's wallet on their declared settlement chain.

#Pay-on-Base example (curl + cast)

bash
# 1 · ask the endpoint, get a 402 quote
curl -i -X POST https://api.tools402.dev/v1/pdf-md -F "file=@receipt.pdf"

# 2 · pay 0.010 USDC on Base
cast send 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \
     "transfer(address,uint256)" \
     0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878 10000 \
     --rpc-url https://mainnet.base.org

# 3 · retry with X-Payment receipt
curl -X POST https://api.tools402.dev/v1/pdf-md \
     -H 'X-Payment: eyJ4NDAyVi…ifQ' -F "file=@receipt.pdf"

Full TypeScript + Python flows : /buy-side/typescript · /buy-side/python.