Skip to main content
Ace Data Cloud X402 в настоящее время использует два типа схем: exact и upto. Они решают разные проблемы тарификации.

exact

exact означает, что цена запроса может быть определена до его отправки в целевой API. Сумма, подписанная клиентом, является окончательной суммой списания. Подходит для:
  • Генерации изображений с фиксированной ценой;
  • Создания видео задач с фиксированной ценой;
  • Поисковых или инструментальных API с фиксированной ценой;
  • Оплаты заказов.
EVM exact использует USDC EIP-3009 TransferWithAuthorization:
Facilitator на этапе /verify проверяет подпись и сумму, на этапе /settle отправляет эту авторизацию в блокчейн.

upto

upto означает, что клиент авторизует максимальный лимит, Ace Data Cloud рассчитывает по фактическому использованию после завершения запроса, фактическое списание не может превышать лимит. Подходит для:
  • Дополнения чата: окончательная цена зависит от токенов prompt и completion;
  • Потоковых ответов: реальная длина вывода известна только после завершения;
  • Будущих API с постфактумным измерением.
upto использует Permit2 PermitWitnessTransferFrom. Подписанная клиентом сумма не является фиксированной передачей, а представляет собой авторизацию с лимитом и свидетелем:
permitted.amount является лимитом, не обязательно равным окончательному списанию. Gateway на этапе /record преобразует фактическое использование в amount и передает Facilitator. Facilitator разрешает расчет только при amount <= permitted.amount. Результат выполнения программы Base upto:
Объяснение:
  • Возвращенный лимит авторизации в 402 составляет 95215 atomic USDC, клиент подписывает на этот лимит.
  • После фактического ответа модели списывается только 3 atomic USDC, транзакция в блокчейне доступна для проверки на BaseScan.
  • Этот результат подчеркивает ключевую разницу upto: подписанная сумма является лимитом, расчет в блокчейне может быть меньше лимита.
  • Если фактическое использование превышает лимит, Facilitator должен отклонить расчет, клиенту необходимо повторно авторизовать на более высокий лимит.
upto в настоящее время доступен только на Base. SKALE предлагает только exact, если вам нужно постфактумное измерение, используйте Base.

Почему требуется Permit2 approve

upto в конечном итоге управляется прокси x402 через Permit2 для получения USDC из кошелька для платежей. Перед первым использованием кошелек для платежей должен предоставить Permit2 одно разрешение ERC-20. Python CLI:
Программный способ:
После завершения авторизации каждый запрос все равно требует подписания нового upto envelope, так как nonce, deadline, witness и лимит суммы различаются.

Нулевая сумма расчета

upto поддерживает ситуацию, когда фактическая сумма равна 0. Например, если целевой API не смог успешно сгенерировать подлежащую оплате сумму, Gateway может передать amount = "0". Facilitator вернет успешный ответ, но не выполнит транзакцию в блокчейне. Это позволяет избежать проблемы “запрос не удался, но все равно списание в блокчейне”.

Рекомендации по выбору

Если вы не уверены, что выбрать, сначала используйте поведение по умолчанию SDK; SDK выберет требование к оплате, соответствующее сети, возвращаемой сервером.

Проверочный список Base upto

При подключении или отладке убедитесь, что следующие параметры получены из одного и того же ответа 402 и остаются согласованными при подписании клиентом: Распространенные ошибки и способы их устранения: