MPP (Machine Payments Protocol)
Session-based micropayments via Tempo blockchain, co-authored by Stripe and Tempo.
Flow
1. Agent sends request with no auth header
2. Server returns HTTP 402 with both x402 and MPP payment challenges
3. Agent authorizes payment via Tempo wallet
4. Agent retries with Authorization: Payment header
5. Server verifies via mppx SDK, processes request, returns receipt in Payment-Receipt header
Install Tempo CLI
# Install the Tempo launcher
curl -fsSL https://tempo.xyz/install | bash
Or install binaries directly
curl -sL https://github.com/tempoxyz/wallet/releases/latest/download/tempo-wallet-$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') -o ~/.tempo/bin/tempo-wallet
curl -sL https://github.com/tempoxyz/wallet/releases/latest/download/tempo-request-$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') -o ~/.tempo/bin/tempo-request
chmod +x ~/.tempo/bin/tempo-*
Set up your wallet (opens browser for passkey auth)
tempo wallet login
Fund your wallet
tempo wallet fund
Usage
Simple request (one-shot charge)
tempo request -X POST \
-H "Content-Type: application/json" \
--json '{"model": "deepseek-v3.2", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}' \
https://api.surplusintelligence.ai/v1/chat/completions
Dry run (preview cost without paying)
tempo request --dry-run -X POST \
-H "Content-Type: application/json" \
--json '{"model": "claude-opus-4.6", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}' \
https://api.surplusintelligence.ai/v1/chat/completions
Session-based (streaming with off-chain vouchers)
tempo request -X POST \
--json '{"model": "deepseek-v3.2", "messages": [{"role": "user", "content": "Write a haiku"}], "max_tokens": 50, "stream": true}' \
https://api.surplusintelligence.ai/v1/chat/completions
List active sessions
tempo wallet sessions list
Close session and settle on-chain
tempo wallet sessions close https://www.surplusintelligence.ai
Available Models
Live model list with current prices: GET https://api.surplusintelligence.ai/v1/models
Or browse: GET https://api.surplusintelligence.ai/v1/prices
How It Differs from x402
| x402 | MPP | |
|---|---|---|
| Chain | Base (USDC) | Tempo |
| Settlement | One on-chain tx per request | Session-based, bulk settlement |
| Best for | Single requests, simple agents | Streaming, high-frequency calls |
Both protocols are advertised in the same 402 response — agents pick their preferred protocol.
Pricing
Agents are pre-charged based on max_tokens. Set max_tokens to the minimum you need to avoid overpaying. The cost estimate is shown in the 402 challenge response.
Configuration (Server)
The MPP server uses the operator wallet as the payment recipient. The challenge-signing secret is loaded from AWS Secrets Manager via the MPP_SECRET_ARN environment variable.