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 tokens та completion tokens;
  • Потокових відповідей: реальна довжина виходу стає відомою лише після завершення;
  • Майбутніх API з постфіксним вимірюванням.
upto використовує Permit2 PermitWitnessTransferFrom. Клієнт підписує не фіксований переказ, а авторизацію з лімітом, що містить свідка:
permitted.amount є лімітом, не обов’язково остаточним списанням. Gateway на етапі /record перетворює фактичне використання на amount і передає його Facilitator. Facilitator дозволяє розрахунок лише для amount <= permitted.amount. Результат виконання програми базового upto:
Пояснення:
  • 402 повертає авторизаційний ліміт 95215 atomic USDC, клієнт підписує за цим лімітом.
  • Модель фактично відповідає лише за 3 atomic USDC, транзакція в ланцюгу вже доступна для перевірки на BaseScan.
  • Цей результат демонструє ключову різницю upto: підписана сума є лімітом, а розрахунок в ланцюгу може бути меншим за ліміт.
  • Якщо фактичне використання перевищує ліміт, Facilitator повинен відмовити в розрахунку, клієнт повинен повторно авторизувати за вищим лімітом.
upto наразі доступний лише на Base. SKALE пропонує лише exact, якщо вам потрібно постфіксне вимірювання, будь ласка, використовуйте Base.

Чому потрібен Permit2 approve

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

Нульове списання

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

Рекомендації щодо вибору

Якщо ви не впевнені, що вибрати, спочатку використовуйте стандартну поведінку SDK; SDK вибере вимогу оплати, що відповідає мережі, повернутій сервером.

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

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