x402支付协议
使用npx awal@latest x402命令来发现、检查和调用使用X402支付协议的付费API端点。支付以Base上的USDC进行。
工作流程
典型的x402工作流程是:
- 寻找服务 - 通过搜索集市或获取已知端点的详细信息
- 检查要求 - 检查价格、方法和输入模式
- 发出请求 - 使用自动USDC支付调用端点
命令
搜索集市
通过BM25相关性搜索关键词找到付费服务:
npx awal@latest x402 bazaar search <query> [-k <n>] [--force-refresh] [--json]
| 选项 | 描述 |
|---|---|
-k, --top <n> |
结果数量(默认:5) |
--force-refresh |
从CDP API重新获取资源索引 |
--json |
以JSON格式输出 |
结果会缓存在本地~/.config/awal/bazaar/,并在12小时后自动刷新。
列出集市资源
浏览所有可用资源:
awal x402 bazaar list [--network <network>] [--full] [--json]
| 选项 | 描述 |
|---|---|
--network <name> |
按网络过滤(base, base-sepolia) |
--full |
显示包括模式在内的完整详细信息 |
--json |
以JSON格式输出 |
发现支付要求
在不支付的情况下检查端点的x402支付要求:
awal x402 details <url> [--json]
自动检测正确的HTTP方法(GET, POST, PUT, DELETE, PATCH),直到获得402响应,然后显示价格、接受的支付方案、网络和输入/输出模式。
发起付费请求
使用自动USDC支付调用x402端点:
awal x402 pay <url> [-X <method>] [-d <json>] [-q <params>] [-h <json>] [--max-amount <n>] [--json]
| 选项 | 描述 |
|---|---|
-X, --method <method> |
HTTP方法(默认:GET) |
-d, --data <json> |
作为JSON字符串的请求体 |
-q, --query <params> |
作为JSON字符串的查询参数 |
-h, --headers <json> |
作为JSON字符串的自定义HTTP头 |
--max-amount <amount> |
USDC原子单位的最大支付金额(1000000 = $1.00) |
--correlation-id <id> |
将相关操作分组 |
--json |
以JSON格式输出 |
示例
# 搜索与天气相关的付费API
awal x402 bazaar search "weather"
# 搜索更多结果
awal x402 bazaar search "sentiment analysis" -k 10
# 检查一个端点的费用
awal x402 details https://example.com/api/weather
# 发起GET请求(自动支付)
awal x402 pay https://example.com/api/weather
# 发起带有主体的POST请求
awal x402 pay https://example.com/api/sentiment -X POST -d '{"text": "I love this product"}'
# 将最大支付限制为$0.10
awal x402 pay https://example.com/api/data --max-amount 100000
# 浏览所有集市资源的完整详细信息
awal x402 bazaar list --full
USDC金额
X402使用USDC原子单位(6位小数):
| 原子单位 | USD |
|---|---|
| 1000000 | $1.00 |
| 100000 | $0.10 |
| 50000 | $0.05 |
| 10000 | $0.01 |
先决条件
- 搜索/详情:不需要认证
- 支付:必须通过
awal auth login <email>认证并有足够的USDC余额(awal balance)
错误处理
- “未认证” - 先运行
awal auth login <email> - “未找到X402支付要求” - URL可能不是x402端点
- “CDP API返回429” - 速率限制;如果有可用的缓存数据将使用缓存数据
- “余额不足” - 用USDC充值钱包(
awal balance检查)