# pay-with-app

Закрывает HTTP 402 от мерчантов OKX на X Layer: проверяет баланс, при нехватке добирает токены через Uniswap Trading API и подписывает платёж.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 524 установки · ★ 235
- Автор: uniswap
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Uniswap/uniswap-ai/tree/HEAD/packages/plugins/uniswap-trading/skills/pay-with-app/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/pay-with-app

## Что делает

Скилл ведёт всю цепочку оплаты по Agent Payments Protocol (APP) от OKX на сети X Layer (chain 196). Сервер отдаёт 402 с требованием платежа, скилл разбирает этот JSON, убеждается, что сеть действительно X Layer, и смотрит, хватает ли на кошельке запрошенного актива — обычно это USDT0. Если не хватает, маршрут и бридж до нужного токена идут через Uniswap Trading API. Дальше подпись EIP-3009 `TransferWithAuthorization`, сборка заголовка `X-PAYMENT` и повтор исходного запроса.

Поддерживается только схема `exact` (Pay Per Use, у OKX это Instant Payment). Схемы `upto` и `batch-settlement`, а также escrow, session и Batch Payment в этой версии не обрабатываются — скилл отказывает по ним сразу. Ненулевая сумма обязательна: вызов с `maxAmountRequired` равным нулю отклоняется как ошибка конфигурации мерчанта, потому что фасилитатор OKX такое не рассчитает.

Что подготовить заранее: переменные `PRIVATE_KEY` и `UNISWAP_API_KEY` (вторая нужна, только если кошелёк придётся пополнять кросс-чейн маршрутом), установленные `jq` и `cast` из Foundry, Node 18+ и пакет `viem` для подписи. Если `viem` не находится в рабочей директории, скилл спросит разрешение и поставит его в кэш `~/.cache/uniswap-pay-with-app/signer/`; при отказе просто остановится до шага подписи. Ключ в репозиторий не коммитить — это прямой риск потерять средства.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Uniswap/uniswap-ai --skill pay-with-app -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/pay-with-app/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/pay-with-app/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Uniswap/uniswap-ai --skill pay-with-app -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/pay-with-app/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Uniswap/uniswap-ai --skill pay-with-app -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/pay-with-app/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Uniswap/uniswap-ai pay-with-app
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/pay-with-app/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Uniswap/uniswap-ai --skill pay-with-app -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Uniswap/uniswap-ai --path packages/plugins/uniswap-trading/skills/pay-with-app
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/pay-with-app/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Uniswap/uniswap-ai --skill pay-with-app -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Uniswap/uniswap-ai/tree/HEAD/packages/plugins/uniswap-trading/skills/pay-with-app/SKILL.md

## Когда брать
- разобрать 402-ответ и понять, какой токен и сколько требует мерчант
- проверить баланс кошелька в сети X Layer перед оплатой
- добрать USDT0 кросс-чейн маршрутом, когда на кошельке пусто
- подписать EIP-3009 авторизацию и повторить исходный запрос
- отклонить битую схему платежа до траты газа

## Примеры запросов агенту
- сервер вернул 402 на X Layer, оплати через pay-with-app
- у меня не хватает USDT0 для этого 402 — добери и заплати
- подпиши TransferWithAuthorization и повтори запрос к API

## Похожие
- [agents-pay](https://affpapa.org/nevibecode/skills/agents-pay.md) — скилл · 809 установок
- [pay-via-agent-wallet](https://affpapa.org/nevibecode/skills/pay-via-agent-wallet.md) — скилл · 797 установок
- [x402-payments](https://affpapa.org/nevibecode/skills/x402-payments.md) — скилл · 462 установки
- [okx-agent-payments-protocol](https://affpapa.org/nevibecode/skills/okx-agent-payments-protocol.md) — скилл · 13700 установок
- [agentwallet](https://affpapa.org/nevibecode/skills/agentwallet.md) — скилл · 2600 установок
- [agentic-gateway](https://affpapa.org/nevibecode/skills/agentic-gateway.md) — скилл · 1000 установок

Из того же набора: [uniswap/uniswap-ai](https://affpapa.org/nevibecode/by/uniswap/uniswap-ai.md) — 11 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
