402 Payment Required 之上的开放支付标准:服务器对第一次调用返回价格,客户端付款后带着付款证明再次调用,服务器随后返回数据。CCTools 有一条路由以这种方式工作,与使用 API 密钥的路由并存。你不需要密钥,也不需要账户,只需要一个能够付款的 Canton 钱包。
使用密钥是另一回事:在 cctools.network/profile/api 获取密钥,并在 cctools.network/api-docs 试用每个需要密钥的 endpoint。
付费路由
价格位于该路由自己的
402 响应中,以该响应为准。付款前请从中读取价格,而不要依赖上面的数字。"0" 表示交易所未报告任何数值。
一次付费调用的流程
1
不付款直接调用
路由返回
402 和一个 PAYMENT-REQUIRED header:一段 base64 编码的 JSON,其 accepts 数组为每一种可用于付款的资产各列出一个条目。每个条目的 amount 以原子单位表示,带十位小数,因此 1000000000 即 0.1。2
为其中一个条目签署转账
你的客户端签署一笔与某一个条目完全匹配的 Canton 转账,然后把它放在
PAYMENT-SIGNATURE header 中再次调用,并原样带上该条目。x402 客户端会替你完成这一步。3
收到数据和收据
Facilitator 校验这笔转账并在账本上完成结算,路由随后返回
200,附带数据和一个携带结算收据的 PAYMENT-RESPONSE header。从智能体付款
运营该 facilitator 的 FTP 发布了一个自托管的智能体钱包及其命令行客户端@ftptech/canton-agent-wallet。以下步骤依据 FTP 的智能体指南 和该包的 README(版本 2.3.1,于 2026 年 10 月 15 日查阅):
pay 读取 402,为其中一个条目付款并打印响应。--max 限制单次付款的最高金额,除非你选择其他资产,否则以 CC 计;超出这个金额时,钱包会在签名之前拒绝。若要改用 USDCx 或 cETH 付款,请加上 --asset USDCx(或 cETH),并先按照 FTP 指南的说明,通过 CANTON_AGENT_PAYABLE_INSTRUMENTS 同意花费该代币。
在代码中,同一个包导出了 makePayingFetch,这是一个会为遇到的任何 402 自动付款的 fetch:
机器可读的信息
402响应以 x402 Bazaar 发现格式描述该路由:extensions.bazaar包含调用方式(一个无参数的GET)、响应的 JSON Schema 和一行示例数据,resource中带有一段包含各资产价格的描述。- OpenAPI 规范用
x-x402块标注该路由:方案、网络、facilitator、三个 header,以及各资产的价格和读取时间。 - cctools.network/llms.txt 为语言模型列出了该路由。
响应与限制
- 一条路由。 目前 tickers 路由是唯一的付费路由。
- 先付款。 付款在数据发送之前完成结算。数据缺失或最近一次成功读取已超过 30 分钟时,路由会在要求任何付款之前返回
503。 - 延迟。 据 FTP 介绍,在 mainnet 上,首次之后的付款通常在 10 到 25 秒内完成;冷启动后的第一次付款耗时更长。
- 按次计费。 每次调用单独定价、单独付款。CCTools 这边没有订阅,也没有预付余额。
