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

