Protocol comparison
x402 vs. MPP
A neutral comparison of x402 and the Machine Payments Protocol (MPP): request flow, payment methods, settlement choices, use cases, and implementation trade-offs.
TL;DR
x402 and MPP both use HTTP 402 to let machines pay for resources, but their wire formats differ. x402 V2 uses dedicated PAYMENT-* headers and registered scheme/network pairs. MPP maps Challenge, Credential, and Receipt semantics into HTTP authentication, with separate payment-method and intent specifications.
What to remember
- Both protocols can keep a manual checkout out of the critical request path.
- The correct choice depends on buyer wallets, seller settlement, payment patterns, and ecosystem support.
- A protocol-agnostic application layer reduces the cost of choosing too early.
The practical differences
- Protocol shape: both use HTTP 402. x402 V2 defines dedicated payment requirement, payload, and settlement-response headers. MPP defines a Payment authentication scheme with challenge, credential, and receipt semantics.
- Headers: x402 uses PAYMENT-REQUIRED, PAYMENT-SIGNATURE, and PAYMENT-RESPONSE. MPP uses WWW-Authenticate: Payment, Authorization: Payment, and an optional Payment-Receipt on successful responses.
- Extensibility: x402 compatibility is expressed through scheme and network pairs. MPP separates payment methods from commercial intents such as charge and session.
- Payment patterns: x402 currently documents fixed exact, usage-capped upto, and batch-settlement schemes. MPP documents charge and metered session intents, plus subscriptions whose current availability varies by payment method.
- Merchant operations: Stripe’s MPP integration can connect machine payments to an existing Stripe balance and operational stack. x402 can use independent facilitators, self-facilitation, direct settlement, or later voucher redemption through batch-settlement. Stripe’s machine-payments stack also documents x402 acceptance (USDC on Base), so a seller’s processor choice does not force a protocol.
- Ecosystem: SDK, wallet, facilitator, processor, network, and provider support are moving quickly for both protocols. Current compatibility matters more than abstract elegance.
A decision framework
- 01
Start with the buyer
What wallets, credentials, networks, and approval model can the agent actually use?
- 02
Model the commercial pattern
Is this one request, a metered session, a recurring relationship, or streaming usage?
- 03
Choose the seller’s settlement
Does the provider want direct onchain settlement, a processor balance, fiat payout, or several options?
- 04
Check operational support
Compare SDK maturity, facilitators, refunds, observability, idempotency, and reconciliation.
- 05
Preserve an abstraction boundary
Keep capability search and policy independent from protocol-specific challenge handling.
Why Weft stays protocol-agnostic
Agents care about completing the task under the right constraints. They should not have to begin with a rail. Weft’s market layer can rank a service by capability, price, latency, and reliability, then use a compatible payment path under the team’s policy.
Protocol diversity is useful while the market is young. It creates pressure for better developer experience, wider payment support, and lower cost. The durable layer is the one that can understand what is being bought and observe whether the purchase produced value across those rails.
Sources and further reading
Protocols change quickly. We reviewed the primary sources below on July 23, 2026.
- x402 V2 HTTP headersx402 Foundation ↗
- x402 payment schemesx402 Foundation ↗
- MPPMachine Payments Protocol ↗
- MPP subscriptions and payment patternsMachine Payments Protocol ↗
- Introducing the Machine Payments ProtocolStripe ↗
- Machine payments protocol and network supportStripe Documentation ↗
- Payment HTTP authentication Internet-Draftpaymentauth.org ↗