@acedatacloud/x402-client si occupa di firmare l’intestazione della richiesta PAYMENT-SIGNATURE quando si incontra 402 Payment Required.
Indirizzi del codice sorgente e del pacchetto:
- Repository SDK: https://github.com/AceDataCloud/SDK
- Repository 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
Installazione delle dipendenze
@solana/web3.js:
@acedatacloud/sdke@acedatacloud/x402-clientpossono essere installati da npm e importati in Node.js.ethersè utilizzato per la firma dei dati tipizzati EVM,@solana/web3.jsè utilizzato per la costruzione delle transazioni Solana.
Esempio Base o SKALE
In un browser, è possibile utilizzare direttamentewindow.ethereum. In Node.js, è possibile utilizzare ethers.Wallet per incapsulare un provider in stile EIP-1193.
- Il programma prima attiva un 402 senza autenticazione, poi il gestore firma
PAYMENT-SIGNATURE, infine riprova con lo stesso corpo della richiesta. content ADC_TS_SDK_X402_OKè una stringa fissa restituita realmente dal modello, che indica che la richiesta ripetuta è entrata nell’API di destinazione.id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGATè l’ID della risposta di questa chat completion, utilizzabile per confrontare con i registri della piattaforma.- I risultati di regolamento on-chain possono essere visti in E2E verifica e risoluzione dei problemi.
network in skale per utilizzare SKALE. Il vantaggio di SKALE è il basso costo del gas per le transazioni on-chain; il vantaggio di Base è la liquidità USDC e il supporto per i wallet più maturi, e solo Base offre la misurazione posticipata upto.
Nota: attualmente SKALE supporta solo exact. Se si passa preferScheme: 'upto' sotto network: 'skale', il gestore non troverà upto e tornerà silenziosamente a exact, senza generare errori—scenari come la chat completion, che sono misurati per token, saranno quindi regolati a tariffa fissa, anziché in base all’uso reale. Per la misurazione posticipata, si prega di utilizzare Base.
Esempio di wallet del browser
Quando si utilizza MetaMask, Coinbase Wallet o WalletConnect in un’applicazione front-end, di solito si passa direttamente il provider EIP-1193:Esempio di Solana
Solana utilizza SPL USDCTransferChecked. L’adattatore wallet passato deve esporre publicKey e signAndSendTransaction.
exact, non supporta upto. Se l’API restituisce più accepts, il gestore selezionerà quello con network = 'solana'.
Il percorso Solana è stato verificato su una stessa API pubblica e il retry pagato può restituire HTTP 200 e ADC_SOLANA_E2E_OK. Le query RPC pubbliche potrebbero essere limitate, quindi in questo documento non viene fornito l’hash della transazione Solana; per la riconciliazione on-chain, si prega di utilizzare il proprio RPC Solana o registrare la conferma nella console.
Scegliere exact o upto
L’attuale gestore TypeScript selezionerà il primo requisito di pagamento corrispondente alla rete restituito dal server. L’API di Ace Data Cloud di solito posiziona exact della stessa rete prima di upto, quindi se si desidera esplicitamente utilizzare la misurazione posticipata, è necessario passare preferScheme: 'upto'.
Esempio:
upto per quella rete, il gestore tornerà automaticamente al primo requisito disponibile per quella rete, che di solito è exact.
upto richiede un’autorizzazione unica Permit2. upto è attualmente disponibile solo su Base, quindi è necessario autorizzare solo una volta l’USDC di Base:
upto ha completato la verifica API pubblica: HTTP 402 -> HTTP 200, la transazione di settlement posteriore è 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. L’output completo è disponibile nella descrizione del piano tariffario.
Cosa fa l’SDK
Il transport di@acedatacloud/sdk eseguirà un payment handler quando riceve un 402:
@acedatacloud/x402-client farà:
- Selezionare il payment requirement della rete target da
ctx.accepts. - Costruire una firma EVM EIP-712 o una transazione di trasferimento Solana in base alla rete.
- Serializzare l’envelope in Base64.
- Restituire
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }. - L’SDK riproverà automaticamente con il corpo della richiesta originale.

