x402-payments — скилл для Claude Code: платный доступ к HTTP-ресурсам
Скилл для агентов, который помогает закрыть HTTP-ресурсы оплатой в HBAR по схеме x402: 402-ответ, подпись перевода, проверка и расчёт через свой фасилитатор.
npx skills add hedera-dev/hedera-skills --skill x402-payments -a claude-codeЧто делает x402-payments
Скилл описывает шаблон pay-per-use: сами данные лежат вне сети, условия доступа хранятся отдельно, а HTTP-ресурс отдаётся только после оплаты. Покупатель получает 402 с заголовком PAYMENT-REQUIRED, подписывает перевод HBAR и повторяет запрос с PAYMENT-SIGNATURE. Сервер проверяет платёж и рассчитывает его через фасилитатор, после чего возвращает ресурс и PAYMENT-RESPONSE.
Внутри — инструкции по сборке серверной части на @x402/core со схемой ExactHederaScheme, клиентского цикла с повторным запросом и самохостингового фасилитатора с эндпоинтами GET /supported, POST /verify, POST /settle, GET /health. Отдельные файлы в references/ дают примеры кода для сервера и клиента, переменные окружения и семантику расчёта. Для кошелька подойдёт ECDSA-аккаунт Hedera, например HashPack через WalletConnect.
Заранее нужен профинансированный ECDSA-аккаунт фасилитатора: FACILITATOR_ACCOUNT_ID и FACILITATOR_PRIVATE_KEY лежат в процессе фасилитатора, а не в сервере ресурсов. Суммы задаются в tinybars, ассет — 0.0.0, и клиент с сервером должны смотреть на одну сеть вроде hedera:testnet. Если положить ключ фасилитатора в сервер ресурсов, вся схема с разделением ролей ломается — это первое, что стоит проверить перед запуском.
Какие задачи решает
- отдавать защищённый файл только после оплаты в HBAR
- поднять свой фасилитатор с проверкой и расчётом платежей
- собрать серверный цикл с 402-ответом и повторным запросом
- подключить кошелёк через WalletConnect для подписи перевода
- перевести цены в tinybars без ошибок округления
Примеры запросов агенту
- Помоги закрыть эндпоинт оплатой в HBAR через x402
- Настрой фасилитатор Hedera с verify и settle
- Сделай клиентский retry с PAYMENT-SIGNATURE после 402
Как установить x402-payments
1Через Skills CLI (Vercel)
npx skills add hedera-dev/hedera-skills --skill x402-payments -a claude-code2Вручную: положить файлы
~/.claude/skills/x402-payments/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/x402-payments/
1Через Skills CLI (Vercel)
npx skills add hedera-dev/hedera-skills --skill x402-payments -a codex2Вручную: положить файлы
.agents/skills/x402-payments/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add hedera-dev/hedera-skills --skill x402-payments -a cursor2Вручную: положить файлы
.cursor/skills/x402-payments/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install hedera-dev/hedera-skills x402-payments2Вручную: положить файлы
.github/skills/x402-payments/SKILL.md1Через Skills CLI (Vercel)
npx skills add hedera-dev/hedera-skills --skill x402-payments -a gemini-cli2Командой платформы
gemini skills install https://github.com/hedera-dev/hedera-skills --path plugins/native-services-js/skills/x402-paymentsВручную: положить файлы
.devin/skills/x402-payments/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add hedera-dev/hedera-skills --skill x402-payments -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о x402-payments
Как установить x402-payments в Claude?
Выполните npx skills add hedera-dev/hedera-skills --skill x402-payments -a claude-code. Скилл появится в ~/.claude/skills/x402-payments/SKILL.md.
Что делает x402-payments?
Помогает агенту собрать платный доступ к HTTP-ресурсам на Hedera: 402-ответ, подпись перевода HBAR, проверка и расчёт через фасилитатор.
Что нужно для работы скилла?
Профинансированный ECDSA-аккаунт фасилитатора с FACILITATOR_ACCOUNT_ID и FACILITATOR_PRIVATE_KEY, а также совпадающая сеть у клиента и сервера, например hedera:testnet.
Исходный текст
SKILL.md · Apache-2.0
---
name: x402-payments
description: >
x402 pay-per-use payments on Hedera. Use when gating HTTP resources behind native HBAR
payments, wiring a self-hosted Hedera facilitator (verify/settle), building
x402ResourceServer / ExactHederaScheme flows, or integrating WalletConnect payment
retries (PAYMENT-REQUIRED → PAYMENT-SIGNATURE).
---
# x402 Payments (Hedera)
**Pay-per-use pattern:** store protected bytes off-chain, record access terms separately (on-chain or config), gate HTTP resources with **HTTP 402** + a **self-hosted Hedera facilitator** that verifies and settles native HBAR transfers.
```text
Buyer → GET protected resource
├─ free / public → resource
└─ paid → 402 PAYMENT-REQUIRED
→ client signs HBAR transfer
→ retry with PAYMENT-SIGNATURE
→ resource server verify + settle via facilitator
→ PAYMENT-RESPONSE + resource
```
The resource server **never holds facilitator keys**. Settlement uses a funded **ECDSA** fee-payer account on the facilitator process.
## Quick Reference
| Piece | Role |
| ----- | ---- |
| Payment asset | `"0.0.0"` — native HBAR; amounts in **tinybars** (1 HBAR = 1e8) |
| Resource server | `@x402/core` + `ExactHederaScheme` → talks to facilitator over HTTP |
| Facilitator | `GET /supported`, `POST /verify`, `POST /settle`, `GET /health` |
| Client | Request → read 402 → sign → retry with `PAYMENT-SIGNATURE` (legacy `X-PAYMENT` also accepted) |
| Wallet | ECDSA Hedera account (e.g. HashPack via WalletConnect / UniversalProvider) |
See [references/examples.md](references/examples.md) for server/client snippets. See [references/facilitator.md](references/facilitator.md) for env vars and settle semantics.
## Critical: Facilitator Fee Payer
Hedera x402 settles with native `TransferTransaction`s. The buyer **partially signs** (authorize buyer → seller). The facilitator must:
1. Verify the signed payload against payment requirements
2. Co-sign as the advertised **fee payer** (`/supported`)
3. Pay network fees and submit until `SUCCESS`
Requires `FACILITATOR_ACCOUNT_ID` + `FACILITATOR_PRIVATE_KEY` on a funded **ECDSA** account — separate from deployer/seller keys. Do not put that key in the resource-server process.
## Critical: Prices Are Tinybars
Payment requirements use tinybars. Convert in UIs with 8-decimal helpers; never float.
```ts
const TINYBAR_PER_HBAR = 100_000_000n;
// hbar "1.5" → 150_000_000n tinybars
```
## Resource Server Flow (paid resource)
1. Load access terms for the resource — if missing → 404
2. If free/public → return the resource
3. Else build payment requirements: `payTo` = seller Hedera account id, `amount` in tinybars, asset `0.0.0`, network (e.g. `hedera:testnet`)
4. No payment header → **402** with `PAYMENT-REQUIRED` header + JSON body
5. With payment header → `verifyPayment` then `settlePayment`; only on success return resource + `PAYMENT-RESPONSE`
```ts
const facilitator = new HTTPFacilitatorClient({ url: FACILITATOR_URL });
const server = new x402ResourceServer(facilitator)
.register(X402_NETWORK, new ExactHederaScheme());
await server.initialize(); // pulls fee-payer from /supported
```
## Client Flow
```ts
const first = await fetch(resourceUrl);
if (first.status === 402) {
const paymentRequired = httpClient.getPaymentRequiredResponse(...);
const payload = await httpClient.createPaymentPayload(paymentRequired);
const headers = httpClient.encodePaymentSignatureHeader(payload);
const paid = await fetch(resourceUrl, { headers });
// processResponse → resource + settle receipt
}
```
Machine-to-machine clients use a key-based signer instead of a browser wallet.
## Checklist
- [ ] Resource server has no facilitator private key
- [ ] Client and server share the same `X402_NETWORK` (e.g. `hedera:testnet`)
- [ ] Amounts are tinybars; asset id is `0.0.0`
- [ ] 402 challenge → signed retry → verify → settle → resource only after success
- [ ] Fee-payer account is ECDSA and funded for network fees
- [ ] Facilitator `/health` OK before testing paid requests
- [ ] `payTo` is a Hedera account id string (e.g. `0.0.1234`), not an EVM address
## References
- [references/examples.md](references/examples.md) — resource server wiring, client retry loop, tinybar helpers
- [references/facilitator.md](references/facilitator.md) — endpoints, env vars, fee-payer role
- [x402 docs](https://docs.x402.org)
- [`@x402/hedera`](https://www.npmjs.com/package/@x402/hedera)
© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills