exact и upto. Они решают разные проблемы тарификации.
exact
exact означает, что цена запроса может быть определена до его отправки в целевой API. Сумма, подписанная клиентом, является окончательной суммой списания.
Подходит для:
- Генерации изображений с фиксированной ценой;
- Создания видео задач с фиксированной ценой;
- Поисковых или инструментальных API с фиксированной ценой;
- Оплаты заказов.
exact использует USDC EIP-3009 TransferWithAuthorization:
/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 составляет
95215atomic USDC, клиент подписывает на этот лимит. - После фактического ответа модели списывается только
3atomic 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 и остаются согласованными при подписании клиентом:
Распространенные ошибки и способы их устранения:

