# 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 - [tempo.Attribution](/sdk/typescript/tempo.Attribution.md): Identify MPP stablecoin transfers and match attribution memos to your server and Challe... - [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 - [Errors](/sdk/typescript/core/Errors.md): Handle replayed Credentials, unknown outcomes, and server payment failures with clear r... - [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 the terminal with automatic MPP and x4... - [Python SDK](/sdk/python.md): Use the Python SDK to build MPP clients and servers with typed Challenge, Credential, a... - [Core Types](/sdk/python/core.md): Use Python core types for MPP Challenges, Credentials, Receipts, payment requests, and... - [Python MPP client](/sdk/python/client.md): Use the Python client to handle HTTP 402 responses, pay with supported methods, and ret... - [Server](/sdk/python/server.md): Use the Python server SDK to protect FastAPI endpoints with MPP payment requirements an... - [Rust SDK for MPP](/sdk/rust.md): Use the Rust SDK to build MPP clients and servers with typed Challenge, Credential, and... - [Core types](/sdk/rust/core.md): Use Rust core types for MPP Challenges, Credentials, Receipts, payment requests, and ve... - [Client](/sdk/rust/client.md): Use the Rust client to handle HTTP 402 responses, pay with supported methods, and retry... - [Server](/sdk/rust/server.md): Use the Rust server SDK to protect Axum endpoints with MPP payment requirements and ver... - [Go SDK](/sdk/go.md): Use the Go SDK to build MPP clients and servers with typed Challenge, Credential, and R... - [Core types](/sdk/go/core.md): Use Go core types for MPP Challenges, Credentials, Receipts, payment requests, and veri... - [Client](/sdk/go/client.md): Use the Go client to handle HTTP 402 responses, pay with supported methods, and retry r... - [Server](/sdk/go/server.md): Use the Go server SDK to protect HTTP endpoints with MPP payment requirements and verif... - [Ruby SDK](/sdk/ruby.md): Use the Ruby SDK to build MPP clients and servers with typed Challenge, Credential, and... - [Core Types](/sdk/ruby/core.md): Use Ruby core types for MPP Challenges, Credentials, Receipts, payment requests, and ve... - [Client](/sdk/ruby/client.md): Use the Ruby client to handle HTTP 402 responses, pay with supported methods, and retry... - [Server](/sdk/ruby/server.md): Use the Ruby server SDK to protect Rack endpoints with MPP payment requirements and ver... - [Method.from](/sdk/typescript/Method.from.md): Create a payment method from a definition ## Services and ecosystem - [Cloudflare Agents](/partner-integrations/cloudflare-agents.md): Use MPP with the Cloudflare Agents SDK. - [Official MCP SDK](/partner-integrations/mcp-sdk.md): Use MPP with the official TypeScript MCP SDK. - [OpenClaw](/partner-integrations/openclaw.md): Use the official MPP plugin to make OpenClaw HTTP requests payment-aware. - [Vercel AI SDK](/partner-integrations/vercel-ai-sdk.md): Use MPP with the Vercel AI SDK. - [Agentic payments](/use-cases/agentic-payments.md): Learn how coding agents pay for APIs autonomously with MPP. No API keys, no signup form... - [API monetization](/use-cases/api-monetization.md): Monetize your API with per-request payments using HTTP 402. No API keys, subscriptions,... - [Micropayments](/use-cases/micropayments.md): MPP makes micropayments viable with stablecoin settlement and off-chain payment session... - [Extensions](/extensions.md): Community-built tools and integrations for MPP - [Brand assets and downloads](/brand.md): Download the current MPP logo, lockup, and avatar for your product, integration, or soc... - [MPP vs x402: Agentic payment protocols compared](/mpp-vs-x402.md): Compare MPP vs x402 for HTTP 402 payments. Learn the protocol differences, supported payment methods, session support, and when to choose each approach. - [MPP services: APIs that accept MPP payments](/services.md): Browse live MPP-enabled services that accept machine-to-machine payments. Discover APIs you can pay for with stablecoins, cards, or Bitcoin. ## Blog - [MPP Blog: HTTP 402 payment protocol updates](/blog.md): Updates from the MPP team on protocol development, integrations, and the future of machine payments. - [EVM and x402 support](/blog/evm-x402-support.md): MPP now supports generic EVM payments and x402 exact flows from one SDK. - [Go and Ruby SDKs](/blog/go-and-ruby-sdks.md): Two new MPP SDKs: mpp-go maintained by Tempo Labs and mpp-rb maintained by Stripe. - [mppx for agent SDKs and harnesses](/blog/mppx-agent-runtimes.md): New mppx hooks connect agent runtimes to paid tools and HTTP services through MPP. - [Expanding identity support in mppx](/blog/mppx-identity-support.md): Verify agent identity across HTTP requests and payment retries with mppx. - [Multi-method discovery](/blog/multi-method-discovery.md): Declare every payment method, currency, and intent for a route ahead of time. - [Payment hooks](/blog/payment-hooks.md): Core SDKs now expose typed payment hooks for logging, monitoring, and request context. - [Simplify MPP integrations with relays](/blog/relays.md): Delegate MPP payment validation and settlement without changing your application's paym... - [An improved sessions experience](/blog/sessions-improved.md): Pay-as-you-go API billing is now cheaper and easier to integrate. - [Subscriptions](/blog/subscriptions.md): Enable recurring access for paid plans, memberships, and API tiers. ## Other - [Wallets](/tools/wallet.md): Agent wallets for MPP -- enable your agent to pay for services. - [Page Not Found](/404.md)