MPP (Machine Payments Protocol) is an open protocol for pay-per-request HTTP access. Instead of an API key, you pay a small amount of USDC on Tempo for each request — ideal for AI agents that need onchain data without managing subscriptions or key rotation. This is an alternative authorization method for the same Zerion API. Endpoints, JSON:API responses, query parameters, and filters all behave exactly as in the rest of the docs — only the way you prove access changes. Zerion also supports x402, a sibling protocol that settles on Base or Solana. See Authentication for an overview of all access methods.Documentation Index
Fetch the complete documentation index at: https://developers.zerion.io/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart with the Zerion CLI
The easiest way to use MPP is with the Zerion CLI, which handles the payment handshake, wallet signing, and retries automatically. Set an EVM private key for a wallet that holds USDC on Tempo, then make a request with--mpp:
Direct integration
If you’re not using the CLI, use one of the official MPP SDKs (TypeScript, Python, Go, Rust) to handle payment construction and retries. You’ll need a wallet with USDC on Tempo and its EVM private key.Example
How it works
- Client sends a request to an API endpoint
- Server returns
402with aWWW-Authenticate: Paymentchallenge describing where and how much to pay - Client signs a USDC transfer on Tempo and retries with an
Authorization: Paymentheader - Zerion verifies the credential with the MPP facilitator and returns the response
Rate limits
None — pay per request, no per-second or monthly quota.Error handling
402 Payment required— no or invalid payment credential. Inspect theWWW-Authenticate: Paymentresponse header for a fresh challenge and retry.402 MPP payment rejected— the facilitator rejected the credential. Thedetailfield contains the reason (e.g. insufficient funds, expired authorization).