API генерации через x402: оплата за запрос без регистрации
Генерация изображений, видео и речи по протоколу x402: агент платит в USDC на Base за каждый вызов без регистрации и API-ключей. Цены от $0.03.

x402 — это открытый платежный протокол, превращающий давно забытый HTTP-код 402 в работающий пейволл: сервер отвечает на запрос статусом 402 Payment Required со структурированными условиями оплаты, клиент подписывает авторизацию перевода в стейблкоинах, повторяет запрос и получает результат. Без регистрации аккаунта, без API-ключей и без ежемесячных подписок. Coinbase передала протокол в Linux Foundation в апреле 2026 года, и к моменту начала операционной деятельности x402 Foundation в консорциум вошли 40 организаций, среди которых AWS, Google, Stripe, Visa и Mastercard. Это больше не нишевый криптоэксперимент.
Короткий ответ: эндпоинт x402 сервиса BananaBanana находится по адресу https://bananabanana.pro/api/x402. Отправьте POST с { "tool": "...", "arguments": {...} }, получите ответ 402 с точной стоимостью для переданных параметров, оплатите ее в USDC на сети Base и повторите запрос. Генерация изображений стоит от $0.03, видео — от $0.30, синтез речи — $0.01 за каждые 200 символов. Деньги за изображения и речь списываются только тогда, когда файл действительно создан.

Последнее предложение — это как раз та деталь, которую часто упускают в статьях про x402, поэтому мы разберем ее подробно. Списать средства просто. Не списывать оплату за неудачные генерации — вот где архитектура становится по-настоящему интересной.
Как устроен процесс оплаты
Всего четыре шага, причем три из них ваш HTTP-клиент выполняет автоматически.
- Агент отправляет обычный POST-запрос с JSON. Заголовков оплаты нет.
- Сервер возвращает
402с массивомaccepts. Требование платежа содержит точную сумму в неделимых единицах (atomic units), адрес получателя, контракт USDC, сеть и срок действия. - Клиент подписывает разрешение на перевод по стандарту EIP-3009 на указанную сумму и передает его в Base64 в заголовке
X-PAYMENT. - Тот же запрос отправляется повторно, теперь уже с заголовком. Сервер передает подпись фасилитатору для проверки, выполняет генерацию и после этого запрашивает у фасилитатора исполнение транзакции on-chain.
Подпись — это не транзакция в блокчейне. Это оффчейн-авторизация, которая превращается в реальный перевод только при отправке в сеть. Именно поэтому возможна двухфазная схема: сначала валидация, затем генерация, в самом конце — расчет.
Практический нюанс: спецификация v2 переименовывает заголовки в PAYMENT-SIGNATURE и PAYMENT-RESPONSE, но большинство существующих клиентов все еще используют X-PAYMENT, поэтому мы поддерживаем этот заголовок. Если вы работаете через официальный TypeScript SDK, эта разница для вас незаметна.

Сколько стоит один вызов
Цены рассчитываются за генерацию и сообщаются до того, как вы что-либо подписываете. Итоговая сумма зависит от параметров (изображение 4K стоит дороже 1K), поэтому ответ 402 оценивает именно ваш конкретный запрос.
| Инструмент | Модель | Стоимость |
|---|---|---|
generate_image | Nano Banana 2 Lite | $0.03 (только 1K) |
generate_image | Nano Banana 2 | $0.03 – $0.13 (от 512 до 4K) |
generate_image | Nano Banana Pro | $0.11 – $0.20 (от 1K до 4K) |
generate_video | Gemini Omni Flash | $0.10 за секунду, от 3 до 10 с, звук включен |
generate_video | Семейство Veo 3.1 | $0.10 – $4.40 за клип |
generate_speech | Gemini Flash TTS | $0.01 за начатые 200 символов |
Трехсекундный клип в Omni со звуком обойдется в $0.30. Это самый доступный вариант реального видеогенератора в списке. Veo дает более высокую детализацию, но для 8-секундного ролика в 1080p со звуком стоимость возрастает на порядок — для чернового варианта это не всегда оправдано.
Актуальные тарифы можно получить напрямую: GET https://bananabanana.pro/api/x402 бесплатно возвращает полный каталог без необходимости оплаты.

Два запроса: полный цикл
Вот наглядный пример работы через curl, за исключением шага подписи (эту часть берет на себя ваша клиентская библиотека x402).
# 1. Запрос стоимости. Без заголовка оплаты: получаем расчет.
curl -s -X POST https://bananabanana.pro/api/x402 \
-H 'Content-Type: application/json' \
-d '{"tool":"generate_image","arguments":{"prompt":"a paper boat on still water at dawn","model":"nano-banana-pro","resolution":"2048"}}'
{
"x402Version": 1,
"error": "Payment required: $0.11 for generate_image.",
"accepts": [{
"scheme": "exact",
"network": "base",
"maxAmountRequired": "110000",
"resource": "https://bananabanana.pro/api/x402",
"payTo": "0x7c0e9abd1c48380e27ab5bfced1be54f23ce773f",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"maxTimeoutSeconds": 300,
"extra": { "name": "USD Coin", "version": "2" }
}]
}

