How do I test x402 payments on Base Sepolia before mainnet?
Quick answer: set network to eip155:84532, point your server at https://x402.org/facilitator (no signup), and pay from a wallet holding faucet USDC. When it works, change three things for mainnet: the network (eip155:8453), the facilitator, and any hard-coded USDC address.
1. Point your route at Base Sepolia
This is the route config from the x402 seller quickstart (Express). A dollar price like "$0.001" is paid in the network’s default USDC.
const server = new x402ResourceServer(
new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })
).register("eip155:84532", new ExactEvmScheme());
app.use(paymentMiddleware({
"GET /weather": {
accepts: [{ scheme: "exact", price: "$0.001", network: "eip155:84532", payTo }],
description: "Get current weather data",
mimeType: "application/json",
},
}, server));
On 14 Oct 2026 the facilitator’s /supported list showed exact, upto and batch-settlement on eip155:84532, and no eip155:8453.
2. Get test funds
- USDC: Circle’s faucet gives 20 testnet USDC per address, per chain, every 2 hours, with no account. Choose Base Sepolia.
- Token address: Base Sepolia USDC is
0x036CbD53842c5426634e7929541eC2318f3dCF7e(Circle’s address list). Only needed if you set the asset yourself instead of a dollar price. - ETH: the CDP faucet dispenses Base Sepolia ETH, which a wallet needs to send its own transactions on the testnet.
3. Check the 402 before you pay
Paste your URL into the free x402 endpoint checker. On Base Sepolia it shows a warning, not a failure, because the network is a testnet. It fails the check if the USDC asset belongs to a different network from the one you declared, which catches a mainnet address left in a testnet config (or the reverse).
Then pay it with an x402 client, following the buyer quickstart. By default its client caps each payment at $1, so keep test prices small.
4. Switch to mainnet
| Setting | Base Sepolia | Base mainnet |
|---|---|---|
| network | eip155:84532 | eip155:8453 |
| USDC | 0x036C…CF7e | 0x8335…2913 |
| facilitator | x402.org (no auth) | CDP, another facilitator, or none |
The CDP seller quickstart (its prerequisites: a CDP API key, a payTo address and Node 22) says to confirm each payTo can receive on mainnet, and to swap any testnet asset address for its mainnet one. For the facilitator choice, see which facilitator works on Base mainnet and what each one costs (or the cost calculator).
Sponsor slot open: one short text line here for 30 days. See terms.
FAQ
Do I need an account to test on Base Sepolia?
Not for the x402.org facilitator: the x402 seller quickstart lists it as testnet only with no auth. The CDP facilitator also supports Base Sepolia but needs CDP API keys.
Where do I get test USDC?
Circle’s public faucet (faucet.circle.com) gives 20 testnet USDC per address, per chain, every 2 hours, with no account. Pick Base Sepolia in the network list.
What is the Base Sepolia USDC address?
0x036CbD53842c5426634e7929541eC2318f3dCF7e, per Circle’s USDC contract address list. Base mainnet USDC is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.
Can I keep the x402.org facilitator on mainnet?
No. Its /supported list has Base Sepolia (eip155:84532) but no Base mainnet (eip155:8453). Switch facilitators, or verify transfers yourself, before taking real payments.
Sources, checked 2026-10-14: x402 seller quickstart, x402.org /supported, Circle faucet, Circle USDC addresses, CDP seller quickstart, CDP faucet, x402 buyer quickstart.
Selling a file rather than an API? The x402 Seller Kit is a tested Cloudflare Worker that sells a file for USDC on Base mainnet without a facilitator. The README is free to read.
Get the kit · $29