evm-chains について
evm-chainsは、対応するEVMチェーンのメタデータを解決し、読み取り専用のオンチェーン照会を振り分けるスキルです。アカウントやトランザクションの検索先としてEtherscan、Blockscout、パブリックRPCを選び、対応チェーンではブリッジ情報も補います。
主な機能
- 01チェーン名・ID・別名の解決
- 02残高とトークン照会の振り分け
- 03送金とトランザクションの検索
- 04エクスプローラーAPIまたはパブリックRPCの利用
- 05ブリッジ取引情報の補完
活用シーン
- 01対象チェーン上のアドレス残高の確認
- 02トークン送金や初回入金の追跡
- 03対応するクロスチェーン取引の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ paulrberg/ agent-skills --skill evm-chainsインストール後、Claude Code で/evm-chainsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/address-sweeps.mdblockscout-api.mdblockscout-chains.mdblockscout-endpoints.mdbungee-api.mdchain-aliases.jsonetherscan-api.mdetherscan-chains.mdexplorer-paths.jsonlayerzero-bridging.mdlifi-bridging.mdoptimism-pre-2021-11-11.mdtarget-fallback-rpcs.jsontarget-mainnets.jsonscripts/blockscout-detect-plan.shetherscan-detect-plan.shresolve-chain.sh詳細
EVM チェーン
対象となる EVM チェーンのデータセット(チェーン名、チェーン ID、パブリック RPC、ネイティブ通貨シンボル、デフォルトのブロックエクスプローラー URL、RouteMesh のサポート状況)と、オンチェーンデータを読み取るルーターです。チェーンを解決してから、残高、トークン、送金、トランザクション、初回資金受け取りのクエリを Etherscan(優先)または Blockscout(フォールバック)に振り分けます。ブリッジトランザクションやクロスチェーンスワップでは、対象チェーンが関連する場合に限り、エクスプローラー/RPC による検証に Bungee、LayerZero、LI.FI のデータを追加します。
RPC から読み取る前、トランザクションを送信する前、コントラクトを呼び出す前、チェーン固有の RPC URL を構築する前、またはアドレス、トランザクション、ブロックへのエクスプローラーリンクを作成する前に、このスキルを使ってチェーンのメタデータを解決します。また、チェーンを解決した後にオンチェーンのアカウントデータをクエリする際にも使用します(オンチェーンデータのクエリ(ルーティング)を参照)。ユーザーがブリッジ、ブリッジ tx、クロスチェーンスワップ、Bungee、LayerZero、LI.FI、Socket、Stargate、OFT、CCTP、Aori に言及した場合や、トランザクションがブリッジ関連と推定される場合にも使用します。
表示名または数値のチェーン ID でチェーンを照合します。./references/target-mainnets.json が、このスキルの正式な対象範囲です。要求されたチェーンが記載されていない場合、対象範囲を回避するために Etherscan、Blockscout、Bungee、LayerZero、LI.FI、RouteMesh、Chainlist、ウェブ検索、パブリック RPC を使用しないでください。ユーザーに https://github.com/PaulRBerg/agent-skills で機能リクエストを提出するよう依頼してください。
また、./references/chain-aliases.json にある一般的なコードエイリアスを、対応する対象メインネットの行に正規化します。
アドレス全体の調査
ユーザーが EVM アドレスを提示し、いずれかのチェーンでこれまでにアクティブだったか、どのチェーンを使用したか、または現在複数のチェーンで残高を保有しているかを尋ねた場合は、以下の単一チェーン用ルーターを使う前に ./references/address-sweeps.md を読みます。調査対象も、すべてのプロバイダー対応 EVM チェーンではなく、./references/target-mainnets.json に記載された範囲に限られます。
プロンプトで特定の対象チェーンが指定されている場合は、オンチェーンデータのクエリ(ルーティング)を使います。
オンチェーンデータのクエリ(ルーティング)
アカウントデータ(ネイティブ残高、トークン保有、ERC-20/721/1155 の送金、トランザクション履歴、初回資金受け取り)を読み取るには、チェーンを解決してから、適切なエクスプローラー API に振り分けます。デフォルトで Ethereum を使わないでください。プロンプトからチェーンを推測します(明示的なチェーン名、POL→137/ARB→42161 のようなチェーン固有のトークン、対象チェーンのエイリアス)。曖昧な場合は質問してください。解決したチェーンが対象チェーンでない場合は、クエリを実行せず、機能リクエストを依頼してください。
- チェーンを解決する —
./references/target-mainnets.jsonと./references/chain-aliases.jsonを使って、名前またはエイリアスをチェーン ID に対応付けます。 - Etherscan(優先) — チェーン ID が
./references/etherscan-chains.mdに記載されている場合は、./references/etherscan-api.mdに従います(統合 API V2。$ETHERSCAN_API_KEYが必要です)。 - Blockscout(フォールバック) — Etherscan が対応していない対象チェーン、または無料の Etherscan プランでは有料となるチェーンについては、
./references/blockscout-api.mdに従います。 - どちらも利用できない場合 — 対象チェーンがどちらの登録情報にもない場合は、対象チェーンのパブリック RPC に JSON-RPC で直接クエリします(
cli-castスキルのcastまたはcurlを使用)。対象チェーンでない場合は、クエリを実行せず、機能リクエストを依頼してください。
有料チェーンの自動フォールバック。 Base(8453)、Optimism(10)、Avalanche(43114)、BNB Chain(56)は Etherscan に登録された対象チェーンですが、データエンドポイントの利用には有料の Etherscan プランが必要です。対象がこれらのチェーンのいずれかで、かつ ./scripts/etherscan-detect-plan.sh が paid_chains=false(無料プラン)を返す場合は、Blockscout に振り分けます。その他の Etherscan 登録済み対象チェーンでは、引き続き Etherscan をデフォルトとします。
ブリッジデータの補完
ユーザーがブリッジ、ブリッジトランザクション、クロスチェーンスワップ、ブリッジプロバイダーに言及した場合、またはログ、取引相手、calldata、トークンの移動からトランザクションがブリッジ関連と考えられる場合は、まず既知の送信元チェーンと送信先チェーンが対象チェーンであることを確認します。既知のチェーンのいずれかが ./references/target-mainnets.json に含まれていない場合は、処理を続けず、機能リクエストを依頼してください。
プロンプトまたは証拠に合致するブリッジのリファレンスを参照してください。
- Bungee/Socket/Bungee Auto:
./references/bungee-api.mdを読みます。 - LayerZero/Stargate/OFT/CCTP/Aori/Value Transfer API/LayerZeroScan:
./references/layerzero-bridging.mdを読みます。 - LI.FI/LiFi/li.quest/LI.FI Explorer:
./references/lifi-bridging.mdを読みます。
ブリッジ API は、Etherscan、Blockscout、エクスプローラー、RPC レシートと併用する読み取り専用の補完情報源として使用してください。ブリッジ API の情報だけでオンチェーン実行が確定したものとして扱わないでください。可能な場合は、送信されたトランザクションと最終的な結果をエクスプローラーまたは RPC データで検証してください。このスキルでは、返されたルート手順、calldata、userSteps、transactionRequest、署名は確認専用です。メッセージへの署名、署名の送信、ユーザー手順の実行、ブリッジトランザクションのブロードキャストは行わないでください。
RouteMesh
./references/target-mainnets.json の routeMesh フィールドが true で、ROUTEMESH_API_KEY 環境変数が利用可能な場合に限り、RouteMesh を使用してください。
RouteMesh の現在の対応状況を確認するには、GET https://lb.routeme.sh/chains を呼び出してください。バックアップエンドポイントとして https://lb2.routeme.sh/chains を使用してください。https://rpc.routeme.sh/chains は使用しないでください。RouteMesh の OpenAPI 仕様に記載されていても、ホスト名が解決されない場合があります。
RouteMesh RPC URL は次のように構成します。
https://lb.routeme.sh/rpc/CHAIN_ID/ROUTEMESH_API_KEY
CHAIN_ID を数値のチェーン ID に、ROUTEMESH_API_KEY を ROUTEMESH_API_KEY 環境変数の値に置き換えてください。routeMesh が false の場合、または ROUTEMESH_API_KEY が利用できない場合は、まずそのチェーンのプライマリパブリック RPC を使用し、次に記載されているフォールバック RPC を順番に使用してください。
パブリック RPC
パブリック RPC はベストエフォートです。データ取得やコントラクト呼び出しに使用する前に、eth_chainId で検証してください。プライマリエンドポイントが失敗した場合は、./references/target-fallback-rpcs.json に記載されているそのチェーンのフォールバックエンドポイントを順番に試してください。フォールバックの行がないチェーンについては、プライマリパブリック RPC のみが記載されています。
対象チェーンに対してのみ RPC を使用してください。./references/target-mainnets.json に含まれていないチェーンについては、ユーザーに https://github.com/PaulRBerg/agent-skills で機能リクエストを提出するよう依頼してください。
エクスプローラー URL
./references/target-mainnets.json の explorerUrl フィールドは、そのチェーンの正式なブロックエクスプローラーのベース URL です。リンクを作成するには、./references/explorer-paths.json のパスパターンを追加してください。
Etherscan および Etherscan-stack 系エクスプローラー(Arbiscan、Basescan、BscScan、Polygonscan、Optimism Etherscan、Lineascan、Snowscan、Blastscan、Berascan、Uniscan、Gnosisscan、abscan.org)は、いずれもこの形式に従います。Blockscout ベースのエクスプローラーやチェーンネイティブの対象エクスプローラーの多くも同じセグメントに対応していますが、慣例が異なる場合があるため、判断に迷った場合はエクスプローラーの UI で確認してください。
エクスプローラー URL が存在すること、Etherscan 形式のパスであること、または Etherscan-stack 系のエクスプローラー名であることは、Etherscan API V2 に対応していることを意味しません。API の対応範囲が重要な場合は、./references/etherscan-chains.md を参照してください。Etherscan のライブエンドポイント https://api.etherscan.io/v2/chainlist には、プロバイダーが対応するチェーンが追加で含まれている場合がありますが、./references/target-mainnets.json に記載されていないものは、このスキルの対象外です。この JSON は、RPC とエクスプローラーリンクの構築に使用するチェーンメタデータとしてのみ扱ってください。
注意事項
OP Mainnet の regenesis 前の履歴は、現在のエクスプローラー/RPC 経由では利用できません。 OP Mainnet(10)について、最終 regenesis が行われた 2021-11-11 より前のデータを照会する場合は、Etherscan、Blockscout、またはパブリック RPC の結果を使用する前に、./references/optimism-pre-2021-11-11.md を読んでください。
Ronin(app.roninchain.com)は、Etherscan のパス形式に従いません。 Ronin のリンクを作成する前に、エクスプローラーの UI で確認してください。
Ronin(2020)は、対象外の Chainscout レジストリエントリと衝突します。 Ronin には Chainscout のメタデータを使用せず、Ronin の記載されたエクスプローラー/RPC、または別の対象対応ソースを使用してください。
対象のメインネット
対象メインネットのメタデータは ./references/target-mainnets.json にあります。slug フィールドは Sablier SDK のチェーンスラッグです(sablier パッケージ ~/sablier/sdk、src/evm/chains/specs.ts。meta.slug ?? key として解決されます)。Arbitrum Nova、Celo、Fantom、IoTeX、Zora は SDK で定義されていません。これらのスラッグは同じ規則(小文字、ハイフン区切りの名前)に従います。
対象のフォールバック RPC
対象のフォールバック RPC のメタデータは ./references/target-fallback-rpcs.json にあります。./references/target-mainnets.json の primaryPublicRpc の検証に失敗した場合、各チェーンの fallbackPublicRpcs の値を順番に使用してください。