Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

MPP (Machine Payments Protocol)

Machine Payments Protocol (MPP) ↗ 是一个用于机器与机器之间支付的协议,由 Tempo Labs ↗Stripe ↗ 共同制定。它通过提交给 IETF ↗ 的正式认证方案,标准化了 HTTP 402 Payment Required 状态码。MPP 为 Agent、应用和人类提供了一个统一的接口,在同一个 HTTP 请求中为任何服务付款。

MPP 与具体支付方式无关。同一个端点可以接受稳定币 (Tempo)、信用卡 (Stripe) 或比特币 (Lightning)。

工作原理

  1. 客户端请求一个资源 — GET /resource
  2. 服务端返回 402 Payment Required,并在 WWW-Authenticate: Payment 头中携带支付挑战。
  3. 客户端完成支付 — 签署交易、支付发票或完成卡支付。
  4. 客户端以包含支付凭据的 Authorization: Payment 头重新发起请求。
  5. 服务端验证支付,并返回带有 Payment-Receipt 头的资源。

支付方式

MPP 通过单个协议支持多种支付方式:

方式描述状态
Tempo ↗在 Tempo 区块链上的稳定币支付,亚秒级结算Production
Stripe ↗通过 Shared Payment Tokens 实现的卡、钱包以及其他 Stripe 支持的支付方式Production
Lightning ↗通过 Lightning Network 进行比特币支付Available
Card ↗通过加密网络令牌进行卡支付Available
Custom ↗使用 MPP SDK 构建你自己的支付方式Available

服务端可以同时提供多种方式,客户端选择适合自己的方式。

支付意图 (Payment intents)

MPP 定义了两种支付意图:

  • charge — 一次性支付,立即结算。用于按请求计费。
  • session — 通过支付通道进行的流式支付。用于按使用量付费或按 token 计费,支持低于一分的费用和亚毫秒级延迟。

与 x402 的兼容性

MPP 向后兼容 x402。x402 核心的 exact 支付流程可直接映射到 MPP 的 charge 意图,因此 MPP 客户端无需修改即可使用现有的 x402 服务。

为资源收费

HTTP 内容 使用 MPP 中间件对 API、网页和文件进行收费

SDK

MPP 提供了三种语言的官方 SDK:

SDK包名安装
TypeScriptmppxnpm install mppx
Pythonpympppip install pympp
Rustmpp-rscargo add mpp

TypeScript SDK 包含针对 Hono ↗Express ↗Next.js ↗Elysia ↗ 的框架中间件,以及一个用于测试付费端点的 CLI ↗

相关资源