Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Comparison: x402 vs MPP vs AMP

An honest comparison of the three machine payment protocols.


Protocol overview

x402 (Coinbase) — HTTP 402 with per-request payments on Base (EVM). Simple, stateless, one on-chain transaction per call.

MPP (Tempo/Stripe) — extensible HTTP 402 framework with multiple payment methods (Tempo, Stripe, cards, Lightning, Solana). Supports sessions with off-chain vouchers. IETF specification.

AMP (Valeo) — Solana-native persistent channels. Off-chain metering, on-chain net settlement. Supports delegation, chaining, and multiple transports.

Feature matrix

Featurex402MPPAMP
Payment modelPer-requestPer-request + sessionsPersistent channels
Runtime latencyPer-callPer-call / near-zero (session)Zero after open
TransportHTTP onlyHTTP + MCPHTTP + MCP + WS + gRPC
ChainBase (EVM)Tempo, Solana, Lightning, cardsSolana native
On-chain txns / 1K calls1,0002 (session)~3
StreamingNoSSE with vouchersNative (any transport)
DelegationNoNoNative
Credit supportNoNoNative (ACE-ready)
On-chain composabilityLimited (EVM)VariesFull Solana DeFi
IETF standardizationNoYesNo (open spec)
Fiat supportNoYes (Stripe, cards)No (crypto-native)
Service discoveryNoNoOn-chain registry
Multi-channel nettingNoNoStratum
ReputationNoNoOn-chain scoring

Cost analysis (1,000 calls at $0.001/call)

ProtocolOn-chain txnsGas cost
x402 (Base)1,000~$1.00
MPP session (Tempo)2~2x Tempo tx cost
AMP (Solana)~3~$0.00075

When to use what

x402 wins when:

  • You want the simplest possible integration
  • You're already on Base/EVM
  • You only need one-off per-request payments

MPP wins when:

  • You need multi-method support (crypto + cards + fiat)
  • You want IETF-grade standardization
  • You need Python or Rust SDKs today

AMP wins when:

  • You're building on Solana and want native composability
  • You need high-volume usage with minimal on-chain cost
  • You need delegation (agent-to-agent budget forwarding)
  • You need transport bindings beyond HTTP (MCP, gRPC, WebSocket)
  • You want on-chain channel state that other programs can read and compose with

The real differentiator

MPP is a payment framework — flexible, multi-method, payment-rail agnostic. AMP is a financial state protocol — Solana-native, composable, persistent. They serve different architectural needs.

Full comparison on GitHub