MPP (Machine Payments Protocol)
Machine Payments Protocol (MPP) ↗ 是一个用于机器与机器之间支付的协议,由 Tempo Labs ↗ 和 Stripe ↗ 共同制定。它通过提交给 IETF ↗ 的正式认证方案,标准化了 HTTP 402 Payment Required 状态码。MPP 为 Agent、应用和人类提供了一个统一的接口,在同一个 HTTP 请求中为任何服务付款。
MPP 与具体支付方式无关。同一个端点可以接受稳定币 (Tempo)、信用卡 (Stripe) 或比特币 (Lightning)。
工作原理
- 客户端请求一个资源 —
GET /resource。 - 服务端返回
402 Payment Required,并在WWW-Authenticate: Payment头中携带支付挑战。 - 客户端完成支付 — 签署交易、支付发票或完成卡支付。
- 客户端以包含支付凭据的
Authorization: Payment头重新发起请求。 - 服务端验证支付,并返回带有
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 | 包名 | 安装 |
|---|---|---|
| TypeScript | mppx | npm install mppx |
| Python | pympp | pip install pympp |
| Rust | mpp-rs | cargo add mpp |
TypeScript SDK 包含针对 Hono ↗、Express ↗、Next.js ↗ 和 Elysia ↗ 的框架中间件,以及一个用于测试付费端点的 CLI ↗。
相关资源
- mpp.dev ↗ — 协议文档和快速入门指南
- IETF 规范 ↗ — 完整的 Payment HTTP Authentication Scheme 规范
- Pay Per Crawl — Cloudflare 原生的 Web 内容变现方案