@acedatacloud/x402-client odpowiada za podpisywanie nagłówka żądania PAYMENT-SIGNATURE w przypadku napotkania 402 Payment Required.
Adresy źródła i pakietów:
- Repozytorium SDK: https://github.com/AceDataCloud/SDK
- Repozytorium 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
Instalacja zależności
@solana/web3.js:
@acedatacloud/sdki@acedatacloud/x402-clientmożna zainstalować z npm i zaimportować do Node.js.etherssłuży do podpisywania danych typu EVM,@solana/web3.jssłuży do budowy transakcji Solana.
Przykład Base lub SKALE
W przeglądarce można bezpośrednio używaćwindow.ethereum. W Node.js można użyć ethers.Wallet, aby opakować styl EIP-1193 provider.
- Program najpierw wywołuje 402 bez autoryzacji, następnie handler podpisuje
PAYMENT-SIGNATURE, a na końcu ponownie próbuje z tym samym ciałem żądania. content ADC_TS_SDK_X402_OKto stały ciąg zwracany przez model, co oznacza, że ponowne żądanie trafiło do docelowego API.id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGATto identyfikator odpowiedzi chat completion, który można wykorzystać do porównania z zapisami na platformie.- Wyniki rozliczenia na łańcuchu można zobaczyć w E2E Weryfikacja i Rozwiązywanie Problemów.
network na skale. Zaletą SKALE jest niski koszt gazu transakcji na łańcuchu; zaletą Base jest większa płynność USDC i bardziej dojrzałe wsparcie portfeli, a tylko Base oferuje pomiar upto po transakcji.
Uwaga: SKALE obecnie obsługuje tylko exact. Jeśli w network: 'skale' przekażesz preferScheme: 'upto', handler nie znajdzie upto i cicho przełączy się na exact, nie zgłaszając błędu — scenariusze takie jak chat completion, które są rozliczane na podstawie tokenów, będą w związku z tym rozliczane według stałej stawki, a nie rzeczywistego zużycia. Aby uzyskać pomiar po transakcji, użyj Base.
Przykład portfela przeglądarki
Podczas korzystania z MetaMask, Coinbase Wallet lub WalletConnect w aplikacji frontendowej, zazwyczaj bezpośrednio przekazuje się provider EIP-1193:Przykład Solana
Solana używa SPL USDCTransferChecked. Przekazany adapter portfela musi udostępniać publicKey i signAndSendTransaction.
exact, nie obsługuje upto. Jeśli API zwróci wiele accepts, handler wybierze tę, która ma network = 'solana'.
Ścieżka Solana została już zweryfikowana na tym samym publicznym API, gdzie płatne ponowne próby mogą zwrócić HTTP 200 i ADC_SOLANA_E2E_OK. Publiczne zapytania RPC mogą być ograniczone, dlatego w tym dokumencie nie podano hasha transakcji Solana; w przypadku potrzeby rozliczenia na łańcuchu, proszę użyć własnego RPC Solana lub konsoli do rejestrowania potwierdzeń.
Wybór exact lub upto
Aktualny handler TypeScript wybierze pierwszy pasujący do sieci wymóg płatności zwrócony przez serwer. API Ace Data Cloud zazwyczaj umieszcza exact dla tej samej sieci przed upto, dlatego jeśli chcesz wyraźnie korzystać z pomiaru po transakcji, musisz przekazać preferScheme: 'upto'.
Przykład:
upto dla tej sieci, handler automatycznie przełączy się na pierwszy dostępny wymóg dla tej sieci, którym zazwyczaj jest exact.
upto wymaga jednorazowego zezwolenia Permit2. upto obecnie dostępne jest tylko na Base, dlatego wystarczy raz zezwolić na USDC Base:
upto zakończyło publiczną weryfikację API: HTTP 402 -> HTTP 200, transakcja rozliczeniowa to 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. Pełne wyjście znajduje się w opisie planu taryfowego.
Co zrobiło SDK
Transport@acedatacloud/sdk wykona handler płatności po otrzymaniu 402:
@acedatacloud/x402-client:
- Wybiera wymagania płatności dla docelowej sieci z
ctx.accepts. - Buduje podpis EVM EIP-712 lub transakcję transferu Solana w zależności od sieci.
- Serializuje envelope do Base64.
- Zwraca
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }. - SDK automatycznie powtarza żądanie z oryginalnym ciałem.

