Understand x402
Facilitators
Understand what a facilitator does with your signed authorization, and what it cannot do.
A facilitator takes a signed payment authorization, checks it, and broadcasts it on-chain, paying the gas. It is the only moving part in x402 that is neither the client nor the merchant.
What it does#
Two endpoints, in this order:
POST /verify → is this authorization valid, right now, for these requirements?
POST /settle → broadcast it, and tell me the transaction hash/verify is where the real work happens. A correct implementation checks:
- The signature. ECDSA recovery against the claimed payer, over the token's on-chain EIP-712 domain — with an ERC-1271 fallback for contract wallets.
payTo. The authorization'stomust equal the resource'spayTo. Skipping this is how a payment gets verified for the wrong recipient.- The amount against what was required.
- The validity window (
validAfter/validBefore). - The nonce, for shape and for replay.
- The payer's balance, so a settle that cannot land is rejected before it is attempted.
Caution
A facilitator that returns isValid: true after checking only the window and
the amount will accept a forged authorization from any address with a garbage
signature. This is not hypothetical — it was a real bug in a real
implementation, and the fix is 10 regression tests made of the forgeries that
used to pass. If you are evaluating a facilitator, ask what its verify path
checks.
What it cannot do#
The payer, the payee, the amount and the expiry are all inside the signed authorization. A facilitator can therefore:
- refuse to settle,
- delay settling,
- settle exactly what you signed.
It cannot redirect the funds, change the amount, take an unagreed cut, or settle twice — the token contract enforces the last one via the nonce. This is why "use a facilitator" is not the same kind of trust decision as "use a custodian". The worst a hostile facilitator can do to a payment is fail to make it.
What it can see is your payment metadata: who you are paying, how much, how often. That is a privacy consideration, not a custody one.
The Roundhouse facilitator#
GET https://x402.roundhouse.studio/ service descriptor
GET https://x402.roundhouse.studio/supported schemes and networks served
POST https://x402.roundhouse.studio/verify
POST https://x402.roundhouse.studio/settleFree, no transaction cap, no percentage. It speaks the standard x402 wire format — accepts in the
402 body, X-PAYMENT in, X-PAYMENT-RESPONSE out — so off-the-shelf clients and middleware work
unmodified. Currently serving exact with USDC on Base mainnet; check /supported rather than
assuming, always.
Roundhouse earns from selling aggregated index access, not from facilitation. Every settlement it handles is indexed, which is the actual exchange: you get free settlement, the record gets a verified row, and your service accumulates the observable history other agents use to decide whether to pay you.
To point your own endpoint at it, see charge for your API.
The facilitator registry#
A facilitator's relayer wallet is the transaction's from address, which is how an indexer
attributes a settlement to an operator. Roundhouse keeps a registry of known operators and their
relayer addresses — 36 operators across roughly 158 wallets at the time of writing, synced from the
open facilitators package (MIT, maintained by Merit
Systems / x402scan).
Three details that matter if you consume it:
- Deprecated addresses are kept. Attribution is historical: a settlement relayed in 2025 keeps its operator even after that operator rotates keys.
- Operators are grouped, wallets are not. One operator can relay from a pool of addresses.
Roundhouse collapses every alias onto one group key, so
/facilitatorscounts per operator rather than per wallet. - An unrecognised relayer is stored as its own address, not as "unknown". An address is groupable and can be named later; a null cannot.
Running without one#
You can settle your own payments. An agent that holds the chain's gas token can submit the
authorization itself — the index records that as self, "payer-submitted", and it is a perfectly
ordinary settlement.
This is possible, and almost nobody does it, because it puts you back in the business of holding two assets and managing gas, which is the problem the facilitator exists to remove.
Next steps#
- Receipts and verification
- Errors — reading a failure by stage
- Facilitators on Roundhouse — who is actually routing volume