@acedatacloud/x402-client відповідає за підписання заголовка запиту PAYMENT-SIGNATURE у разі отримання 402 Payment Required.
Джерело та адреса пакета:
- SDK репозиторій: https://github.com/AceDataCloud/SDK
- X402 Client репозиторій: https://github.com/AceDataCloud/X402Client
- npm SDK: https://www.npmjs.com/package/@acedatacloud/sdk
- npm X402 Client: https://www.npmjs.com/package/@acedatacloud/x402-client
Встановлення залежностей
@solana/web3.js:
@acedatacloud/sdkта@acedatacloud/x402-clientможуть бути встановлені з npm та імпортовані в Node.js.ethersвикористовується для підпису EVM typed data,@solana/web3.jsвикористовується для побудови транзакцій Solana.
Приклад для Base або SKALE
У браузері можна безпосередньо використовуватиwindow.ethereum. У Node.js можна обернути ethers.Wallet в provider стилю EIP-1193.
- Програма спочатку викликає 402 без аутентифікації, потім обробник підписує
PAYMENT-SIGNATURE, і нарешті повторює запит з тим же тілом. content ADC_TS_SDK_X402_OKє фіксованим рядком, який дійсно повертає модель, що свідчить про те, що повторний запит потрапив до цільового API.id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGATє ID відповіді на це chat completion, який можна використовувати для звірки з записами платформи.- Результати розрахунків в ланцюгу дивіться в E2E верифікація та усунення неполадок.
network на skale, щоб використовувати SKALE. Перевага SKALE полягає в низькій вартості газу для транзакцій в ланцюгу; перевага Base полягає в більш зрілій ліквідності USDC та підтримці гаманців, а також тільки Base пропонує upto післявимірювання.
Зверніть увагу: SKALE наразі підтримує лише exact. Якщо в network: 'skale' передати preferScheme: 'upto', обробник не знайде upto і тихо повернеться до exact, не видаючи помилок — сценарії, які вимірюються за токенами, такі як chat completion, будуть розраховані за фіксованою ціною, а не за реальним споживанням. Для післявимірювання використовуйте Base.
Приклад браузерного гаманця
При використанні MetaMask, Coinbase Wallet або WalletConnect у фронтенд-додатках зазвичай безпосередньо передається EIP-1193 provider:Приклад Solana
Solana використовує SPL USDCTransferChecked. Переданий гаманець адаптер має експонувати publicKey та signAndSendTransaction.
exact, не підтримує upto. Якщо API повертає кілька accepts, обробник вибирає той, що має network = 'solana'.
Шлях Solana на одному публічному API вже перевірено, що платний повтор може повернути HTTP 200 та ADC_SOLANA_E2E_OK. Публічний RPC запит може бути обмежений, тому в цій статті не вказується хеш транзакції Solana; для звірки в ланцюгу використовуйте свій власний Solana RPC або консоль для запису підтвердження.
Вибір exact або upto
Поточний TypeScript обробник вибирає першу відповідність вимоги оплати, повернуту сервером для мережі. API Ace Data Cloud зазвичай ставить exact для однієї мережі перед upto, тому якщо ви чітко хочете використовувати післявимірювання, потрібно передати preferScheme: 'upto'.
Приклад:
upto для цієї мережі, обробник автоматично повернеться до першої доступної вимоги для цієї мережі, зазвичай це exact.
upto вимагає одноразового дозволу Permit2. upto наразі доступний лише на Base, тому потрібно лише один раз дозволити USDC Base:
upto вже завершив публічну перевірку API: HTTP 402 -> HTTP 200, наступна транзакція settlement tx - 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. Повний вивід дивіться в описі тарифного плану.
Що зробив SDK
@acedatacloud/sdk транспорт виконає один раз payment handler при отриманні 402:
@acedatacloud/x402-client повертає handler, який:
- Вибирає payment requirement цільової мережі з
ctx.accepts. - Формує EVM EIP-712 підпис або транзакцію переказу Solana за мережею.
- Сериалізує envelope в Base64.
- Повертає
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }. - SDK автоматично повторно намагається з оригінальним тілом запиту.

