Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Machine Payments Protocol (MPP)

MPP(Machine Payments Protocol,机器支付协议)是一个开放标准,用于在请求 HTTP 资源的同一请求中完成对该资源的付款。它扩展了 x402,新增了支付意图(charge、subscription、session)、多通道支持(稳定币、银行卡、Lightning)、生产特性(幂等性、正文摘要绑定、过期机制)以及额外的传输方式(MCP、WebSocket)。该协议处于 IETF 标准跟踪进程中。

MPP 与 x402

MPP 客户端向后兼容:MPP 客户端无需任何更改即可调用现有的 x402 服务器。两种协议的差异之处:

方面x402MPP
支付意图按请求收费Charge、subscription、session
通道仅区块链稳定币、银行卡、Lightning、自定义
生产特性有限幂等性、正文摘要绑定、过期机制
传输方式HTTPHTTP、MCP/JSON-RPC、WebSocket
标头(客户端 ↔ 服务器)PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSEWWW-Authenticate / Authorization / Payment-Receipt
治理社区协议IETF 标准跟踪
方法编写权由基金会控制无需许可

挑战、凭证、收据

MPP 将每个付费请求封装成客户端与资源服务器之间的三步交换:

  1. 挑战(Challenge)。 服务器返回 402 Payment Required 以及一个 WWW-Authenticate 标头,其中列出所支持的方法、金额和过期时间。
  2. 凭证(Credential)。 客户端选择一种方法,对支付凭证进行签名,并附带一个携带序列化凭证的 Authorization 标头重新提交请求。
  3. 收据(Receipt)。 服务器验证凭证、结算付款,并在响应中返回一个包含结算引用的 Payment-Receipt 标头。

挑战可以通过正文摘要在密码学上绑定到请求正文,因此为某个请求签名的凭证无法在另一个不同的请求上重用。

支付意图

Charge(收费)。 针对单个资源的一次性付款。凭证授权一次精确金额的转账。

Subscription(订阅)。 在单个受限范围凭证下的周期性付款。凭证授权在一个计费周期内重复收费,由通道强制执行续订节奏。

Session(会话)。 使用链下凭单的按量付费。客户端先将资金存入托管一次,然后为每个请求签名低成本的链下凭单。只有净额在链上结算。详见 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 PayHeurist 这样的 x402 facilitator,或 Stable 自有的 Gas 豁免。完整演练请参阅 在 Stable 上构建 MPP 端点

推荐后续

  • 在 Stable 上构建 MPP 端点 — 为 USDT0 编写三个 MPP 自定义方法钩子并结算一笔真实付款。
  • MPP 会话 — 使用链下凭单进行微支付流式传输,并一次性净额结算。
  • x402 — 阅读 MPP 所泛化的原始 HTTP-402 协议。