@acedatacloud/x402-client ist dafür verantwortlich, bei Auftreten von 402 Payment Required den PAYMENT-SIGNATURE-Anforderungsheader auszustellen.
Quellcode- und Paketadressen:
- SDK-Repository: https://github.com/AceDataCloud/SDK
- X402 Client-Repository: 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
Abhängigkeiten installieren
@solana/web3.js:
@acedatacloud/sdkund@acedatacloud/x402-clientkönnen beide von npm installiert und in Node.js importiert werden.etherswird für EVM-typisierte Daten-Signaturen verwendet,@solana/web3.jswird für die Konstruktion von Solana-Transaktionen verwendet.
Base oder SKALE Beispiel
Im Browser kannwindow.ethereum direkt verwendet werden. In Node.js kann ethers.Wallet eine Schicht eines EIP-1193-Stil-Providers einpacken.
- Das Programm löst zuerst eine nicht authentifizierte 402 aus, dann stellt der Handler
PAYMENT-SIGNATUREaus und schließlich wird mit demselben Anforderungstext erneut versucht. content ADC_TS_SDK_X402_OKist der feste String, den das Modell tatsächlich zurückgibt, was darauf hinweist, dass die wiederholte Anfrage in die Ziel-API gelangt ist.id chatcmpl-DlcVLO4PQWvmjPDQpy9yQw2QdLGATist die ID der Chat-Vervollständigungsantwort, die zur Überprüfung mit den Plattformnutzungsaufzeichnungen verwendet werden kann.- Ergebnisse der On-Chain-Abrechnung finden Sie unter E2E-Verifizierung und Fehlersuche.
network in skale, um SKALE zu verwenden. Der Vorteil von SKALE sind die niedrigen Gas-Kosten für On-Chain-Transaktionen; der Vorteil von Base ist die reifere USDC-Liquidität und Wallet-Unterstützung, und nur Base bietet upto nachgelagerte Abrechnung.
Hinweis: SKALE unterstützt derzeit nur exact. Wenn unter network: 'skale' preferScheme: 'upto' übergeben wird, wird der Handler stillschweigend auf exact zurückfallen, da upto nicht gefunden wird, ohne einen Fehler auszugeben – Szenarien wie Chat-Vervollständigungen, die nach Token abgerechnet werden, werden daher zu einem festen Preis abgerechnet, anstatt nach dem tatsächlichen Verbrauch. Für nachgelagerte Abrechnung verwenden Sie bitte Base.
Browser-Wallet-Beispiel
Bei der Verwendung von MetaMask, Coinbase Wallet oder WalletConnect in einer Frontend-Anwendung wird normalerweise der EIP-1193-Provider direkt übergeben:Solana Beispiel
Solana verwendet SPL USDCTransferChecked. Der übergebene Wallet-Adapter muss publicKey und signAndSendTransaction bereitstellen.
exact und nicht upto. Wenn die API mehrere accepts zurückgibt, wählt der Handler das Element mit network = 'solana'.
Der Solana-Pfad hat auf derselben öffentlichen API nachgewiesen, dass bezahlte Wiederholungen HTTP 200 und ADC_SOLANA_E2E_OK zurückgeben können. Öffentliche RPC-Abfragen können throttled werden, daher wird in diesem Artikel kein Solana tx hash angegeben; wenn eine On-Chain-Abstimmung erforderlich ist, verwenden Sie bitte Ihre eigene Solana RPC oder Konsole zur Aufzeichnung der Bestätigung.
Auswahl von exact oder upto
Der aktuelle TypeScript-Handler wählt die erste übereinstimmende Zahlungsanforderung aus, die vom Server zurückgegeben wird. Die API von Ace Data Cloud platziert normalerweise das exact für dasselbe Netzwerk vor dem upto, daher müssen Sie, wenn Sie eindeutig nachgelagerte Abrechnung wünschen, preferScheme: 'upto' übergeben.
Beispiel:
upto-Anforderung für dieses Netzwerk zurückgegeben hat, fällt der Handler automatisch auf die erste verfügbare Anforderung für dieses Netzwerk zurück, normalerweise exact.
upto erfordert eine einmalige Genehmigung von Permit2. upto wird derzeit nur auf Base angeboten, daher ist nur eine Genehmigung für Base USDC erforderlich:
upto hat die öffentliche API-Überprüfung abgeschlossen: HTTP 402 -> HTTP 200, die nachgelagerte Settlement-Transaktion ist 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036. Vollständige Ausgabe siehe Gebührenplanbeschreibung.
Was hat das SDK gemacht
Der Transport von@acedatacloud/sdk führt bei Erhalt von 402 einmal einen Zahlungs-Handler aus:
@acedatacloud/x402-client zurückgegebene Handler wird:
- Die Zahlungsanforderung des Zielnetzwerks aus
ctx.acceptsauswählen. - EVM EIP-712 Signatur oder Solana Transfer-Transaktion nach Netzwerk konstruieren.
- Das Envelope in Base64 serialisieren.
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }zurückgeben.- Das SDK versucht automatisch mit dem ursprünglichen Anfragekörper erneut.

