Machine Payments Protocol (MPP) ↗ 是机器对机器支付的协议,由 Tempo Labs ↗ 和 Stripe ↗ 共同编写。它通过正式的身份验证方案标准化 HTTP 402 Payment Required 状态码,并已提交 IETF ↗。MPP 为 Agent、应用和人类提供单一接口,在同一 HTTP 请求中支付任何服务。
MPP 与支付方式无关。单个端点可接受稳定币(Tempo)、信用卡(Stripe)或比特币(Lightning)。
- 客户端请求资源 —
GET /resource。 - 服务器返回
402 Payment Required,并在WWW-Authenticate: Payment头中包含支付挑战。 - 客户端完成支付 — 签署交易、支付发票或完成卡支付。
- 客户端携带
Authorization: Payment头(含支付凭证)重试请求。 - 服务器验证支付,并返回资源及
Payment-Receipt头。
MPP 通过单一协议支持多种支付方式:
| 方式 | 描述 | 状态 |
|---|---|---|
| Tempo ↗ | Tempo 区块链上的稳定币支付,亚秒级结算 | 生产环境 |
| Stripe ↗ | 通过 Shared Payment Tokens 支持卡、钱包及其他 Stripe 方式 | 生产环境 |
| Lightning ↗ | Lightning Network 上的比特币支付 | 可用 |
| Card ↗ | 通过加密网络 token 的卡支付 | 可用 |
| Custom ↗ | 使用 MPP SDK 构建自定义支付方式 | 可用 |
服务器可同时提供多种方式。客户端选择适合的方式。
MPP 定义两种支付意图:
charge— 立即结算的一次性支付。用于按请求计费。session— 通过支付通道的流式支付。用于按量或按 token 计费,成本可低于 1 美分,延迟可低于 1 毫秒。
MPP 向后兼容 x402。核心 x402 exact 支付流程直接映射到 MPP 的 charge 意图,因此 MPP 客户端可无需修改地使用现有 x402 服务。
HTTP 内容
使用 MPP 中间件对 API、网页和文件进行门控
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 原生网页内容变现