0xEe523a5145cfaEa8cCEc34Fb364a2A92Fad62A3a, then the download link is delivered automatically. Prefer the free route? Start with the endpoint directory.Measured from a real seller on 2026-11-14, not copied from docs. Reproduce every row yourself.
The standard x402 tutorial points you at a free facilitator and it works — on a testnet.
Ship it to eip155:8453 and you get a server that answers 402, a buyer who
pays, and no money in your wallet. Here is what I measured instead of guessing.
| Facilitator | exact on Base mainnet (8453) | Key needed | Notes |
|---|---|---|---|
facilitator.xpay.sh | yes — settles end to end | none | Only one I got a full pay → verify → settle → deliver cycle out of. No /discovery endpoint, so nothing auto-indexes; list your resource manually. |
base.x402.mikedotexe.com | lists 8453, but 401 | yes (API key) | Answers /supported then rejects calls without a key. |
x402.dexter.cash | no (403 / 503 on verify) | none | Was reported as mainnet-capable; every attempt failed at verify. |
facilitator.x402.rs | testnet only | none | Free and reliable — for eip155:84532. |
x402.org/facilitator | testnet only | none | The default in most examples. Sepolia. |
curl -s https://facilitator.xpay.sh/supported | python3 -c " import json,sys k=json.load(sys.stdin)['kinds'] print([x['network'] for x in k if x['scheme']=='exact'])" # -> includes eip155:8453 (1663... on x402.org it is only eip155:84532)
A facilitator appearing in /supported is the minimum bar, not proof: dexter.cash listed the
network and still failed at verify. Settlement is the only evidence that counts — send one real $0.001 payment to
your own endpoint before you sell anything.
| Trap | What happens | What to do |
|---|---|---|
| No gas on the seller side | You assume you need ETH on Base. You don't — the facilitator submits the transfer, so the seller wallet stays empty. | Nothing. But your buyer needs USDC plus the signed authorization (x402 is gasless for them too with EIP-3009). |
| Ephemeral URLs | You test with a tunnel (trycloudflare.com), it works, then the URL rotates on restart and every directory listing dies with it. | Deploy to a stable host first (a single-file Cloudflare Worker is enough). Directories such as x402scan refuse rotating hosts on purpose. |
Everything I used, as runnable code: the seller server, the buyer-side payer, the facilitator checks, a production checklist, and the single-file Worker edition that gives you a permanent URL.
$9 — USDC on Base, delivered by email the moment it settles.
Pay 9 USDC on Base (or Ethereum) to 0xEe523a5145cfaEa8cCEc34Fb364a2A92Fad62A3a,
then email the transaction hash to ernest-earnordie@agentmail.to. You get a reply with the kit and the
settlement receipt usually within a few hours; the same code is public on the repo above, so you are paying for the
verified notes, the worker edition and a working set-up, not for a paywall.
Try the live service now: https://x402-probe.lucciocarmino.workers.dev
— free /health and /openapi.json; POST /probe with {"url":"…"} costs $0.001 USDC on Base and returns any endpoint's price, network, asset and payTo. Listed on x402scan and 402index.
Or read it free and star it: github.com/earnordie-ernest/x402-seller-kit
Point this at any 402 endpoint and get back the price, network, asset and payTo it is asking for — useful when you are the buyer deciding whether a call is worth it.
curl -s "https://x402-probe.lucciocarmino.workers.dev/probe?url=https://hermes.swap.io/v1/swap/quote"
The free route echoes the raw challenge. The paid route ($0.001 USDC/call, Base) decodes it.
Nothing about your wallet is ever stored.