卖家
用 GNK 或 USDC 为 HTTP 路由定价。你返回 402,客户端付款,你通过本协调器结算,然后再提供服务。无需运行 Gonka 节点。
服务端循环
- 若缺少
PAYMENT-SIGNATURE或其不是有效的 base64 JSON,返回 402,并带PAYMENT-REQUIRED(头和正文)。 - 向
/settle发送POST,附上paymentPayload(客户端所发)和paymentRequirements(你所公布)。 - 若
success为 false,再次返回 402,并把原因放入error。 - 若
success为 true,完成工作,然后返回 200,并将PAYMENT-RESPONSE设为 settle 结果的 base64。
Gonka 使用先付后用流程。不要仅在 verify 通过后就提供资源。/verify 可选且只读。真正转账的是 /settle。
公布价格
你的 402 正文是 x402 v2 的 PaymentRequired 对象。最简可用的 accepts 项:
{
"scheme": "exact",
"network": "cosmos:gonka-mainnet",
"amount": "1000000",
"asset": "ngonka",
"payTo": "gonka1yourmerchantaddress…",
"maxTimeoutSeconds": 60,
"extra": {
"name": "GNK",
"decimals": 9,
"assetTransferMethod": "signed-tx",
"paymentFlow": "upfront"
}
}为 USDC 再加一项:将 asset 设为 CW-20 地址,decimals 为 6,name 为 USDC。把整个 PaymentRequired 对象编为标准 base64 放入请求头。字段列表见 协议。
先结算再提供
curl -sS -X POST {{BASE}}/settle \
-H 'Content-Type: application/json' \
-d '{
"x402Version": 2,
"paymentPayload": { "...from PAYMENT-SIGNATURE..." },
"paymentRequirements": { "...your accepts entry..." }
}'成功时你会得到 transaction(hex 哈希)、payer、network 和 amount。如需可记入自有账本;链上转账已经到 payTo。
协调器会拒绝重复的 TxRaw(replayed_payment)。若你有多个副本且客户端会重试,应用层仍应自行防护。
中间件草图
async function requirePayment(req, res, next) {
const header = req.get("PAYMENT-SIGNATURE");
const required = paymentRequiredFor(req);
if (!header) return send402(res, required);
const paymentPayload = JSON.parse(Buffer.from(header, "base64").toString());
const settled = await fetch(FACILITATOR + "/settle", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
x402Version: 2,
paymentPayload,
paymentRequirements: paymentPayload.accepted,
}),
}).then((r) => r.json());
res.set("PAYMENT-RESPONSE", Buffer.from(JSON.stringify(settled)).toString("base64"));
if (!settled.success) return send402(res, { ...required, error: settled.errorReason });
next();
}定价
| GNK | 1 GNK = 1000000000 ngonka。示例:0.001 GNK → amount: "1000000"。 |
|---|---|
| USDC | 1 USDC = 1000000。示例:$0.01 → amount: "10000"。 |
| 收款方 | 你的 payTo 地址。协调器不会归集或托管该笔付款。 |
本主机上的演示路由使用极小金额以便测试。生产金额由你自行决定。
发现
可选:公布付费 URL,方便代理发现。本协调器为其 /demo 提供 GET /discovery/resources。实时目录见下方和 资源列表。你也可以在自有 API 上提供类似列表,或稍后注册到 x402 Bazaar。形状见 HTTP API。