Оплата API в USDC: как через X402 и кошелёк экономить 5% на каждом запросе к Ace Data Cloud

Разработчики, работающие с несколькими моделями (GPT, Claude, Gemini, Midjourney, Suno, Flux и другими) через единый API, рано или поздно упираются в вопрос расчётов: банковская карта, комиссии эквайринга, задержки конвертации. Ace Data Cloud поддерживает альтернативный способ оплаты заказов — расчёт в USDC по протоколу X402, с ончейн-подтверждением в сетях Solana и Base. В этой статье разберём, как это устроено технически и как получить скидку 5% при оплате в USDC.

Что такое X402 и зачем он нужен

X402 — это протокол ончейн-оплаты, построенный поверх HTTP-статуса 402 Payment Required. Когда клиент обращается к API без токена оплаты, сервер возвращает 402 и объект accepts с параметрами, необходимыми для подписи транзакции: сумму, адрес актива USDC, идентификатор сети (в формате CAIP-2) и данные фасилитатора. После подписи клиент повторяет запрос с заголовком PAYMENT-SIGNATURE, и сервер выполняет верификацию и расчёт.

У X402 в Ace Data Cloud два независимых применения:

  • Оплата отдельных API-вызовов «по факту» без предварительного пополнения баланса — полезно для одноразовых интеграций или тестов.
  • Оплата заказов в консоли (покупка пакетов, пополнение баланса аккаунта) — именно этот сценарий даёт скидку 5% при оплате в USDC.

Классический сценарий: пополнение баланса и оплата в USDC

Базовая модель платформы — один endpoint, множество моделей, списание по факту использования с баланса. Пополнить баланс можно двумя способами: обычной картой (Stripe и другие способы) или через X402-транзакцию в USDC. При выборе оплаты в USDC заказ автоматически получает скидку 5% от номинала — так платформа стимулирует расчёты без международной банковской карты, что особенно удобно для разработчиков без доступа к карточным платёжным системам.

Порядок действий такой:

  • В консоли создаётся заказ на покупку пакета или пополнение баланса приложения.
  • Для заказа запрашивается платёжная сессия с методом X402.
  • Кошелёк с USDC подписывает транзакцию в выбранной сети — поддерживаются Solana и Base.
  • После подтверждения транзакции ончейн статус заказа переходит в Finished, а баланс приложения пополняется с учётом скидки.

Управлять заказами можно через раздел https://platform.acedata.cloud/console/coin, а сами приложения и токены — в https://platform.acedata.cloud/console/applications.

Минимальный запрос и структура accepts

Если запрос отправлен без оплаты, сервер вернёт 402 с телом, где перечислены доступные варианты расчёта. Пример через curl:

curl -i -X POST "https://api.acedata.cloud/mj/imagine" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a cyberpunk city at night, ultra detailed"
  }'

В ответе HTTP 402 будет объект accepts, содержащий network (в формате CAIP-2, например eip155:8453 для Base или solana:5eykt4... для Solana), asset — адрес контракта или mint USDC, а также maxAmountRequired — максимальную сумму для подписи текущего запроса. Важно ориентироваться именно на значения из живого ответа API, а не копировать примеры из документации — суммы и адреса контрактов могут отличаться в зависимости от сети и типа биллинга.

exact и upto: два режима биллинга

В X402 предусмотрены две схемы:

  • exact — фиксированная сумма, известная заранее. Подходит для оплаты заказов в консоли и для API с постоянной ценой за вызов.
  • upto — расчёт по факту использования (post-measurement), когда итоговая стоимость известна только после ответа модели, например при чат-комплишенах с переменной длиной генерации. Подписывается верхняя граница (ceiling), а списывается фактическая сумма — это видно из типового расчёта: сигнатура на потолок в 95215 атомарных единиц USDC при фактическом списании 3 атомарных единиц.

На момент публикации upto поддерживается только в сети Base; для него необходимо, чтобы кошелёк заранее выдал разрешение Permit2 на токен USDC в этой сети — иначе API вернёт ошибку PERMIT2_ALLOWANCE_REQUIRED.

Пример на Python

Официальный Python SDK автоматически обрабатывает первый неоплаченный запрос, разбирает 402, вызывает платёжный обработчик и повторяет запрос с подписью:

import os
from acedatacloud import Client
from acedatacloud_x402 import X402PaymentHandler

client = Client(
    base_url="https://api.acedata.cloud",
    payment_handler=X402PaymentHandler(
        private_key=os.environ["WALLET_PRIVATE_KEY"],
        network="base",           # или "solana"
        prefer_scheme="upto",     # опционально, для post-measurement API
    ),
)

response = client.post(
    "/mj/imagine",
    json={"prompt": "a cyberpunk city at night, ultra detailed"},
)

print(response.status_code)
print(response.json())

SDK сам обработает переход от 402 к 200: получит accepts, соберёт и подпишет платёжную нагрузку, вложит заголовок PAYMENT-SIGNATURE и повторит вызов. Разработчику нужно только подготовить кошелёк с USDC на выбранной сети и указать приватный ключ через переменную окружения — никогда не храните ключи в коде.

Проверка публичных эндпоинтов перед интеграцией

Перед тем как встраивать X402 в продакшен, полезно свериться с двумя публичными точками:

  • https://x402.acedata.cloud/.well-known/x402 — документ обнаружения протокола со ссылками на спецификации.
  • https://facilitator.acedata.cloud/supported — список сетей и схем, поддерживаемых текущим фасилитатором.

Быстрая проверка curl-ом:

curl -sS "https://x402.acedata.cloud/.well-known/x402" | jq .
curl -sS "https://facilitator.acedata.cloud/supported" | jq .

Итог

Оплата в USDC через X402 закрывает сразу две задачи: разработчик получает предсказуемый ончейн-расчёт без международной банковской карты, а платформа даёт скидку 5% на заказы, оплаченные в USDC. Для разовых вызовов подходит прямой 402-флоу с подписью запроса, для регулярной работы удобнее один раз пополнить баланс через оплату заказа в консоли и дальше списывать средства по мере использования моделей — GPT, Claude, Gemini, Midjourney, Suno, Flux и десятков других — через единый endpoint https://api.acedata.cloud.

Подробности по интеграции, включая TypeScript и Python SDK, схемы exact/upto и работу с фасилитатором, смотрите в разделе документации: https://platform.acedata.cloud/documents. Общий обзор платформы и локализованная версия для русскоязычных разработчиков — на https://platform.acedata.cloud/ru.

Comments

Popular posts from this blog

Artistic QR Code API Integration Guidance

Подключаем Codex CLI к Ace Data Cloud: пошаговая настройка через единый API