零依赖实现x402微支付API:AI代理按次付费调用

x402 协议让 HTTP 402 复活,零依赖 Worker 即可搭建 AI 代理按次付费 API。
文章拆解了一个在 Cloudflare Pages 免费计划上运行的按次付费 API:开发者仅用一个 `_worker.js` 和零 npm 依赖,就实现了 x402 支付流程。AI 代理请求时收到 402 及机器可读的支付条款,签署 EIP-3009 授权后重试,Worker 将签名交给公共 facilitator 验证并结算,USDC 直接进入作者钱包。关键设计是 verify → 执行 → settle,执行失败不结算,避免代理重试产生无效费用。作者用空钱包签名零成本验证了支付通道完整性。文章还讨论了发现层瓶颈,需通过 Bazaar、OpenAPI、x402dash 和 x402scan 等多渠道注册,并认为这标志着 API 经济从订阅制向按调用付费的结构性转变。
为什么402状态码突然重要了
HTTP 402 "Payment Required" 从1997年就存在于规范中,但直到 x402 协议出现,它才真正被用起来。一位开发者最近在 Cloudflare Pages 免费计划上,用一个 _worker.js 和零 npm 依赖,搭建了一个真正可用的按次付费 API。AI 代理调用接口时收到 402,附带机器可读的支付条款,签名授权后重试,立刻拿到数据。没有注册、没有 API key、没有 Stripe 账户。
这篇文章将拆解其实现逻辑,并探讨它对 AI 代理经济的基础设施意义。