Подписываем параметры, отправляем запрос с заголовком и во втором ответе получаем готовый файл:
{
"paid_usd": 0.11,
"result": {
"status": "completed",
"images": [{ "url": "https://bananabanana.pro/api/files/..." }]
}
}
Две важные детали для тех, кто строит свой сервер x402: поле maxAmountRequired указывается в неделимых единицах. У USDC 6 знаков после запятой, поэтому $0.11 превращается в 110000. Поле extra.name должно строго совпадать с тем, что возвращает метод name() смарт-контракта USDC (в Base mainnet это USD Coin, а в Base Sepolia — USDC), поскольку это значение используется при расчете domain separator в EIP-712. Несовпадение приведет к ошибке проверки подписи без внятного описания причины.
Генерация видео: предоплата и возвратные токены
Изображения и речь генерируются в рамках одного HTTP-запроса. Схема простая: проверка подписи → генерация → расчет. Списание происходит только при успешном создании файла. Если запрос отклонен фильтром контента или возник таймаут, подпись просто не отправляется в блокчейн, и плательщик ничего не теряет.
С видео так поступить нельзя: рендер в Veo или Omni занимает от 1 до 10 минут. Держать открытое HTTP-соединение невозможно, а запущенный процесс генерации на стороне Google нельзя отменить (их метод interactions.cancel возвращает 501 UNIMPLEMENTED). Поэтому для видео оплата списывается сразу, возвращается job_id, а результат опрашивается через бесплатный эндпоинт.
Что происходит, если уже оплаченный видеоклип отклоняется модерацией?
Вы получаете возвратный токен (refund token) на полную сумму вида bb_rf_…, действующий 90 дней. Его можно передать в параметре refund_token при любом следующем вызове. Если клип за $1.30 был отклонен фильтром безопасности, следующий запрос обойдется на $1.30 дешевле. Если стоимость новой задачи меньше номинала токена, остаток возвращается новым токеном.
Это не on-chain возврат в USDC, и мы говорим об этом прямо. Наш сервер не хранит приватных ключей и физически не может инициировать исходящие переводы — только принимать или отклонять входящие. Для безопасности сервиса x402 отсутствие приватных ключей на сервере — это преимущество.
Этот ролик сгенерирован через описанный эндпоинт за $0.30: модель Gemini Omni Flash, длительность 3 секунды, промпт — непрерывный кадр с растворением чернил в воде в стеклянном резервуаре с мягким боковым светом и низким гулом помещения. Звуковая дорожка синтезируется самой моделью.
Как AI-агент находит эндпоинт
Если агент знает точный URL, автообнаружение не требуется. Для остальных агентов сервис публикует манифест по адресу /.well-known/x402 (и /.well-known/x402.json).
Манифест перечисляет каждый инструмент как отдельный ресурс с параметрами оплаты, сетью в формате CAIP-2, адресом получателя и фасилитатором. В блоке accepts манифеста указана минимальная стоимость инструмента, а не максимальная. Подписать платеж вслепую по манифесту все равно нельзя, так как точная цена зависит от параметров, но публикация минимальной цены защищает агентов от случайных переплат.
Каталоги также проверяют эндпоинты пустыми POST-запросами. Наш сервер возвращает на них 402 с подсказкой по вызову инструментов.

Что выбрать: x402 или аккаунт?

Оба пути ведут к одним и тем же генераторам. Выбор зависит от архитектуры вашего агента.
| Параметр | x402 | Аккаунт (MCP или веб) |
|---|---|---|
| Настройка | Кошелек с балансом | Регистрация по email, затем API-ключ или OAuth |
| Оплата вызова | Подпись, оплата, готово | Списание с предоплаченного баланса |
| Бонусы на депозит | Нет | 5% от $50+, 10% от $100+, еще 10% по промокоду |
| История генераций | Не сохраняется | Полная история, сохранение job ID |
| Редактирование видео | Недоступно | edit_video, пошаговое уточнение в диалоге |
| Для чего подходит | Разовые вызовы, полная автономия агента | Постоянная работа, контроль расходов, итерации |
Главное отличие — бонусная программа. Пополнение на $100 с промокодом дает $120 на баланс (эффективная скидка 17%), чего в x402 нет из-за отсутствия баланса аккаунта. С другой стороны, автономному агенту с кошельком не нужен email: он может начать генерацию за один раунд-трип.
Если вам удобнее работать через аккаунт, наш MCP-сервер поддерживает Claude Code, Cursor, VS Code и другие клиенты Streamable HTTP, а генератор доступен прямо в браузере. Те же модели, те же цены, просто другой способ входа.
Частые вопросы
Нужен ли аккаунт Coinbase для оплаты?
Нет. Подходит любой EVM-кошелек с USDC на сети Base. Расчет проводит фасилитатор, регистрироваться у него тоже не требуется.
Что происходит, если генерация заблокирована фильтром безопасности?
Для изображений и речи средства не списываются: транзакция проводится только после создания файла. Для видео выдается возвратный токен на полную сумму, применимый к следующим запросам.
Какие сети и токены поддерживаются?
USDC в основной сети Base (Base mainnet), схема exact. Манифест на /.well-known/x402 содержит идентификатор сети CAIP-2 и адрес смарт-контракта токена.
Можно ли отредактировать видео, сгенерированное через x402?
Через x402 — нет. Редактирование привязано к генерациям внутри аккаунта (edit_video в MCP). Через x402 доступна генерация новых видео с нуля.
Сколько действует выставленная цена?
Окно для подписи составляет 300 секунд (параметр maxTimeoutSeconds). Сами базовые цены соответствуют тарифам сайта и не меняются во время сессии.
Попробуйте сгенерировать изображение за $0.03 через рабочий эндпоинт. Если ваш клиент умеет подписывать разрешения EIP-3009, до готового изображения вас отделяют буквально четыре строчки кода.