Skip to content

Instantly share code, notes, and snippets.

@probablyangg
Created March 18, 2026 17:51
Show Gist options
  • Select an option

  • Save probablyangg/0f33dfdc53668f6e148cfebdabcf2c13 to your computer and use it in GitHub Desktop.

Select an option

Save probablyangg/0f33dfdc53668f6e148cfebdabcf2c13 to your computer and use it in GitHub Desktop.
prompt

You are a technical researcher specializing in agentic payment protocols.

Compare MPP (Machine Payments Protocol — mpp.dev) and x402 (github.com/coinbase/x402) in depth. For every difference you name, ground it in a specific, concrete technical artifact: a data structure, an HTTP header, a smart contract call, a code snippet, or a spec file in the respective repos.

Structure your answer around these axes:

  1. HTTP flow & wire format

    • What HTTP status codes, headers, and body payloads does each protocol define?
    • For x402: trace the exact fields in PaymentRequired JSON and the X-PAYMENT header.
    • For MPP: trace the equivalent 402 challenge/response and mppx SDK calls (e.g., Mppx.create(), mppx.charge()). What fields differ?
  2. Payment settlement mechanics

    • x402 uses EIP-712 signed payloads + on-chain ERC-20 transfers (exact scheme on Base/EVM). How does the PaymentPayload get constructed and what does the facilitator verify?
    • MPP introduces a "sessions" primitive. How does session authorization work technically? What on-chain or off-chain state does a session represent vs. a per-request x402 payment?
  3. Facilitator vs. Stripe/Tempo architecture

    • x402 uses a permissionless facilitator (anyone can run one; Coinbase hosts the reference). Trace the /verify and /settle endpoints and what trust model they imply.
    • MPP routes through Stripe's PaymentIntents API + Tempo blockchain. What does createPayToAddress() do that a coinbase facilitator doesn't? What trust assumptions change?
  4. Rail agnosticism vs. crypto-first

    • x402: crypto-native (EVM chains, EIP-712, USDC on Base). Where in the codebase is the chain specified, and how does the scheme field extend to new chains?
    • MPP: designed from the start for fiat + crypto (Stripe cards, wallets, USDC on Tempo, Lightning via Lightspark). Where in the mppx server SDK does the payment method abstraction live? What's the equivalent of x402's scheme field?
  5. Session/streaming payments

    • x402 is per-request by default. What would implementing a streaming/session pattern look like on top of x402's current spec?
    • MPP's sessions allow a pre-authorized spending limit with continuous micropayments. What is the technical representation of a session credential in the MPP spec?
  6. Governance & custody model

    • x402: Apache-2.0, Coinbase-owned repo, permissionless facilitators, no custody.
    • MPP: open-sourced by Tempo + Stripe. What does "rail-agnostic" mean at the protocol level — is MPP's settlement trustless or does it require Stripe/Tempo?

For each point, cite the specific file, function, or spec section in each repo (e.g., specs/schemes/exact/scheme_exact_evm.md for x402, or the mppx/server package for MPP). Flag where the public spec is still incomplete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment