Skip to main content
Ace Data Cloud X402 наразі здійснює розрахунки в USDC та підтримує два типи мереж: EVM і Solana. Спосіб підпису, адреса активу, поведінка gas і відповідні сценарії відрізняються залежно від мережі, тому перед інтеграцією потрібно спочатку обрати мережу.

Ідентифікатори мереж використовують CAIP-2

accepts[].network у x402 v2 є ідентифікатором CAIP-2, а не скороченою назвою на кшталт base чи skale. Клієнт повинен порівнювати мережі за рядком CAIP-2:

Матриця підтримки

upto наразі доступний лише в Base. Фактично доступні варіанти визначаються полем accepts, яке повертає API. Ви також можете переглянути Facilitator:
Відповідь Facilitator /supported:
Пояснення результатів:
  • exact для Base, SKALE і Solana є шляхом оплати з фіксованою сумою.
  • Лише Base надає шлях післяоплатного вимірювання upto, який залежить від Permit2 approve.
  • extra.facilitatorAddress у записі upto — це адреса, яку клієнт повинен записати у witness під час підписання; вона має збігатися зі значенням, повернутим сервером.

Base

Base використовує офіційний контракт USDC:
У схемі exact клієнт підписує EIP-712 TransferWithAuthorization. Вміст підпису включає:
  • from: адресу гаманця платника
  • to: адресу отримання Ace Data Cloud
  • value: суму цього платежу
  • validAfter / validBefore: часовий проміжок дії підпису
  • nonce: випадковий nonce розміром 32 байти
Після перевірки підпису Facilitator викликає в мережі transferWithAuthorization USDC для завершення переказу. Base є найбільш рекомендованою мережею для офіційної інтеграції, особливо для післяоплатного вимірювання upto, оскільки екосистема Permit2, USDC і гаманців є більш зрілою. Приклад результату верифікації Base exact:
Пояснення результатів:
  • API paid retry повертає вміст моделі ADC_BASE_E2E_OK.
  • Ончейн-транзакцію вже можна перевірити в BaseScan, номер блоку — 46726299.
  • 95215 atomic USDC відповідає 0.095215 USDC та є фактичною сумою розрахунку за цей виклик API.
Результат виконання програми оплати замовлення через Base exact:
Пояснення результатів:
  • Кінцевий статус замовлення на платформі — Finished.
  • pay_id замовлення записується в той самий хеш транзакції Base.
  • 1200000 atomic USDC відповідає 1.2 USDC та є історичною фактично сплаченою сумою цього замовлення на 10 Credits за старою політикою; нові замовлення більше не отримують додаткову знижку за спосіб оплати X402, а конкретна сума підпису визначається відповіддю 402 цього разу.

SKALE

SKALE використовує bridged USDC, а спосіб підпису подібний до Base — також EIP-3009. Вона підходить для EVM-сценаріїв оплати з низькою вартістю gas; фактичні виклики все одно визначаються полем accepts, яке повертає API. Типовий accepts для SKALE 402 містить:
SKALE наразі надає лише exact. Якщо вам потрібне післяоплатне вимірювання, використовуйте Base upto. Приклад результату верифікації SKALE exact:
Пояснення результатів:
  • API paid retry повертає вміст моделі ADC_SKALE_E2E_OK。
  • Транзакцію вже можна знайти в SKALE explorer, номер блоку — 1969317。
  • Сума розрахунку цього платежу exact становить 0.095215 USDC。

Solana

Solana використовує SPL USDC TransferChecked。Клієнт створює транзакцію переказу, підписує та надсилає її, після чого поміщає підпис транзакції або серіалізовану транзакцію в envelope PAYMENT-SIGNATURE。 Особливості Solana:
  • використовується Solana wallet adapter або base58 secret key;
  • активом є Solana USDC mint;
  • наразі підтримується лише exact;
  • Facilitator перевіряє mint, destination, authority та amount інструкції transfer。
Якщо використовується режим wallet fee payer, гаманець безпосередньо надсилає транзакцію, а Facilitator відповідає за підтвердження транзакції та повернення результату settlement。 Приклад результату перевірки Solana exact:
Пояснення результату:
  • paid retry вже повернув HTTP 200, а модель вивела ADC_SOLANA_E2E_OK。
  • Під час запиту on-chain signature через публічний RPC можна зіткнутися з rate limiting。
  • Оскільки публічні RPC-запити можуть бути обмежені, Solana explorer тут не вказано。Якщо потрібна сувора звірка, використовуйте власний Solana RPC або записи settlement на стороні платформи для підтвердження підпису транзакції。

Як обрати

Незалежно від обраного ланцюга, не хардкодьте ціну в клієнті。Ціна визначається значенням accepts[].maxAmountRequired, яке повертає сервер。