llms.txt
# MPP — Machine Payments Protocol
MPP (Machine Payments Protocol) is the open standard for machine-to-machine payments via HTTP 402.
## Quickstart
- [What is MPP? Machine-to-machine HTTP 402 payments](/overview.md): MPP standardizes HTTP 402 for machine-to-machine payments. Learn how agents, apps, and...
- [Governance](/governance.md): An overview of how the Machine Payments Protocol is developed, maintained, and extended
- [Frequently asked questions](/faq.md): Answers to common questions about MPP—payment methods, settlement, pricing, security, a...
- [Quickstart](/quickstart.md): Get started with MPP in minutes. Protect your API with payments, connect your agent, or...
- [Add payments to your API](/quickstart/server.md): Add payment-gated access to your API with mppx. Accept stablecoins, cards, and Bitcoin...
- [Use with agents](/quickstart/agent.md): Connect your coding agent to MPP-enabled services. Set up a wallet to handle payment fl...
- [Use with your app](/quickstart/client.md): Handle payment-gated resources in your app. Use the mppx client SDK to intercept 402 re...
- [Machine Payments Protocol](/index.md): Charge for API requests, tool calls, and content with HTTP 402 payments co-developed by...
## Guides
- [Build with an LLM](/guides/building-with-an-llm.md): Use llms-full.txt to give your agent complete MPP context.
- [Accept one-time payments](/guides/one-time-payments.md): Charge per API call with MPP. Accept pay-per-request payments from agents, apps, and us...
- [Accept pay-as-you-go payments](/guides/pay-as-you-go.md): Build a payment-gated API with session-based billing using mppx payment channels. Charg...
- [Accept streamed payments](/guides/streamed-payments.md): Accept streamed payments over Server-Sent Events with mppx. Bill per token in real time...
- [Create and manage subscriptions](/guides/subscription-payments.md): Build a subscription-gated API with MPP. Let clients authorize recurring stablecoin pay...
- [Use MPP with x402](/guides/use-mpp-with-x402.md): Keep your x402 server or use mppx to serve native MPP and x402 clients from the same en...
- [Managing agent spend](/guides/managing-agent-spend.md): Manage agent spend with MPP.
- [Accept card payments](/guides/accept-card-payments.md): Accept card payments with Stripe on your MPP-enabled API. Charge Visa, Mastercard, and...
- [Accept split payments](/guides/split-payments.md): Split a single charge across multiple recipients in one atomic transaction. Route platf...
- [Accept multiple payment methods](/guides/multiple-payment-methods.md): Accept Tempo stablecoins, Stripe cards, and Lightning Bitcoin on a single API endpoint....
- [Create a payment link](/guides/payment-links.md): Create a payment link for any API endpoint. Share it anywhere—users pay directly from t...
- [Monetize your MCP server](/guides/monetize-mcp-server.md): Add payments to your MCP server. Charge per tool call with stablecoins—no API keys or b...
- [Add payments to WebMCP tools](/guides/webmcp-payments.md): Add payments to WebMCP tools with mppx. Let browser agents pay for actions on your webs...
- [Proxy an existing service](/guides/proxy-existing-service.md): Put a payment gate in front of any API without changing its code. Use the mppx Proxy SD...
## Protocol
- [Protocol overview](/protocol.md): The Machine Payments Protocol standardizes HTTP 402 with an extensible Challenge–Creden...
- [HTTP 402](/protocol/http-402.md): HTTP 402 Payment Required signals that a resource requires payment. Learn when and how...
- [Challenges](/protocol/challenges.md): Create MPP Challenges that tell clients what a resource costs, which method to use, and...
- [Credentials](/protocol/credentials.md): Verify MPP Credentials from clients and bind payment proofs to the original server-issu...
- [Payment Receipts and verification](/protocol/receipts.md): Receipts confirm successful payment in MPP. Return them in the Payment-Receipt header s...
- [Transports](/protocol/transports.md): Map MPP Challenges, Credentials, and Receipts to HTTP headers, JSON-RPC messages, and W...
- [HTTP transport](/protocol/transports/http.md): Map MPP payment flows to HTTP headers, including a separate Credential field for endpoi...
- [MCP and JSON-RPC transport](/protocol/transports/mcp.md): Use the MCP transport to require payment for JSON-RPC tool calls while preserving MPP C...
- [WebSocket transport](/protocol/transports/websocket.md): The WebSocket transport streams paid data over a persistent connection, with in-band vo...
- [Relays](/advanced/relays.md): Delegate MPP payment validation and finalization to a relay service.
- [Discovery](/advanced/discovery.md): Advertise your API's payment terms with an OpenAPI discovery document so clients and ag...
- [Identity](/advanced/identity.md): Use MPP Credentials for access control, rate limiting, and multi-step workflows—without...
- [Payment hooks](/advanced/payment-hooks.md): Observe MPP client and server payment lifecycles with typed SDK hooks.
- [Refunds](/advanced/refunds.md): Return funds to clients after a charge, or let sessions refund unused deposits automati...
- [Security](/advanced/security.md): Protect MPP server secrets and payment Credentials. Keep MPP_SECRET_KEY server-side, ne...
## Payment methods
- [Intents](/intents.md): Compare MPP payment intents and choose the right payment pattern for one-time, metered,...
- [Charge intent for one-time payments](/intents/charge.md): Charge intent defines one-time payments in MPP. Use it when a client pays once for a re...
- [Session intent for metered payments](/intents/session.md): Session intent defines metered pay-as-you-go payments in MPP. Use it when usage is freq...
- [The subscription intent for recurring payments](/intents/subscription.md): The subscription intent defines recurring fixed payments in MPP. Use it when access ren...
- [Payment methods](/payment-methods.md): Compare MPP payment methods and choose the right rails for your API, app, or agent work...
- [Tempo stablecoin payments](/payment-methods/tempo.md): Use Tempo payment methods in MPP for stablecoin charges and low-cost payment sessions.
- [Tempo charge](/payment-methods/tempo/charge.md): Accept one-time stablecoin payments on Tempo with signed TIP-20 token transfers.
- [Sessions](/payment-methods/tempo/session.md): Accept pay-as-you-go stablecoin payments with Sessions.
- [Tempo subscription](/payment-methods/tempo/subscription.md): Accept recurring stablecoin payments on Tempo with subscriptions backed by scoped acces...
- [EVM payment method](/payment-methods/evm.md): Use EVM payment methods in MPP to accept stablecoin payments and run x402 exact flows i...
- [EVM charge payment method](/payment-methods/evm/charge.md): Accept one-time EVM stablecoin payments with MPP and inline x402 exact compatibility.
- [Stripe payment methods](/payment-methods/stripe.md): Offer Stripe Shared Payment Tokens and stablecoins from one MPP server integration.
- [Stripe charge](/payment-methods/stripe/charge.md): Accept one-time payments through Stripe.
- [Card payment method](/payment-methods/card.md): Use card payments in MPP to accept traditional payment methods with encrypted network t...
- [Card charge](/payment-methods/card/charge.md): Accept one-time card payments in MPP using encrypted network tokens and card-compatible...
- [Lightning](/payment-methods/lightning.md): Use Lightning payment methods in MPP for Bitcoin charges and prepaid session access.
- [Lightning charge](/payment-methods/lightning/charge.md): Accept one-time Bitcoin payments over Lightning with BOLT11 invoices and MPP charge flows.
- [Lightning session](/payment-methods/lightning/session.md): Accept pay-as-you-go Lightning payments with prepaid sessions and per-request billing.
- [Solana](/payment-methods/solana.md): Use Solana payment methods in MPP to accept SOL and SPL token payments.
- [Solana charge](/payment-methods/solana/charge.md): Accept one-time Solana payments in MPP with signed transactions or confirmed signatures.
- [Solana session](/payment-methods/solana/session.md): Meter pay-as-you-go Solana payments with off-chain vouchers backed by an on-chain escro...
- [XRP Ledger payments](/payment-methods/xrpl.md): Use the XRPL payment method in MPP to accept XRP, issued-currency and MPT charges, and...
- [XRPL charge](/payment-methods/xrpl/charge.md): Accept one-time XRP Ledger payments in MPP, in XRP, issued currencies or Multi-Purpose...
- [XRPL session](/payment-methods/xrpl/session.md): Accept high-frequency off-chain payments in MPP over an XRP Ledger Payment Channel, set...
- [Stellar SEP-41 token payments](/payment-methods/stellar.md): Use Stellar payment methods in MPP to accept SEP-41 token payments and channel-based se...
- [Stellar charge](/payment-methods/stellar/charge.md): Accept one-time Stellar token payments in MPP using SEP-41 assets and server-side verif...
- [Channel](/payment-methods/stellar/session.md): Accept high-frequency Stellar payments with one-way payment channels and pay-as-you-go...
- [Monad](/payment-methods/monad.md): Use Monad payment methods in MPP for ERC-20 token payments with push and pull settlemen...
- [Monad charge](/payment-methods/monad/charge.md): Accept one-time Monad payments with ERC-20 transfers or ERC-3009 authorizations.
- [NEAR Intents](/payment-methods/nearintents.md): Use the NEAR Intents payment method in MPP for cross-chain charges: clients pay on any supported chain, merchants receive an exact amount on theirs.
- [NEAR Intents charge](/payment-methods/nearintents/charge.md): Accept one-time cross-chain payments through NEAR Intents and settle an exact amount on...
- [RedotPay payment method](/payment-methods/redotpay.md): Accept MPP payments using RedotPay balance or stablecoin rails.
- [RedotPay charge](/payment-methods/redotpay/charge.md): One-time payments with the RedotPay payment method.
- [Custom payment methods](/payment-methods/custom.md): Build a custom MPP payment method with your own request schema, Credential format, and...
## SDKs
- [SDKs and client libraries](/sdk.md): Official MPP SDKs in TypeScript, Python, Rust, Go, and Ruby, plus community SDKs in oth...
- [SDK features](/sdk/features.md): Feature parity across the official TypeScript, Python, Rust, Go, and Ruby MPP SDKs.
- [Getting started](/sdk/typescript.md): Use the mppx TypeScript SDK to build MPP clients, servers, middleware, and payment-awar...
- [evm client method](/sdk/typescript/client/Method.evm.md): Sign EVM charge Credentials
- [evm.charge client method](/sdk/typescript/client/Method.evm.charge.md): Sign EVM charge Credentials
- [tempo client method](/sdk/typescript/client/Method.tempo.md): Register Tempo charge and session support in an MPP TypeScript client.
- [Method.tempo.charge](/sdk/typescript/client/Method.tempo.charge.md): One-time payments
- [tempo.session](/sdk/typescript/client/Method.tempo.session.md): Sessions client method
- [tempo.session.manager](/sdk/typescript/client/Method.tempo.session-manager.md): Sessions manager
- [Method.tempo.subscription](/sdk/typescript/client/Method.tempo.subscription.md): Recurring stablecoin payments
- [stripe client method](/sdk/typescript/client/Method.stripe.md): Register Stripe charge support in an MPP TypeScript client.
- [Method.stripe.charge](/sdk/typescript/client/Method.stripe.charge.md): One-time payments via Shared Payment Tokens
- [Mppx.create](/sdk/typescript/client/Mppx.create.md): Create a payment-aware fetch client
- [Mppx.preparePayment](/sdk/typescript/client/Mppx.preparePayment.md): Inspect a payment before signing
- [Mppx.restore](/sdk/typescript/client/Mppx.restore.md): Restore the original global fetch
- [Fetch.from](/sdk/typescript/client/Fetch.from.md): Wrap fetch with automatic MPP payments without changing global fetch.
- [Fetch.polyfill](/sdk/typescript/client/Fetch.polyfill.md): Install a global fetch wrapper that handles MPP payments automatically.
- [Fetch.restore](/sdk/typescript/client/Fetch.restore.md): Restore the original fetch after installing the MPP fetch polyfill.
- [Transport.from](/sdk/typescript/client/Transport.from.md): Create a custom transport
- [Transport.http](/sdk/typescript/client/Transport.http.md): HTTP transport for payments
- [Transport.mcp](/sdk/typescript/client/Transport.mcp.md): MCP transport for payments
- [McpClient.wrap](/sdk/typescript/client/McpClient.wrap.md): Payment-aware MCP client
- [evm server method](/sdk/typescript/server/Method.evm.md): Create EVM charge Challenges
- [evm.charge server method](/sdk/typescript/server/Method.evm.charge.md): One-time EVM payments
- [tempo server method](/sdk/typescript/server/Method.tempo.md): Register Tempo charge and session support in an MPP TypeScript server.
- [Method.tempo.charge](/sdk/typescript/server/Method.tempo.charge.md): One-time stablecoin payments
- [Method.tempo.session](/sdk/typescript/server/Method.tempo.session.md): Sessions server method
- [Method.tempo.subscription](/sdk/typescript/server/Method.tempo.subscription.md): Recurring stablecoin payments
- [stripe](/sdk/typescript/server/Method.stripe.md): Configure Stripe SPT and stablecoin payment methods for an MPP server.
- [stripe.charge](/sdk/typescript/server/Method.stripe.charge.md): Migrate the deprecated Stripe charge constructor to the Stripe SPT constructor.
- [stripe.create](/sdk/typescript/server/Method.stripe.create.md): Configure Stripe SPT and stablecoin payment methods from one server integration.
- [stripe.findOrCreateDepositAddress](/sdk/typescript/server/Method.stripe.findOrCreateDepositAddress.md): Resolve and cache a Stripe stablecoin deposit address for a payment network.
- [stripe.spt](/sdk/typescript/server/Method.stripe.spt.md): Accept one-time Stripe payments with Shared Payment Tokens in an MPP server.
- [mppx.broadcastCredential](/sdk/typescript/server/Mppx.broadcastCredential.md): Accept an MPP Credential from a custom transport or background workflow.
- [Mppx.compose](/sdk/typescript/server/Mppx.compose.md): Present multiple payment options
- [Mppx.create](/sdk/typescript/server/Mppx.create.md): Create a server-side payment handler
- [Mppx.toNodeListener](/sdk/typescript/server/Mppx.toNodeListener.md): Adapt payments for Node.js HTTP
- [mppx.validateCredential](/sdk/typescript/server/Mppx.validateCredential.md): Pre-check an MPP Credential without consuming payment state.
- [mppx.verifyCredential](/sdk/typescript/server/Mppx.verifyCredential.md): Verify MPP Credentials directly in custom transports and background flows.
- [Transport.from](/sdk/typescript/server/Transport.from.md): Create a custom transport
- [Transport.http](/sdk/typescript/server/Transport.http.md): HTTP server-side transport
- [Transport.mcp](/sdk/typescript/server/Transport.mcp.md): Raw JSON-RPC MCP transport
- [Transport.mcpSdk](/sdk/typescript/server/Transport.mcpSdk.md): MCP SDK server-side transport
- [mppx.session.serveWebSocket](/sdk/typescript/server/Ws.serve.md): WebSocket session payments
- [Request.toNodeListener](/sdk/typescript/server/Request.toNodeListener.md): Convert Fetch handlers to Node.js
- [Response.requirePayment](/sdk/typescript/server/Response.requirePayment.md): Create a 402 response
- [machineTokenDeployments](/sdk/typescript/tempo.machineTokenDeployments.md): Use canonical Tempo deployments when you enable MACH-funded stablecoin charges.
- [Method.tempo.renewSubscription](/sdk/typescript/server/Method.tempo.renewSubscription.md): Renew subscriptions outside requests
- [Elysia payment middleware](/sdk/typescript/middlewares/elysia.md): Protect Elysia routes with MPP payment middleware.
- [Express payment middleware](/sdk/typescript/middlewares/express.md): Protect Express routes with MPP payment middleware.
- [Hono payment middleware](/sdk/typescript/middlewares/hono.md): Protect Hono routes with MPP payment middleware.
- [Next.js payment middleware](/sdk/typescript/middlewares/nextjs.md): Protect Next.js route handlers with MPP payment middleware.
- [x402/express.mpp](/sdk/typescript/x402/express.md): Add MPP payments to an existing x402 Express server without replacing its routes, facil...
- [x402/hono.mpp](/sdk/typescript/x402/hono.md): Add MPP payments to an existing x402 Hono server while preserving its route configurati...
- [x402/mcp.mpp](/sdk/typescript/x402/mcp.md): Add MPP payment metadata to an existing x402 MCP tool while preserving its resource ser...
- [x402/next](/sdk/typescript/x402/next.md): Add MPP payments to existing x402 Next.js route handlers and proxies while preserving o...
- [Paid API proxy server](/sdk/typescript/proxy.md): Put MPP payments in front of existing upstream APIs.
- [BodyDigest.compute](/sdk/typescript/core/BodyDigest.compute.md): Compute a body digest hash
- [BodyDigest.verify](/sdk/typescript/core/BodyDigest.verify.md): Verify a body digest hash
- [Challenge.credentialHeader](/sdk/typescript/core/Challenge.credentialHeader.md): Resolve the HTTP field where a client sends a Payment Credential for an MPP Challenge.
- [Challenge.deserialize](/sdk/typescript/core/Challenge.deserialize.md): Deserialize a Challenge from a header
- [Challenge.from](/sdk/typescript/core/Challenge.from.md): Create a new Challenge
- [Challenge.fromHeaders](/sdk/typescript/core/Challenge.fromHeaders.md): Extract a Challenge from Headers
- [Challenge.fromMethod](/sdk/typescript/core/Challenge.fromMethod.md): Create a Challenge from a method
- [Challenge.fromResponse](/sdk/typescript/core/Challenge.fromResponse.md): Extract a Challenge from a Response
- [Challenge.fromResponseList](/sdk/typescript/core/Challenge.fromResponseList.md): Extract multiple Challenges
- [Challenge.meta](/sdk/typescript/core/Challenge.meta.md): Extract correlation data from a Challenge
- [Challenge.serialize](/sdk/typescript/core/Challenge.serialize.md): Serialize a Challenge to a header
- [Challenge.verify](/sdk/typescript/core/Challenge.verify.md): Verify a Challenge HMAC
- [Credential.deserialize](/sdk/typescript/core/Credential.deserialize.md): Deserialize a Credential from a header
- [Credential.from](/sdk/typescript/core/Credential.from.md): Create a new Credential
- [Credential.fromRequest](/sdk/typescript/core/Credential.fromRequest.md): Extract a Credential from a Request
- [Credential.serialize](/sdk/typescript/core/Credential.serialize.md): Serialize a Credential to a header
- [Expires utility functions](/sdk/typescript/core/Expires.md): Use Expires helpers to set relative expiration timestamps for MPP Challenges and paymen...
- [Method.from](/sdk/typescript/core/Method.from.md): Create a payment method definition
- [Method.toClient](/sdk/typescript/core/Method.toClient.md): Extend a method with client logic
- [Method.toServer](/sdk/typescript/core/Method.toServer.md): Extend a method with server payment handling
- [PaymentRequest.deserialize](/sdk/typescript/core/PaymentRequest.deserialize.md): Deserialize a payment request
- [PaymentRequest.from](/sdk/typescript/core/PaymentRequest.from.md): Create a payment request
- [PaymentRequest.serialize](/sdk/typescript/core/PaymentRequest.serialize.md): Serialize a payment request to a string
- [Receipt.deserialize](/sdk/typescript/core/Receipt.deserialize.md): Deserialize a Receipt from a header
- [Receipt.from](/sdk/typescript/core/Receipt.from.md): Create a new Receipt
- [Receipt.fromResponse](/sdk/typescript/core/Receipt.fromResponse.md): Extract a Receipt from a Response
- [Receipt.serialize](/sdk/typescript/core/Receipt.serialize.md): Serialize a Receipt to a string
- [Store.tryClaim](/sdk/typescript/core/Store.tryClaim.md): Prevent duplicate payments and request replays with atomic, expiring claims.
- [Html.init](/sdk/typescript/Html.init.md): Build custom payment UIs for browser-based 402 flows
- [Custom HTML](/sdk/typescript/html/custom.md): Add payment link support to a custom payment method with Html.init and Method.toServer
- [CLI Reference](/sdk/typescript/cli.md): Use the mppx CLI to make paid HTTP requests from th