x402 on Gonka
проверка…

Git: Git-хостинг gonkalabs временно недоступен. Скачайте исходный код с этого сайта — Исходный код.

Начало работы

Три коротких пути: посмотреть 402, оплатить демо как покупатель или вызвать фасилитатор как продавец. Базовый URL этого развёртывания: .

1. Посмотреть 402

Демо-ресурс не оплачен, пока вы не приложите подпись. Этот запрос должен вернуть HTTP 402 и заголовок PAYMENT-REQUIRED.

curl -i {{BASE}}/demo

JSON в теле — тот же объект, что в заголовке (декодированный). accepts перечисляет GNK и USDC. Выберите один при оплате.

Тело 402 появится здесь.

2. Оплатить демо

Нужны Go и приватный ключ Gonka, на адресе которого уже есть GNK или забридженный USDC. Git-хостинг gonkalabs временно недоступен — скачайте исходный код с этого сайта. Ключ остаётся на вашей машине.

curl -fsSL {{BASE}}/releases/x402-gonka-source.tar.gz | tar -xz
cd x402-gonka
go run ./cmd/x402-gonka pay --key "$GONKA_PRIVATE_KEY" --url {{BASE}}/demo
go run ./cmd/x402-gonka pay --key "$GONKA_PRIVATE_KEY" --url {{BASE}}/demo --asset usdc

Архив — на странице Исходный код. Флаги — в CLI. Что собирает подписант — в Агенты и покупатели.

Живой settle

Так мы оплатили /demo в GNK. Hex-ключ остался в $GONKA_PRIVATE_KEY на стороне подписанта и на этот хост не уходил.

curl -i {{BASE}}/demo
curl -fsSL {{BASE}}/releases/x402-gonka-source.tar.gz | tar -xz
cd x402-gonka
go run ./cmd/x402-gonka pay --key "$GONKA_PRIVATE_KEY" --url {{BASE}}/demo

Неоплаченный curl вернул HTTP 402. pay подписал локально, повторил запрос с PAYMENT-SIGNATURE и напечатал:

status=200
{
  "ok": true,
  "product": "x402-gonka",
  "message": "Payment settled on Gonka.",
  "payer": "gonka150c4lsmsdr23vly466lskajkfhqh7eghmyjern",
  "network": "cosmos:gonka-mainnet",
  "transaction": "23B76D1281F9EFCC7AFC90659480CF3219A7099959C0513720769F700E9B73B2",
  "explorer": "https://gonka.gg/tx/23B76D1281F9EFCC7AFC90659480CF3219A7099959C0513720769F700E9B73B2"
}

Затем проверили баланс плательщика и транзакцию на rpc.gonka.gg:

curl -sS https://rpc.gonka.gg/chain-api/cosmos/bank/v1beta1/balances/gonka150c4lsmsdr23vly466lskajkfhqh7eghmyjern
curl -sS https://rpc.gonka.gg/chain-api/cosmos/tx/v1beta1/txs/23B76D1281F9EFCC7AFC90659480CF3219A7099959C0513720769F700E9B73B2
Плательщикgonka150c4lsmsdr23vly466lskajkfhqh7eghmyjern
Сумма1000 ngonka (0.000001 GNK)
Баланс5.000000000 → 4.999999000 GNK
Высота5745133 · code 0
Транзакция23B76D1281F9EFCC7AFC90659480CF3219A7099959C0513720769F700E9B73B2

Хеш на gonka.gg. В этом прогоне USDC не использовался.

3. Вызвать фасилитатор

Продавцы сами с сетью не разговаривают. Узнайте поддерживаемые виды, затем POST /settle после того, как клиент повторит запрос с PAYMENT-SIGNATURE.

curl -sS {{BASE}}/supported
curl -sS {{BASE}}/discovery/resources

Как отдать 402 из своего API — в Продавцы. Зарегистрированные платные URL — на странице Список ресурсов. Тела запросов и ответов — в HTTP API.

Что нужно

GoЛокальный toolchain Go, чтобы выполнить go run исходников с этого сайта. См. Исходный код.
КошелёкАдрес gonka1…. GG Wallet, Keplr или hex-ключ из x402-gonka keygen.
СредстваДостаточно GNK или забридженного USDC на объявленную сумму. Цены демо крошечные (см. accepts).
RPCФасилитатор использует rpc.gonka.gg. Покупатели могут тот же URL. API-ключ не нужен.
АккаунтПлатящий адрес должен уже существовать в сети (хотя бы один входящий перевод), чтобы можно было запросить sequence и номер аккаунта.