x402 on Gonka
检查中…

Git:gonkalabs 的 Git 仓库暂时不可用。请从本网站下载源码 — 源码

协议

本协调器通过 HTTP 使用 x402 第 2 版。链绑定是 Cosmos exact,由客户端签署 TxRaw

网络绑定

x402 版本2
方案exact
网络cosmos:gonka-mainnet(CAIP-2)
转账方式signed-tx — 客户端签名,协调器广播
支付流程upfront — 先结算再提供。/verify 对该顺序不是必须的。

通用协议见 docs.x402.orgv2 规范。本页是 Gonka 绑定。

请求头

PAYMENT-REQUIRED服务器 → 客户端。Base64 JSON PaymentRequired。出现在 402。
PAYMENT-SIGNATURE客户端 → 服务器。Base64 JSON PaymentPayload
PAYMENT-RESPONSE服务器 → 客户端。Base64 JSON 结算结果。每次尝试后都会发送,无论成败。

编码是 UTF-8 JSON 的标准 base64,不是 base64url。CORS 暴露这些支付头,以便浏览器读取。

PaymentRequired

{
  "x402Version": 2,
  "error": "PAYMENT-SIGNATURE header is required",
  "resource": {
    "url": "https://example/demo",
    "description": "…",
    "mimeType": "application/json",
    "serviceName": "x402-gonka",
    "tags": ["gonka", "x402", "usdc"]
  },
  "accepts": [ { "scheme": "exact", "network": "cosmos:gonka-mainnet", "amount": "1000", "asset": "ngonka", "payTo": "gonka1…", "maxTimeoutSeconds": 60, "extra": {} } ],
  "extensions": {}
}

本网络上的 accepts[].extra 包含 namedecimalsassetTransferMethodpaymentFlow

支付载荷

PAYMENT-SIGNATURE 内的对象:

x402Version2
accepted你所满足的 PaymentRequirements
payload.signedTxBase64 protobuf TxRaw(body、auth info、签名)。
payload.signature64 字节 secp256k1 签名的 base64(与 TxRaw 中相同)。
payload.authorization.from付款人 gonka1…。必须与交易签名者一致。
payload.authorization.to必须等于 accepted.payTo
payload.authorization.amount原子单位。交易金额必须 ≥ 此值且 ≥ accepted.amount
payload.authorization.denomngonka 或 USDC 合约。
payload.authorization.timeoutAtUnix 秒。若已过期则拒绝。

交易形状

GNK

第一条(也是唯一一条)消息:/cosmos.bank.v1beta1.MsgSend,单枚硬币 {denom: "ngonka", amount}

USDC

第一条消息:/cosmwasm.wasm.v1.MsgExecuteContractcontract 是 USDC CW-20。msg 是 JSON {"transfer":{"recipient":"…","amount":"…"}}

Auth info

一名签名者,/cosmos.crypto.secp256k1.PubKey,SIGN_MODE_DIRECT(模式 1),手续费 0ngonka,gas 上限通常 120000。SignDoc 为 body_bytes || auth_info_bytes || chain_id || account_number,再做 SHA-256。

verify 检查项

  1. 版本、方案和网络。
  2. signedTx 能解码为受支持的消息。
  3. 收款人、资产和金额符合要求。
  4. authorization 的 from 与签名者地址一致。
  5. 链上账户编号 / sequence 与已签交易一致。
  6. 签名对 SignDoc 验证通过。
  7. /verify:付款人余额 ≥ 金额。
  8. /settle:该 TxRaw 尚未结算,然后广播并等待出块。

拒绝码见 错误