Skip to main content
TypeScript är ett av de mest rekommenderade sätten att integrera med Ace Data Cloud X402. Den officiella SDK:n ansvarar för vanliga API-anrop, uppgiftspolling, felhantering och automatisk omförsök; @acedatacloud/x402-client ansvarar för att signera PAYMENT-SIGNATURE begärningshuvudet när 402 Payment Required inträffar. Källkod och paketadress:

Installera beroenden

Om du använder Base eller SKALE, behöver du EVM-signaturkapacitet:
Om du använder Solana, behöver du Solana wallet adapter eller @solana/web3.js:
Utskrift av installation och importkontroll för ett rent npm-projekt:
Resultatförklaring:
  • @acedatacloud/sdk och @acedatacloud/x402-client kan båda installeras från npm och importeras av Node.js.
  • ethers används för EVM-typade data-signaturer, @solana/web3.js används för Solana-transaktionskonstruktion.

Base eller SKALE-exempel

I webbläsaren kan du direkt använda window.ethereum. I Node.js kan du använda ethers.Wallet för att paketera en EIP-1193-stil provider.
Resultatet av att köra detta exempelprogram:
Resultatförklaring:
  • Programmet utlöser först en 402 utan autentisering, sedan signerar handler PAYMENT-SIGNATURE, och slutligen försöker det igen med samma begäran.
  • content ADC_TS_SDK_X402_OK är en fast sträng som modellen faktiskt returnerar, vilket indikerar att den omförsökta begäran nådde mål-API:t.
  • id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGAT är ID:t för detta chat completion-svar, som kan användas för att jämföra med plattformens användningsregister.
  • Resultatet av on-chain avräkning kan ses i E2E verifiering och felsökning.
Ändra network till skale för att använda SKALE. Fördelen med SKALE är att gas-kostnaden för on-chain-transaktioner är låg; fördelen med Base är att USDC:s likviditet och plånboksstöd är mer moget, och endast Base erbjuder upto efterhandsmätning. Observera: SKALE har för närvarande endast exact. Om preferScheme: 'upto' anges under network: 'skale', kommer handler att tyst återgå till exact om upto inte hittas, utan att ge något felmeddelande—scenarier som chat completion som mäts per token kommer därför att avräknas till ett fast pris istället för baserat på verklig användning. För efterhandsmätning, använd Base.

Webbläsarplånboksexempel

När du använder MetaMask, Coinbase Wallet eller WalletConnect i frontend-applikationer, skickar du vanligtvis direkt in EIP-1193 provider:
Webbläsarplånboken kommer att visa en signaturbekräftelse. Användaren signerar inte ett godtyckligt meddelande, utan betalningskravet som API:t returnerar: mottagaradress, USDC-kontrakt, belopp, giltighetstid och nonce ingår alla i signaturen.

Solana-exempel

Solana använder SPL USDC TransferChecked. Den inkommande plånboksadaptern måste exponera publicKey och signAndSendTransaction.
Solana-vägen stöder för närvarande endast exact, och stöder inte upto. Om API:t returnerar flera accepts, kommer handler att välja den som har network = 'solana'. Solana-vägen har verifierats för betald omförsök på samma offentliga API och kan returnera HTTP 200 och ADC_SOLANA_E2E_OK. Offentliga RPC-frågor kan begränsas, så denna artikel skriver inte ut Solana tx hash; för on-chain avstämning, använd din egen Solana RPC eller konsol för att registrera bekräftelse.

Välja exact eller upto

Den nuvarande TypeScript-handlern kommer att välja det första betalningskravet som matchar nätverket som servern returnerar. Ace Data Clouds API placerar vanligtvis exact för samma nätverk före upto, så om du tydligt vill använda efterhandsmätning, behöver du ange preferScheme: 'upto'. Exempel:
Om servern inte returnerar ett upto krav för det nätverket, kommer handler automatiskt att återgå till det första tillgängliga kravet för det nätverket, vilket vanligtvis är exact. upto kräver engångsbehörighet för Permit2. upto erbjuds för närvarande endast på Base, så du behöver bara ge en engångsbehörighet för Base USDC:
Base upto har slutfört offentlig API-verifiering: HTTP 402 -> HTTP 200, efterföljande settlement tx är 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. Fullständig utdata finns i beskrivningen av prissättningsplanen.

SDK gjorde vad

@acedatacloud/sdk’s transport kommer att köra en betalningshanterare när den får 402:
@acedatacloud/x402-client returnerar en hanterare som kommer att:
  1. Välja betalningskravet för mål-nätverket från ctx.accepts.
  2. Konstruera EVM EIP-712 signatur eller Solana transfer transaction baserat på nätverket.
  3. Serialisera kuvertet till Base64.
  4. Returnera { headers: { 'PAYMENT-SIGNATURE': '<base64>' } }.
  5. SDK kommer automatiskt att försöka igen med den ursprungliga begäran.
Detta innebär att affärskoden bara behöver skrivas som en vanlig SDK-anrop, utan att manuellt hantera 402-omförsök.