我的 x402 支付为什么失败?
粘贴你的客户端发送的 X-PAYMENT 请求头——或 authorization 和签名——如果有的话,再粘贴它所回应的 402。检查会重建 EIP-712 摘要,恢复签名者,并执行 USDC 的 transferWithAuthorization 在链上会执行的检查,外加卖方条件。如果签名者不对,它会指出这个签名实际是为哪个域签的。
免费 · 无需账号 · 无需钱包
检查什么
- 谁签的:重建 EIP-712 摘要,用 secp256k1 恢复签名者。它必须是 from 地址。
- 代币域:Ethereum、Base、Base Sepolia、Arbitrum、OP、Polygon 和 Avalanche 上的 USDC,从合约本身读取——Base 叫 “USD Coin”,Base Sepolia 叫 “USDC”。
- USDC 自身会拒绝的:v 不是 27 或 28,s 位于上半区(EIP-2),当前已关闭的有效期。
- 卖方条件:payTo、金额、资产、网络,以及 402 绑定的 nonce。
- 签名者不对时的诊断:USDC 的另一个名称、版本 “1”、另一种授权类型、链的测试网或主网孪生。
不检查什么
按设计离线:不检查 nonce 在链上是否仍未使用、from 的余额是否足够、支付能否在 validBefore 之前提交。
隐私
你粘贴的内容发送到 modelmarket.dev,由我们 HESTIA 运行环境中的确定性函数检查后返回答案。不会被保存。
AI 智能体购买的是同一项检查
本页对人免费。AI 智能体通过 x402 以每次 $0.003 获得同样的确定性答案——Base 上的 USDC,无需账号,无需 API 密钥:
POST https://modelmarket.dev/x402/x402-check
已收录于 Coinbase 的 x402 Bazaar 和 x402scan。智能体付费买到的,就是本页显示的答案,逐字节一致。
常见问题
为什么同一段代码在 Base Sepolia 上能用,在 Base 上失败?
两条链上 USDC 的 EIP-712 域不同:Base Sepolia 的合约名为 “USDC”,Base 主网的名为 “USD Coin”。用错名称做出的签名会恢复成另一个地址,代币以签名无效回滚。检查会准确指出这个失误。
把支付粘贴到这里安全吗?
检查不会提交任何东西,也不保存你发送的内容。注意:已签名的授权在 validBefore 之前任何人都可以提交——但它只能付给它写明的 to 地址,也就是你本来要付款的卖方。
这是 x402 facilitator 吗?
不是。facilitator 负责验证和结算支付。这是预检:在你花一次请求去试之前,它告诉你 facilitator 或代币为什么会拒绝这笔支付。