什么是 x402?
x402 是让 HTTP 402 “Payment Required” 状态码重新焕发生机,成为一个用于互联网原生微支付的极简协议。 x402 不再需要订阅或要求账户的付费墙,而是让任何 HTTP 端点即刻可付费:- 客户端请求一个资源
- 服务器以 402 响应,并附带一个小的 JSON 支付要求
- 客户端签署一个支付授权并重新发送请求
- 服务器验证并提供内容
超越传统限制
x402 是为现代互联网经济而设计,解决了传统系统的关键限制:- 降低手续费和摩擦: 无需中介、高额手续费或手动设置的直接链上支付。
- 微支付与基于用量的计费: 按调用或功能收费,简单可编程的按用付费流程。
- 机器对机器交易: 让 AI 代理自主付费和访问服务,无需密钥或人类介入。
为什么在 Monad 上使用 x402?
Monad 是一个完全兼容 EVM 的 Layer 1,具有:- 10,000 TPS
- 约 0.3 秒的出块时间
- 单槽最终性
- 并行执行
- 极低的手续费
核心流程(直接支付)
Facilitator 流程(生产环境推荐)
facilitator 服务是可选的,但在生产环境中推荐使用。Facilitator 可以批量处理交易、承担 gas 费、处理退款,并简化客户端逻辑。使用 Monad x402 facilitator 构建基于 x402 的应用
前置条件
- Node.js 18+
- 一个 EVM 钱包
- 访问 Monad 测试网资金(下方的 USDC 测试代币)
Monad Facilitator 仅支持 x402 v2 及以上版本。迁移指南说明了差异:https://docs.x402.org/guides/migration-v1-to-v2
如何在 Monad 测试网上获取 USDC 代币
如何在 Monad 测试网上获取 USDC 代币
您可以使用 Circle 的水龙头为 Monad 测试网获取 USDC 代币:
您还需要测试网 MON 代币用于 gas 费。请从 Monad 水龙头 获取。
- 访问 https://faucet.circle.com
- 选择 USDC 作为代币
- 从 Network 下拉菜单中选择 Monad Testnet
- 输入您的钱包地址
- 点击 Send 1 USDC

步骤 1:初始化一个 Next.js 应用
创建一个新的 Next.js 项目:- ✅ TypeScript
- ✅ ESLint
- ✅ Tailwind CSS
- ✅
src/目录 - ✅ App Router
- ✅ 自定义默认导入别名:
@/*(默认)
使用
@x402/evm >= 2.22.0。它自带内置的 Monad 主网 USDC 配置,具有正确的 EIP-712 域名,并引用了正确的 upto 代理。详情参见支持的支付方案。.env.local 文件:
步骤 2:创建 payTo 地址
payTo 地址用于接收支付并从后端与区块链交互。
复制钱包地址并将其作为 PAY_TO_ADDRESS 添加到您的 .env.local 文件中
步骤 3:创建服务端可付费端点
src/app/api/premium/route.ts
步骤 4:客户端设置(消费付费端点)
以下是使用 Next.js 应用消费付费端点的示例,然而该端点也可以通过代理脚本消费。src/app/page.tsx
运行您的 x402 应用
现在您已经准备好测试您的 x402 支付流程了:- 启动开发服务器:
- 在浏览器中打开 http://localhost:3000
- 点击”Pay & Unlock Content”
- 连接您的钱包
- 批准 USDC 支付
- 立即看到内容解锁!
Facilitator API
对于希望使用基本 Facilitator API 的开发者,以下是支持的端点及示例。 Facilitator URL:https://x402-facilitator.molandak.org 网络支持:主网(eip155:143,USDC 0x754704Bc059F8C67012fEd69BC8A327a5aafb603)和测试网(eip155:10143,USDC 0x534b2f3A21130d7a60830c2Df862319e593943A3)。
在 @x402/evm >= 2.22.0 上,主网 USDC 从 SDK 的内置资产表中解析。测试网没有内置条目,需要上面快速入门中所示的自定义 money parser。
支持的支付方案
Monad facilitator 通过GET /supported 公布两种 x402 v2 方案:
对于 Monad 上的 USDC,按照 x402 规范推荐使用 exact 方案。Upto 需要位于
0x4020A4f3b7b90ccA423B9fabCc0CE57C6C240002 的规范 x402UptoPermit2Proxy(参见规范合约),以及由 facilitator 公布的 extra.facilitatorAddress,客户端必须将其绑定到 Permit2 witness 中。
可能的 HTTP 状态码
除了标准的200 / 4xx / 5xx 代码外,facilitator 还可能返回:
412 PRECONDITION_FAILED—— 当 Permit2 支付因用户对代理合约的 Permit2 授权额度不足而无法进行时返回(PERMIT2_ALLOWANCE_REQUIRED)。客户端必须通过 Permit2 授权代理并重试。这与400(请求体格式错误)和402(资源服务器的支付要求响应)不同。
GET /supported
返回支持的网络、方案和签名者地址。
POST /verify
验证支付签名。
POST /settle
在链上执行支付。Facilitator 支付 gas 费。
下一步做什么?
您已成功在 Monad 上构建了一个启用 x402 支付的应用!以下是一些扩展您实现的想法:- 添加更多可付费端点 - 为不同的内容或 API 调用创建不同的价格层
- 构建 AI 代理集成 - 使自主代理能够为访问您的 API 付费

