SPX with x402 and MPP
x402 and MPP are header exchange protocols — they define how an agent discovers that a service requires payment and how payment credentials are passed over HTTP. They don't prescribe how settlement works.
SPX is the settlement infrastructure underneath. It's what actually moves money.
How SPX fits
┌──────────────────────────────────────────┐
│ Header Exchange Layer │
│ x402 (HTTP 402) · MPP (sessions) │
│ "This endpoint costs $0.01 per call" │
├──────────────────────────────────────────┤
│ Settlement Infrastructure │
│ SPX (cumulative voucher protocol) │
│ Sign per call. Settle when ready. │
├──────────────────────────────────────────┤
│ Execution │
│ Solana · any Ed25519-capable chain │
└──────────────────────────────────────────┘
x402 and MPP tell the agent "you need to pay." SPX is how it pays — and it's better than the alternatives in every scenario.
With x402
x402 defines a simple flow: agent requests a resource, gets back 402 Payment Required with pricing info, then retries with a payment header.
SPX plugs directly into this. When the agent sees a 402, it signs a voucher from its escrow and attaches it as the payment header. The service verifies the Ed25519 signature locally (microseconds, no RPC call) and serves the response. Done.
This works for first-time calls too — not just ongoing relationships. The agent already has a funded escrow. Signing a voucher to a new service costs nothing and takes under 1ms. There's no setup, no channel opening, no on-chain transaction. The agent just signs and sends.
Agent Service
│ │
│── GET /api/data ─────────────►│
│◄── 402 { price: "$0.01" } ───│
│ │
│── GET /api/data ─────────────►│
│ X-Payment: spx:<voucher> │
│◄── 200 OK ───────────────────│
│ │
│ (no on-chain tx. service │
│ settles whenever it wants) │
Compare this to x402's native settlement: the agent would need to submit an on-chain transaction for every single call. With SPX, the agent just signs — the service batches and settles later.
SPX works for every scenario x402 covers:
| Scenario | x402 native | x402 + SPX |
|---|---|---|
| First call to unknown service | 1 on-chain tx ($0.00025, 400ms) | 1 signature (free, <1ms) |
| 10,000 calls to same service | 10,000 txs ($2.50) | 10,000 signatures + 1 settlement ($0.00025) |
| Agent exploring 20 vendors | 20 on-chain txs | 20 signatures (free) |
| Agent with $5 budget | No spending limit enforcement | Escrow enforces hard cap on-chain |
The agent already has an escrow. There's no reason to pay on-chain per call.
With MPP
MPP (Machine Payments Protocol) defines sessions, challenges, and credentials for machine-to-machine payments. It's rail-agnostic — the protocol coordinates payment, but doesn't prescribe the settlement mechanism.
SPX registers as an MPP-compatible payment method. When an MPP session is established and the service accepts SPX, the agent provides an SPX voucher as the credential:
{
"type": "spx-voucher",
"voucher": "<base64(110B message + 64B signature)>",
"escrow": "<escrow public key>",
"network": "solana"
}
The service validates locally, serves the response, and returns an MPP receipt. Settlement happens in batch, on the service's schedule.
For services that accept both Stripe and SPX via MPP, the agent can choose. For high-frequency API calls, SPX is orders of magnitude cheaper than card rails ($0.00025 vs $0.30+ per transaction).
Why SPX is the key infrastructure
Every header exchange protocol — x402, MPP, or whatever comes next — eventually needs to answer the same question: how does money actually move?
The options today:
- On-chain per call (x402 native) — works but expensive at scale
- Card rails (Stripe via MPP) — $0.30 minimum, 2-3 day settlement
- Payment channels — per-vendor setup, locked funds, both parties online
SPX breaks the linear cost relationship. Whether there were 1 call or 1 million, settlement is always 1 transaction. The coordination protocol handles discovery and pricing. SPX handles the money.
Settlement cost:
Per-call on-chain: $0.00025 × N
Card rails: $0.30 + 2.9% × N
SPX: $0.00025 × 1 (always)
Any header exchange protocol can use SPX as its settlement layer. The agent funds one escrow, and every protocol that speaks x402, MPP, or any future standard can settle through it.