MPP Support

Run402 accepts payments via both x402 and Stripe's Machine Payments Protocol

What is MPP?

The Machine Payments Protocol (MPP) is Stripe's open protocol for machine-to-machine payments. It runs on Tempo, an L1 blockchain built by Stripe, using pathUSD as its stablecoin. Like x402, MPP enables AI agents to pay for services autonomously over HTTP—no human in the loop.

The protocol works in three steps: a server returns 402 Payment Required with a WWW-Authenticate: Payment challenge, the client signs a payment credential, and the server verifies it on-chain. Sub-second finality on Tempo means payments settle almost instantly.

Two payment rails, one wallet

Run402 is dual-rail: every paid endpoint accepts both x402 and MPP. Your agent's EVM wallet key works on both Base and Tempo—same private key, same address, different chains. You choose which rail to use at setup time.

x402

Token
USDC
Chain
Base (Sepolia testnet)
Protocol
x402.org
Testnet faucet
Run402 faucet (1/day)

MPP

Token
pathUSD
Chain
Tempo (Moderato testnet)
Protocol
mpp.dev
Testnet faucet
Tempo faucet (instant, unlimited)

Getting started with MPP

CLI

Switch your agent to the MPP rail with a single command. The Tempo faucet funds your wallet instantly—no rate limits, no waiting for on-chain confirmation.

npx run402 init mpp          # Fund wallet on Tempo, switch to MPP rail
npx run402 tier set prototype # Pay $0.10 in testnet pathUSD
npx run402 projects provision # Provision a Postgres database
npx run402 deploy --manifest app.json

To switch back to x402 at any time:

npx run402 init              # Switch back to Base Sepolia (x402)

MCP Server

The run402-mcp server works with both rails. After running run402 init mpp, all MCP tool calls automatically use MPP for payments.

Direct HTTP

Send an Authorization: Payment <credential> header with your MPP credential. The mppx SDK handles the 402 challenge–response flow automatically:

import { Mppx, tempo } from "mppx/client";

const mppx = Mppx.create({
  methods: [tempo({ account })],
});

// mppx.fetch is a drop-in replacement for fetch
const res = await mppx.fetch(
  "https://api.run402.com/tiers/v1/prototype",
  { method: "POST" }
);

How it works on the server

When a request hits a paid endpoint on api.run402.com:

  1. If the request has an Authorization: Payment header, it's routed to the MPP verifier. The mppx middleware checks the credential against the Tempo chain.
  2. If the request has an x402 header (payment-signature, x-payment), it's routed to the x402 facilitator for on-chain verification on Base.
  3. If there's no payment header, the server returns 402 with both an x402 response body and a WWW-Authenticate: Payment header, so clients of either protocol know how to pay.

After successful payment, the response includes X-Run402-Settlement-Rail: mpp (or x402, or allowance) so your agent knows which rail settled the transaction.

Pricing

Same prices on both rails. No surcharges for either protocol.

TierPriceLeaseTestnet cost
Prototype$0.107 daysFree (testnet tokens)
Hobby$5.0030 days
Team$20.0030 days
Image generation$0.03/imageFree (testnet tokens)

Why both?

x402 and MPP are complementary. x402 is the open community standard backed by Coinbase—it works with any EVM chain and any ERC-20 token. MPP is Stripe's take on the same idea, optimized for Tempo's instant finality and Stripe's fiat on-ramp. By supporting both, Run402 meets agents where they are: crypto-native agents use x402, Stripe-native agents use MPP, and both get the same infrastructure.

We believe machine payments are inevitable and multi-protocol. Run402 is built to be rail-agnostic.

Resources

mpp.dev — MPP protocol spec and SDK docs

x402.org — x402 protocol spec

tempo.xyz — Tempo blockchain

mppx on npm — TypeScript SDK for MPP

run402.com/llms.txt — Full API reference for agents