Clientとして使う

AIエージェントやアプリからJPYCで支払いを行う方法を解説します。

対象

AIエージェント開発者・アプリケーション開発者

必要なもの

  • EVMウォレットの秘密鍵(PRIVATE_KEY)
  • ウォレットに十分なJPYC残高(Polygon mainnet)

フロー

  1. ウォレットにJPYCを用意
    Polygon mainnet上のJPYCをウォレットに送金します。
  2. PRIVATE_KEYを設定
    環境変数にウォレットの秘密鍵を設定します。
  3. x402対応サーバーにリクエスト
    通常のHTTPリクエストと同様にエンドポイントを呼び出します。
  4. 自動的にEIP-3009署名して支払い
    402レスポンスを受け取ると、x402-fetchが自動的に署名を生成し、支払い付きでリトライします。

サンプルコード(TypeScript)

import { privateKeyToAccount } from "viem/accounts";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";

// 1. 署名者(ウォレット)を用意
const signer = privateKeyToAccount(
  process.env.PRIVATE_KEY as `0x${string}`,
);

// 2. x402 client を作り、EVM向け "exact" スキームを登録
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));

// 3. 支払い対応の fetch を作成
const fetchWithPayment = wrapFetchWithPayment(fetch, client);

// 4. x402 対応サーバーにリクエスト(402 → 署名 → 再送信まで自動)
const response = await fetchWithPayment(
  "https://example.com/api/paid-endpoint",
);
const data = await response.json();
console.log(data);

注意事項

  • 秘密鍵は環境変数で管理し、コードにハードコードしないでください
  • 本番では適切なRPCプロバイダーURLを設定してください
  • テスト時は Amoy testnet で動作確認できますが、テスト用 JPYC の入手方法(公式 Faucet の有無など)はJPYC 公式に要確認です。公式 Faucet が未整備の場合は各自でテストトークンをデプロイする必要があります。

Claude Code ではじめる

最速でクライアント実装を動かすには Claude Code を使ってください。以下のプロンプトをそのまま貼り付けるだけで、クローンから動作確認まで一緒に進めてくれます。

こんにちは Claude。

https://github.com/kakedashi3/x402-jpyc-example.git を今いるディレクトリにクローンして。

それから README.md を読んで。x402 × JPYC のクライアントをローカルで動かしたい。

client/ ディレクトリの npm install、.env の設定(PRIVATE_KEY など)、動作確認まで一緒に進めて。