@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 типизированной подписи,@solana/web3.jsиспользуется для построения транзакций Solana.
Пример для Base или SKALE
В браузере можно напрямую использоватьwindow.ethereum. В Node.js можно обернуть ethers.Wallet в провайдер в стиле EIP-1193.
- Программа сначала вызывает 402 без аутентификации, затем обработчик выдает
PAYMENT-SIGNATURE, и, наконец, повторяет с тем же телом запроса. content ADC_TS_SDK_X402_OK— это фиксированная строка, возвращаемая моделью, что указывает на то, что повторный запрос попал в целевой API.id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGAT— это ID ответа на этот чат-комплешн, который можно использовать для сопоставления с записями платформы.- Результаты расчетов в блокчейне см. E2E 验证与故障排查.
network на skale, чтобы использовать SKALE. Преимущество SKALE заключается в низкой стоимости газа для транзакций в блокчейне; преимущество Base заключается в более зрелой ликвидности USDC и поддержке кошельков, и только Base предоставляет upto пост-измерение.
Обратите внимание: в SKALE в настоящее время только exact. Если передать preferScheme: 'upto' при network: 'skale', обработчик не найдет upto и тихо вернется к exact, не выдавая ошибку — такие сценарии, как чат-комплешн, которые измеряются по токенам, будут рассчитываться по фиксированной цене, а не по фактическому использованию. Для пост-измерения используйте Base.
Пример браузерного кошелька
При использовании MetaMask, Coinbase Wallet или WalletConnect в фронтенд-приложении обычно просто передается провайдер EIP-1193:Пример 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, поэтому необходимо сделать одно разрешение для Base USDC:
upto завершил публичную проверку API: HTTP 402 -> HTTP 200, последующая транзакция расчета 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. Полный вывод см. в описании тарифного плана.
Что делает SDK
Транспорт@acedatacloud/sdk выполнит обработчик платежей при получении 402:
@acedatacloud/x402-client, будет:
- Выбирать требование платежа для целевой сети из
ctx.accepts. - Конструировать EVM EIP-712 подпись или транзакцию перевода Solana в зависимости от сети.
- Сериализовать конверт в Base64.
- Возвращать
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }. - SDK автоматически повторит запрос с оригинальным телом.

