mcpField
A
apify-x402-agentic-wallet

apify-x402-agentic-wallet

github.com/apifyエージェントワークフロー28383 回インストール5 週間前に更新
リポジトリ

apify-x402-agentic-wallet について

Coinbase Agentic Wallet と x402 を使い、Apify Actors の料金を支払って実行するエージェント向け手順書です。ウォレット設定、上限付きの前払い、Actor の検索、結果の扱い方を案内します。

主な機能

  1. 01Coinbase Agentic Wallet 認証
  2. 02x402 による USDC 支払い
  3. 03上限付き Apify 前払いトークン
  4. 04Actor の検索と実行
  5. 05支出と結果の取り扱いルール

活用シーン

  1. 01Apify Actors でウェブ検索やデータ収集
  2. 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=…&currency=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=…&currency=usd がない場合、前払いトークンの URL に対する x402 details は NO_PAYMENT_REQUIREMENTS を返します):

npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=1&currency=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)
  • awal CLI ドキュメント(任意。特殊なケース向け):https://docs.cdp.coinbase.com/agentic-wallet/cli/welcome
  • Base 上の awal v2.12.0 で検証済みです(最近のバージョンであれば動作するはずです)。npx awal --version で確認してください。

コメント