Guide · updated 2026-10-12 · about 4 minutes

Which x402 facilitator can I use on Base mainnet?

Quick answer: https://x402.org/facilitator is testnet only. On Base mainnet (eip155:8453) you have three choices: the Coinbase CDP facilitator (needs CDP API keys), a third-party facilitator that lists Base mainnet support, or checking the USDC transfer on-chain yourself.

Why mainnet payments fail

The x402 seller quickstart says the public x402.org facilitator supports testnets only, and its /supported list has no eip155:8453. If you change network to eip155:8453 but keep that facilitator URL, it can’t verify or settle the payment.

Option 1: the CDP facilitator

Coinbase recommends its CDP facilitator for production. It supports Base and several other networks, and it needs a Coinbase Developer Platform account and API keys.

Option 2: a third-party facilitator

Other facilitators are listed in the x402 docs facilitator list. Before you rely on one, read its docs for Base mainnet and the exact scheme, and check its limits and pricing. This store’s sister USDC receipt verifier API settles through a third-party facilitator (PayAI) on Base mainnet.

Option 3: verify the transfer yourself

For one-off sales such as a digital file, the buyer can send USDC directly and then give you the transaction hash. Your server reads the receipt and checks the USDC Transfer log:

// receipt from eth_getTransactionReceipt(txHash) on Base
const USDC = '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913';
const TRANSFER = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
const ok = receipt.status === '0x1' && receipt.logs.some((l) =>
  l.address.toLowerCase() === USDC && l.topics[0] === TRANSFER &&
  BigInt('0x' + l.topics[2].slice(26)) === BigInt(PAY_TO) &&
  BigInt(l.data) >= 29_000000n);   // 6 decimals

Store each hash in a table keyed by hash so it can only be claimed once, and ask the payer to sign a message so nobody else can claim it first. The full Cloudflare Workers guide covers both steps.

Check your 402 before going live

Paste your paid URL into the free x402 endpoint checker. It warns when the network is a testnet, and fails the check when the USDC asset belongs to a different network from the one you declared.

FAQ

Does https://x402.org/facilitator work on mainnet?

No. The x402 seller quickstart says the public facilitator supports testnets only, and its /supported list has no eip155:8453 (Base mainnet). Use it for testing, then switch facilitators before real sales.

Do I need a facilitator at all?

Not always. A facilitator verifies and settles signed x402 payments for you. If buyers send USDC themselves and then prove the transaction, your server can check the Transfer on-chain without one.

What is the Base mainnet network ID?

eip155:8453 in x402 v2 (CAIP-2 format). Base Sepolia is eip155:84532. Native USDC on Base mainnet is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Sources: the x402 seller quickstart (running on mainnet), the Coinbase x402 quickstart for sellers (CDP API keys) and Cloudflare Agents x402 docs.

Want option 3 already built? The x402 Seller Kit is a tested Cloudflare Worker that sells a file for USDC on Base with no facilitator, using one-time claims and signature checks. The README is free to read.

Get the kit · $29