Начало работы
Три коротких пути: посмотреть 402, оплатить демо как покупатель или вызвать фасилитатор как продавец. Базовый URL этого развёртывания: .
1. Посмотреть 402
Демо-ресурс не оплачен, пока вы не приложите подпись. Этот запрос должен вернуть HTTP 402 и заголовок PAYMENT-REQUIRED.
curl -i {{BASE}}/demoJSON в теле — тот же объект, что в заголовке (декодированный). 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 и номер аккаунта. |