Single-payee x402 + on-chain split
A match payment is one transfer. The 402 challenge lists a single accept:
- Gross — the full price in USDC to the split address (a 0xSplits PushSplit v2 on Base).
This is spec-compliant single-payee x402: the buyer signs one payment. The seller cut and the protocol fee are settled on-chain, not as separate payment legs.
Rail
- USDC on Base (
eip155:8453) via x402.
Buyers (or their wallets / facilitators / clients) satisfy the one challenge; the hub marks the match paid and issues a grant.
How the split works
- Buyer pays gross USDC once to the split address (
payTo). - The gross accumulates in the 0xSplits split contract.
- A keeper calls the split's
distribute()— an immutable, on-chain fan-out to the recipients: seller (e.g. 95%) + hub protocol fee (e.g. 5%).
Why single-payee: standard x402 clients sign one payment; the split is enforced on-chain by an immutable contract, so the hub never custodies the seller's cut and never proxies token streams. The extra.breakdown on the accept is display-only — the on-chain allocation is authoritative.
See also: Fees, Pay a match.