@acedatacloud/x402-client は 402 Payment Required に遭遇した際に PAYMENT-SIGNATURE リクエストヘッダーをチェックアウトします。
ソースコードとパッケージのアドレス:
- 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 のみです。network: 'skale' の下で preferScheme: 'upto' を渡すと、ハンドラーは 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 tx ハッシュは記載しません。ブロックチェーン上の照合が必要な場合は、自分の Solana RPC またはコンソールで確認を記録してください。
exact または upto の選択
現在の TypeScript ハンドラーは、サーバーが返す最初の一致するネットワークの支払い要件を選択します。Ace Data Cloud の API は通常、同じネットワークの exact を upto の前に配置するため、後置計量を明示的に行いたい場合は preferScheme: 'upto' を渡す必要があります。
例:
upto 要件を返さなかった場合、ハンドラーは自動的にそのネットワークで利用可能な最初の要件、通常は exact にフォールバックします。
upto は一度に Permit2 を承認する必要があります。upto は現在 Base でのみ提供されているため、Base USDC に対して一度だけ承認を行う必要があります:
upto は公開 API 検証を完了しました:HTTP 402 -> HTTP 200、後置決済トランザクションは 0x4b0b836ce1cd1171cdbc37df1637150b024214ec28e7f6f2d09122f15cbfc036 です。完全な出力は料金プランの説明を参照してください。
SDK は何をしましたか
@acedatacloud/sdk の transport は 402 を受け取ると一度 payment handler を実行します:
@acedatacloud/x402-client が返す handler は:
ctx.acceptsからターゲットネットワークの payment requirement を選択します。- ネットワークに応じて EVM EIP-712 署名または Solana transfer transaction を構築します。
- envelope を Base64 にシリアライズします。
{ headers: { 'PAYMENT-SIGNATURE': '<base64>' } }を返します。- SDK は自動的に元のリクエストボディで再試行します。

