机器支付协议 (MPP)
MPP(机器支付协议)是一个开放标准,用于在请求 HTTP 资源的同时支付这些资源。它通过新的支付意图(收费、订阅、会话)、多轨道支持(稳定币、银行卡、闪电网络)、生产功能(幂等性、主体摘要绑定、过期)和附加传输(MCP、WebSocket)扩展了 x402。该协议正在 IETF 标准化进程中。
MPP 和 x402
MPP 客户端是向后兼容的:MPP 客户端可以在不更改的情况下调用现有的 x402 服务器。两种协议的区别在于:
| 方面 | x402 | MPP |
|---|---|---|
| 支付意图 | 按请求收费 | 收费、订阅、会话 |
| 轨道 | 仅区块链 | 稳定币、银行卡、闪电网络、自定义 |
| 生产功能 | 有限 | 幂等性、主体摘要绑定、过期 |
| 传输 | HTTP | HTTP、MCP/JSON-RPC、WebSocket |
| 标头(客户端 ↔ 服务器) | PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE | WWW-Authenticate / Authorization / Payment-Receipt |
| 治理 | 社区协议 | IETF 标准化进程 |
| 方法编写 | 基金会控制 | 无需许可 |
挑战、凭证、收据
MPP 将每个付费请求封装在客户端和资源服务器之间的三步交换中:
- 挑战。 服务器响应
402 Payment Required和一个WWW-Authenticate标头,其中包含支持的方法、金额和过期时间。 - 凭证。 客户端选择一个方法,签署支付证明,并使用包含序列化凭证的
Authorization标头重新提交请求。 - 收据。 服务器验证凭证,结算支付,并返回响应,其中包含一个
Payment-Receipt标头,其中包含结算参考。
一个挑战可以通过主体摘要与请求主体进行加密绑定,因此为T一个请求签署的凭证不能在另一个请求中重复使用。
支付意图
收费。 对单个资源进行一次性支付。凭证授权一次精确金额的转账。
订阅。 在单个范围凭证下进行定期支付。凭证授权在计费周期内重复收费,由轨道强制执行续订周期。
会话。 通过链下凭证按使用量付费。客户端将资金一次性存入托管,然后为每个请求签署廉价的链下凭证。只有净金额在链上结算。有关详细信息,请参阅 MPP 会话。
传输
MPP 定义了通过多种传输的相同挑战/凭证/收据交换:
- HTTP。 默认。标头如上所示。
- MCP / JSON-RPC。 允许 MCP 服务器通过单个工具调用实现货币化。AI 客户端在调用工具之前签署凭证。
- WebSocket。 具有带内凭证充值的持久连接,专为流媒体会话设计。
Stable 上的 MPP
MPP 不附带 Stable 支付方法。mppx SDK (wevm/mppx) 包含 Tempo 和 Stripe 的方法,而 mpp.dev 列出了 Tempo、Stripe、Lightning、Solana、Stellar、Monad 和 RedotPay。今天 Stable 不在这两个列表上。
该标准是无需许可的,因此您可以编写自己的方法。对于 Stable 上的 USDT0,verify() 钩子是针对 ERC-3009 的签名验证,结算委托给现有的结算服务:一个像 Semantic Pay 或 Heurist 这样的 x402 协调器,或者 Stable 自己的 Gas Waiver。请参阅 在 Stable 上构建 MPP 端点 以获取完整的演练。
推荐阅读
- 在 Stable 上构建 MPP 端点:为 USDT0 编写三个 MPP 自定义方法钩子,并结算真实的支付。
- MPP 会话:通过链下凭证和一次净结算流式传输微支付。
- x402:阅读 MPP 泛化的原始 HTTP-402 协议。