x402支付流程拆解
三段式握手
整个流程分三步:
- 代理发起请求
GET /api/apis/search?q=weather,不带支付信息,服务端返回 402,响应头包含 base64 编码的PAYMENT-REQUIRED(x402 v2),响应体同时给出 JSON 格式的支付要求(x402 v1,兼容老客户端)。内容明确:在 Base 链上支付 5000 个 USDC 原子单位,即 0.005 美元,收款地址明确。 - 客户端签署 EIP-3009 的
transferWithAuthorization,然后带PAYMENT-SIGNATURE头重试。 - Worker 将签名载荷 POST 到 facilitator 的
/verify接口验证,验证通过后执行处理逻辑,最后调用/settle结算。Facilitator 负责广播转账并支付 gas,USDC 直接进入作者钱包。
这套流程的关键在于:支付和业务逻辑解耦。Worker 本身不碰私钥、不管理资金,只负责验证签名和触发结算。
EIP-3009 与 transferWithAuthorization:EIP-3009 是以太坊上针对 USDC 等 ERC-20 代币的“免 gas 转账授权”标准。它允许代币持有者离线签署一条 transferWithAuthorization 消息,其中指定 from、to、value、validAfter、validBefore 和 nonce,任何第三方(如 facilitator)都可以拿着这份签名代替持有者发起链上转账。由于签名本身不消耗 gas,持有者无需持有原生代币即可完成支付;gas 由广播方承担。x402 正是利用这一机制,让 AI 代理只需用私钥签署授权,而无需管理链上 gas,也无需提前把 USDC 换成本链原生币。
Facilitator:在 x402 协议中,facilitator 是一个独立的中介服务,负责两件事:/verify 检查客户端提交的支付签名是否有效(金额、收款方、有效期、nonce 等),/settle 在验证通过后把签名交易广播到链上并支付 gas,完成 USDC 的实际转移。服务提供者(Worker)不接触私钥、不管理资金、不运行区块链节点,只把签名载荷转发给 facilitator,因此支付层可以做到完全无状态。
不需要API密钥的Facilitator
原作者发现,Coinbase 的 facilitator 在主网上需要 CDP 密钥,但有一些公共 facilitator 完全不需要认证。他使用了 PayAI(facilitator.payai.network)作为首选,xpay(facilitator.xpay.sh)作为备用。代码很简单:遍历 facilitator 列表,POST 载荷,返回结果中包含 isValid 或 success 字段即视为成功。这降低了搭建付费 API 的门槛——你不需要在 Coinbase 开账户、申请密钥,只需要一个钱包地址。
PAYMENT-REQUIRED 与 PAYMENT-SIGNATURE 头:这两个自定义 HTTP 头是 x402 协议的数据载体。服务端在 402 响应中返回 PAYMENT-REQUIRED,其内容经 base64 编码,包含 x402 版本、支付网络(如 Base)、资产合约地址、金额(以原子单位表示)、收款地址、有效期等机器可读条款。客户端解析后,构造并签署 EIP-3009 授权,再把签名结果放入 PAYMENT-SIGNATURE 请求头重试。由于这些头是自定义的,普通浏览器或未适配的客户端只会看到 402 和 JSON 响应体,不会误触发支付;只有理解 x402 的代理才会继续握手。
零成本测试与按结果收费的设计
用空钱包验证签名正确性
作者用一个由 viem 生成的全新空钱包,签署正确的授权信息并发送到线上 API。Facilitator 返回了 invalid_exact_evm_insufficient_balance 错误。这个错误恰好说明:签名格式、EIP-712 域(USD Coin、版本 2、链 ID 8453)、金额和收款方全部被接受,唯一缺失的是余额。这是一种零成本的端到端检查——不花一分钱,就能确认支付通道的完整性。
先执行后结算
代码逻辑是 verify → 执行 → settle。如果执行步骤失败(比如参数错误、URL 无效),直接返回 400,绝不调用 settle,代理不需要支付任何费用。这个细节很重要,因为 AI 代理会频繁重试,如果先扣费再执行,失败请求也会产生费用,破坏信任。
verify → 执行 → settle 的顺序为何重要:在传统支付中,扣款通常发生在服务交付之前,以避免坏账。但 AI 代理的调用模式不同:代理会基于不完整信息发起试探性请求,失败重试极其频繁。如果先 settle 再执行,任何参数错误、超时或上游数据源故障都会让代理为未获得的服付费,累积起来会迅速破坏代理对端点的信任,甚至导致代理在发现层中拉黑该 API。x402 推荐先 verify(只检查签名有效性和余额,不广播交易),再执行业务逻辑,只有执行成功才调用 settle。这样失败请求零成本,代理可以放心重试,而服务提供者也不会因为执行失败而损失 gas。
让AI代理发现你的付费API
付费 API 如果没人能找到,收入就是零。作者列出了几个有效的发现渠道:
- Bazaar 元数据:在 402 响应中嵌入
extensions.bazaar,提供输入/输出 JSON schema,让代理市场能索引。 - OpenAPI 规范:每个付费操作附带
x-payment-info,并提供/.well-known/x402端点。 - x402dash:每个端点向
https://api.x402dash.com/v1/registerPOST 一次,它会实时探测 402 响应。 - x402scan:需要钱包签名(Sign-In-With-X),由
@x402/extensions处理。
作者强调,发现是真正的工作量所在,不要把全部精力放在代码上。
Bazaar 与 x402 发现层:Bazaar 是 x402 生态中用于索引付费端点的元数据机制。服务端在 402 响应的 extensions.bazaar 字段中声明每个端点的输入/输出 JSON schema、价格和描述,代理市场或爬虫可以据此自动发现并调用 API。与之配合的是 /.well-known/x402 端点,它返回整个服务的 OpenAPI 规范,其中每个付费操作带有 x-payment-info 扩展,说明价格和支付网络。x402dash 和 x402scan 则是第三方目录,前者通过主动探测 402 响应来收录端点,后者要求钱包签名(Sign-In-With-X)以证明端点所有权。这些机制共同构成代理经济的“搜索引擎”,但目前仍处于早期,注册流程分散且需要手动操作。
这个API卖什么?
作者上线的 API 提供四个付费端点,每个定价 0.001 美元:
/api/apis/search:搜索 2,230 个经过链接检查的公开和免费层 API,支持auth=none&alive=yes等过滤条件。/api/free-tiers:开发者服务和 LLM API 的当前免费额度。/api/robots-check:检查某个 user-agent 是否被允许爬取指定 URL。/api/page-meta:提取公开页面的标题、OG 标签和标题结构(遵守 robots.txt)。
免费端点包括 /api/apis/sample、/openapi.json 和 /health。这个产品思路很清晰:卖数据,而不是卖计算。对代理来说,一次调用 0.001 美元的成本可以忽略不计,但省去了自己爬取和清洗数据的麻烦。
对AI代理经济的启示
这个项目的核心贡献不在于技术复杂度,而在于证明了几个关键点:
- x402 可以在免费的边缘运行时上运行。不需要服务器、数据库或任何 API 密钥。Cloudflare Workers 的免费计划足以支撑。
- 支付层可以完全无状态。签名验证和结算都委托给 facilitator,服务提供者只关心业务逻辑。
- 代理原生支付是可行的。没有人类交互,代理自主完成支付决策和签名,这在 API 经济中是一个结构性变化——从“订阅制”转向“按调用付费”。
- 发现层是瓶颈。当前生态还在早期,列出 API 需要手动操作多个注册表。
作者建议同时返回 v1 和 v2 两种挑战格式,因为现实世界中的客户端两种都在用。这个细节说明 x402 还处于过渡期,兼容性需要手动处理。
对于想要尝试的开发者,可以直接读取线上 API 的 402 响应,理解格式后自己实现。作者也提供了包含测试和列表步骤的付费 starter kit。
总结
x402 让 1997 年就存在的 402 状态码终于有了实际用途。一个零依赖的 Worker、一个公共 facilitator、一个钱包地址,就能构建面向 AI 代理的按次付费 API。技术门槛已经很低,真正的门槛在于发现和流量——这也是任何 API 经济早期的典型特征。
相关推荐

3分钟看懂DeepSeek:从量化私募到开源AI领跑者的崛起之路
3分钟看懂DeepSeek发展史:从幻方量化的算力积累,到V2的MLA推理降本、V3的557.6万美元训练账单、R1开源引爆全球,再到V4与70亿美元A轮融资,梳理深度求索的关键节点与技术路线。

本地文学创作模型PK:Qwen3.8 27B微调版胜出,DeepSeek v4.1表现平淡
B站UP主横向测评七款本地文学创作模型:海明威、HumanLike Chat基于Qwen3.8 27B微调表现最佳,DeepSeek v4.1叙事平淡,东方朔角色混乱垫底。附三道测试题评分与使用建议。

梁文锋的三次豪赌:DeepSeek为何将82%毛利开源?
DeepSeek为何把82%毛利的推理框架DeepInfer开源,又启动千亿融资?从技术路线、国产芯片到组织纯粹性,解析梁文锋的三次豪赌与开源战略背后的商业与理想逻辑。