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.
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
0xD6E8aF2F65B4C9ACC7BF14A3096056e89E312878Self-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)
# 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.