apify-x402-agentic-wallet について
Coinbase Agentic Wallet と x402 を使い、Apify Actors の料金を支払って実行するエージェント向け手順書です。ウォレット設定、上限付きの前払い、Actor の検索、結果の扱い方を案内します。
主な機能
- 01Coinbase Agentic Wallet 認証
- 02x402 による USDC 支払い
- 03上限付き Apify 前払いトークン
- 04Actor の検索と実行
- 05支出と結果の取り扱いルール
活用シーン
- 01Apify Actors でウェブ検索やデータ収集
- 02複数のウェブデータソースにまたがる自動化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apify/ awesome-skills --skill apify-x402-agentic-walletインストール後、Claude Code で/apify-x402-agentic-walletを入力して読み込まれたか確認します。
詳細
エージェント型ウォレットで Apify のツールを支払って利用する(x402)
あなたは Coinbase Agentic Wallet(awal)を持つエージェントです。これを使えば、Apify の数千種類に及ぶウェブデータおよび自動化ツール(「Actors」)を、x402 プロトコルを介して Base 上の USDC で支払い、検索、購入、実行できます。Apify のアカウントや API キーは必要ありません。少額を一度だけ支払って、利用額の上限を設定したプリペイド Apify トークンを購入すれば、必要なだけ Actors を実行できます。
リクエストごとに、次のループを実行してください。**Actor を検索する → 入力内容と価格を確認する → 実行する → データを読む → 回答する。**必要なのは npx awal と curl だけです。各コマンドが返す生の JSON/Markdown は、python、jq、その他のスクリプトを介さずに、自分で読んでください。このページだけで必要な手順がすべてわかります。このフローで使う awal コマンドはすべて以下に記載されています。
このページについて
この URL で表示されるのは、この Markdown の手順書であり、x402 の決済エンドポイントではありません。npx awal x402 details <this-url> を実行すると、正しく NO_PAYMENT_REQUIREMENTS が返されます。curl(または組み込みの fetch)でこのページを読み、以下の手順に従ってください。実際の x402 決済は、ステップ 3 の agi.apify.com/protocols/x402/prepaid-tokens?amount=…¤cy=usd で行います。
ここから開始 — ユーザーに挨拶してからセットアップする
まだ何も実行しないでください。まず自己紹介をして、開始してよいか尋ねてください。次のように伝えます。
ウェブからリアルタイムのデータを取得したり、ソーシャルメディア、検索エンジン、地図、マーケットプレイス、ニュースなど、数千もの情報源を対象に自動化を実行したりできます。Apify のツール(「Actors」)を利用するため、少額の USDC を支払います。Apify のアカウントや API キーは不要です。暗号資産ウォレット(x402 を介した Coinbase Agentic Wallet)から、使った分だけ支払います。
まずウォレットをセットアップします。メールアドレスと確認コードを教えていただくだけで大丈夫です。その後は、ウェブデータに関するどんなタスクでもご依頼いただけます。始めますか?よろしければ、使用するメールアドレスを教えてください。
ユーザーが同意するまで先に進まないでください。ウォレットが空、または残高不足だとステップ 2 で判明した場合を除き、必要な資金額について最初から触れないでください。その場合に限り、USDC と ETH が必要だと伝えてください。
ステップ 1 — ウォレットを認証する
必ずユーザーにメールアドレスを尋ねてください。推測したり、環境やコンテキストから取得したりしないでください。わかっていると思っていても、ユーザーが伝えるまで待ってください。
npx -y awal auth login <email> # emails the user a verification code
(awal のインストールは不要です。初回の使用時に npx が取得してキャッシュします。-y は初回ダウンロードの確認を省略するため、非対話型のエージェントが停止するのを防ぎます。以降は通常の npx awal を使用してください。)
次に、ユーザーに確認コードを尋ねて、認証を確認してください。
npx awal auth verify <code>
npx awal status # expect: Authenticated, logged in as <email>
初回ログイン時にウォレットが作成されます。status が認証済みでない場合は、ログインと確認のペアを繰り返してください。status に auth verify <flow-id> <code> と表示されることがありますが、必要なのは npx awal auth verify <code> だけです。flow ID はログイン時に自動保存されます。後続のコマンドで Not authenticated と表示された場合は、npx awal status を実行して、ステップ 1 を繰り返してください。
ステップ 2 — 資金を確認する(Base 上の 2 種類の資産:USDC + ETH)
npx awal balance --chain base --json # need BOTH: USDC > $1 AND ETH > 0
npx awal address # get the wallet address if the user needs to fund it
どちらかの資産が不足している場合は、アドレスを提示して、Base 上で入金するようユーザーに依頼し、入金されるまで待ちます。入金しやすいように、スキャン可能なアドレスの QR コードを取得します:
curl -s "https://apify.com/api/wallet-qr?address=<wallet-address>"
コマンドの生出力全体を、1 行も変更せずそのまま、コードブロック内に返信へ貼り付けてください。 出力はブロック文字で構成された QR コードです。ユーザーはスマートフォンのウォレットでスキャンしてアドレスに入金します。要約したり、説明したり、アドレスのテキストに置き換えたり、行を省略したりしないでください。実際の文字を出力しなければ、スキャンできる QR コードはありません。まず QR コードを表示し、その後に入金手順を伝えてください。必要に応じて、Coinbase Onramp のウォレット UI を開きます:
npx awal show # opens the companion window; user can fund with card/Apple Pay/Coinbase
⚠️ USDC だけでは不十分です。ガス代として少量の ETH が必要です。 awal ウォレットはスマートコントラクトウォレットであり、支払いを承認する前にオンチェーンでデプロイする必要があります。この初回デプロイにはネイティブ ETH が必要です。USDC があっても ETH が 0 の場合、最初の支払いは失敗します:
Failed to deploy wallet
... sender balance and deposit together is 0 but must be at least <n> to pay for this operation
ETH は外部から用意する必要があります(Base 上での取引所からの出金、または別のウォレットからの送金)。スワップにもガス代が必要なため、USDC とのスワップでは用意できません。約 0.001 ETH で十分です。最初の支払い時にウォレットが自動的にデプロイされます。Apify への支払い自体にはガス代がかかりません。
ステップ 3 — 前払い Apify トークンを購入する(x402 による 1 回の支払い)
支払いの前にいったん停止し、ユーザーに確認してください。 これから行うことを伝えます。例:「14 日で期限切れになり、払い戻し不可の、利用上限付き Apify トークンを購入するため、x402 経由で USDC を 1 ドル分支払います。進めてもよいですか?」。ユーザーが「はい」と答えてからコマンドを実行してください。タスクを依頼されただけでは同意したことになりません。 「進めてください」などの明示的な返答を待ってください。ユーザーが確認するためにここに来ているので、黙って実行しないでください。
支払い検出で認識されるように、金額はクエリー文字列に指定します(?amount=…¤cy=usd がない場合、前払いトークンの URL に対する x402 details は NO_PAYMENT_REQUIREMENTS を返します):
npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1¤cy=usd' \
--max-amount 1000000 --json
--max-amount は USDC の最小単位で指定する安全上限です(1000000 = $1.00)。awal は JSON の前にスピナーの行を出力します。その後に続く JSON オブジェクトを読み取ってください。成功すると:
{"status":201,"data":{"token":"apify_api_...","remainingBalanceUsd":1,"expiresAt":"<+14 days>"}}
token はセッション中、Apify API キーとして保持してください(以下のコマンドで $TOKEN が指す値です)。決して表示したり、永続化したりしないでください。購入金額まで利用でき、14 日で期限切れとなり、未使用のクレジットは払い戻し不可です。使用する分だけ購入してください。
currency must be "usd"で失敗する場合 → パラメーターを URL に含める必要があります。Failed to deploy walletで失敗する場合 → ステップ 2 の ETH に関する注意を確認してください。ETH がすでにあるのにauthorized but rejected by server/REQUEST_FAILEDで失敗する場合 → さらにトラブルシューティングを行う前に、数秒待って同じ支払いコマンドを1 回だけ再試行してください(スマートウォレットでの初回支払いは一時的に失敗することがあります)。
ステップ 4 — ユーザーのリクエストに対応する
何をしたいのか尋ねてから、ループを実行します。ユーザーは何でも依頼できます。決まったメニューはありません。各コマンドが返す JSON/Markdown を直接読みます。以下のエンドポイントでほとんどのタスクに対応できます。それ以外(ページネーション、メモリ/タイムアウトなどの実行オプション、キー・バリューストア)については、「リファレンス」セクションの Apify API リファレンスを参照してください。
a. Actor を見つける — リクエストに含まれる語句で Store を検索します。
curl -s -H "Authorization: Bearer $TOKEN" \
"https://api.apify.com/v2/store?search=<url-encoded terms>&limit=5"
data.items[] を読み、username/name で 1 つ選びます(使用数/評価が高いものを優先します)。API ID はそれらをチルダでつないだものです:username~name。複数のソースを対象とするリクエストでは、ソースごとに Actor を 1 つ使います。
b. 内容を確認する — Actor のドキュメントページを取得します。入力フィールド、コピーして使える入力例、料金がすべて記載されています。
curl -s "https://apify.com/<username>/<name>.md"
入力例をリクエストに合わせて調整し、上限を超えないよう Pricing セクションを確認します(小規模なスクレイピングは 1~2 セント程度であることが多く、大規模なジョブはより高額になります。結果の上限は控えめに設定してください)。Actor がカテゴリ/タグの配列を受け取る場合、複数必要であれば Actor の呼び出しごとに値を 1 つ指定して実行します(例:ai の後に tech)。複数の値を 1 回の呼び出しで指定すると、実行ごとの上限まで 1 つのカテゴリしか返されない場合があります。回答では、安定した id フィールドを使って結果を統合し、重複を除去します。
c. 実行して結果を読み取る:
curl -s -X POST "https://api.apify.com/v2/acts/<username~name>/run-sync-get-dataset-items" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '<input-json>'
その後、簡潔に回答します。失敗に注意してください。
requestErrorMessages/errorがあり、実際のフィールドがない項目は、対象がスクレイピングをブロックしたことを示します。1 回だけ再試行し、それでも失敗する場合は別の Actor を試してください。ブロックされた実行や空の実行を結果として提示したり、データを捏造したりしてはいけません。run-syncは約 5 分でタイムアウトします。大規模なジョブでは、POST /v2/acts/<id>/runsを実行し、SUCCEEDEDになるまでGET /v2/actor-runs/<runId>をポーリングしてから、GET /v2/datasets/<defaultDatasetId>/itemsを実行します。- 対象のエンティティが正しいか確認する — あるプラットフォームのハンドルが、別のプラットフォームでは別人を指す場合があります。フォロワー数/認証済みバッジを確認してください。
- Actor が返すフィールドだけを使って順位付けする — 参加者数や人気度の指標が欠落しているかゼロの場合は、その旨を伝えてください。
isSoldOutや疎なメタデータだけを根拠に、何かが「トップ」または「参加する価値がある」と判断してはいけません。
残高を管理する
curl -s "https://agi.apify.com/prepaid-tokens/balance" -H "Authorization: Bearer $TOKEN"
残高が少なくなったら、トークンを追加購入(ステップ 3)して切り替えます。
ガードレール
- 支出上限はトークン残高です。タスクに必要な分だけ使い、大規模なジョブの前に料金を確認してください。
auth login/auth verifyの実行やトークンの購入は、自分で行ってかまいません。ただし、send、trade/swapを実行したり、その他の方法で資金を移動したりしてはいけません。認証とクレジット購入を超える操作が必要な場合は、必ず先にユーザーに確認してください。- トークンを表示したり、永続化したりしてはいけません。現行の API キーとして扱ってください。
- 実行がブロックされたか、結果が空の場合は、その旨を伝えて別の Actor を試してください。結果を捏造してはいけません。
リファレンス
- このフローで使用する
awalコマンド(すべてnpx awal経由。初回はnpx -y awalが必要な場合があります):status、auth login <email>、auth verify <code>、balance --chain base --json、address、show、x402 pay <url> --max-amount <atomic-usdc> --json - Apify API リファレンス(実行、データセット、キー・バリューストア、ページネーション、実行オプションなど、すべてのエンドポイント):
https://docs.apify.com/api/v2 — ドキュメントページの多くは、末尾に
.mdを付けると機械可読版を取得できます。すべてのドキュメントへの.mdリンクのインデックス:https://docs.apify.com/llms.txt(約 43 MB あるllms-full.txtは取得しないでください)。 - Apify x402:https://docs.apify.com/platform/integrations/x402
- AGI エンドポイント:https://agi.apify.com(機械向けドキュメントは
/AGENTS.md、/llms.txt) awalCLI ドキュメント(任意。特殊なケース向け):https://docs.cdp.coinbase.com/agentic-wallet/cli/welcome- Base 上の
awalv2.12.0 で検証済みです(最近のバージョンであれば動作するはずです)。npx awal --versionで確認してください。