Skip to main content

Ethereum

Ethereumブロックチェーンのデータを取得し、残高を確認し、トランザクションを追跡し、スマートコントラクトと連携できます——Shanoneは、あなたが設定したEthereumのJSON-RPCエンドポイントと直接通信します。

はじめに

セットアップ

1

Integrationsに移動する

ShanoneダッシュボードでIntegrations > Ethereumに移動します。
2

RPCエンドポイントを追加する

EthereumのJSON-RPCエンドポイントURLを入力します。Alchemyの利用が推奨されます——一般的なJSON-RPCプロバイダーではサポートされないトークン/NFT(ethereum_alchemy_*)ツールが使えるようになります。
3

保存する

保存が完了すると、ethereum_*ツールに対するshanone_execute_toolの呼び出しはこのエンドポイントを自動的に使用します——この連携には別途OAuthのステップはありません。

利用可能な機能

ShanoneはEthereum用に76のツールを提供しており、以下のカテゴリに分類されています。

アカウント

残高、ノンス、コントラクトコードを確認する

ブロック

ブロック情報とトランザクション数を取得する

トランザクション

トランザクションの詳細とレシートを取得する

ガス

ガス価格を取得し、トランザクションコストを見積もる

ENS

ENS名の解決と逆引きを行う

トークン

ERC20トークンの残高とメタデータを取得する

ログ & イベント

イベントログを取得し、ブロックチェーンイベントをフィルタリングする

デバッグ & トレース

トランザクションをトレースし、スマートコントラクトをデバッグする

アカウント

残高を取得する

任意のEthereumアドレスのETH残高を取得します。 プロンプト例:
  • 「0x123…のETH残高は?」
  • 「vitalik.ethの残高を確認して」
  • 「このウォレットはどれくらいETHを持っている?」

トランザクション数(ノンス)を取得する

あるアドレスから送信されたトランザクション数を取得します。新しいトランザクションを作成する際に必要です。 プロンプト例:
  • 「0x123…のノンスは?」
  • 「このアドレスは何件のトランザクションを送信している?」

コードを取得する

バイトコードを取得することで、あるアドレスがスマートコントラクトかどうかを確認します。 プロンプト例:
  • 「0x123…はスマートコントラクト?」
  • 「このアドレスのバイトコードを取得して」

コントラクトを呼び出す

読み取り専用のスマートコントラクト関数呼び出しを実行します。 プロンプト例:
  • 「このトークンコントラクトのtotalSupply関数を呼び出して」
  • 「USDTコントラクトでこのアドレスのbalanceOfは?」

ブロック

ブロック番号を取得する

Ethereumの現在の最新ブロック番号を取得します。 プロンプト例:
  • 「現在のEthereumのブロック番号は?」
  • 「最新のブロックは?」

ブロック番号でブロックを取得する

タイムスタンプ、ガス使用量、トランザクションを含むブロックの詳細情報を取得します。 プロンプト例:
  • 「ブロック19234567を見せて」
  • 「最新のブロックの詳細を取得して」
  • 「ブロック19000000にはどんなトランザクションが含まれている?」

ハッシュでブロックを取得する

特定のブロックハッシュを使ってブロック情報を取得します。 プロンプト例:
  • 「ハッシュ0xabc…のブロックを取得して」

ブロック内のトランザクション数を取得する

特定のブロック内のトランザクション数を取得します。 プロンプト例:
  • 「最新のブロックには何件のトランザクションがある?」
  • 「ブロック19234567のトランザクション数は?」

トランザクション

トランザクションを取得する

トランザクションハッシュを使ってトランザクションの詳細を取得します。 プロンプト例:
  • 「トランザクション0xabc…を見せて」
  • 「このトランザクションの詳細は?」
  • 「このトランザクションの送信者は誰で、いくらのETHを送った?」
取得できる情報:
  • 送信者と受信者のアドレス
  • 転送された金額(WeiおよびETH)
  • ガス価格とガスリミット
  • ノンスとステータス(保留中/確定済み)

トランザクションレシートを取得する

ステータス、使用ガス量、イベントログを含む、トランザクションの実行結果を取得します。 プロンプト例:
  • 「トランザクション0xabc…は成功した?」
  • 「このトランザクションはどれくらいガスを使った?」
  • 「このトランザクションのログを見せて」
取得できる情報:
  • 成功/失敗のステータス
  • 使用ガス量とトランザクション手数料
  • コントラクトアドレス(デプロイの場合)
  • 発行されたイベントログ

ブロック内のトランザクションを取得する

インデックス位置を指定して、ブロック内の特定のトランザクションを取得します。 プロンプト例:
  • 「ブロック19234567内の最初のトランザクションを取得して」
  • 「最新のブロックのインデックス5のトランザクションを見せて」

ガス

ガス価格を取得する

ネットワークの現在のガス価格を取得します。 プロンプト例:
  • 「現在のガス価格は?」
  • 「単純なETH送金にはどれくらいコストがかかる?」
取得できる情報:
  • WeiおよびGwei単位のガス価格
  • 標準的なETH送金の見積もりコスト

ガスを見積もる

特定のトランザクションに必要なガス量を見積もります。 プロンプト例:
  • 「このコントラクト呼び出しはどれくらいガスを使う?」
  • 「0x123…に1 ETHを送る場合のガスを見積もって」

フィー履歴を取得する

EIP-1559トランザクションの過去のガス料金データを取得します。 プロンプト例:
  • 「直近10ブロックのガス価格を見せて」
  • 「最近の優先手数料はどうだった?」

ENS(Ethereum Name Service)

ENS名を解決する

ENS名をEthereumアドレスに変換します。 プロンプト例:
  • 「vitalik.ethのアドレスは?」
  • 「uniswap.ethを解決して」

アドレスを逆引きする

あるアドレスに紐づくENS名を検索します。 プロンプト例:
  • 「0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045にはどんなENS名がある?」
  • 「このアドレスにはENS名がある?」

ENSテキストレコードを取得する

ENS名のテキストレコード(Twitter、GitHub、Webサイトなど)を取得します。 プロンプト例:
  • 「vitalik.ethのTwitterハンドルは?」
  • 「uniswap.ethのWebサイトURLを取得して」
主なテキストレコードキー:
  • url - WebサイトURL
  • avatar - アバター画像
  • description - プロフィールの説明
  • com.twitter - Twitterハンドル
  • com.github - GitHubユーザー名
  • email - メールアドレス

トークン(Alchemy)

トークン関連ツールはRPCプロバイダーとしてAlchemyを使用している必要があります。

トークン残高を取得する

あるアドレスのすべてのERC20トークン残高を取得します。 プロンプト例:
  • 「0x123…はどんなトークンを持っている?」
  • 「このウォレットのERC20残高をすべて見せて」

トークンメタデータを取得する

ERC20トークンのメタデータ(名前、シンボル、桁数、ロゴ)を取得します。 プロンプト例:
  • 「コントラクト0x123…はどんなトークン?」
  • 「このトークンのシンボルと桁数を取得して」

アセット転送履歴を取得する

ETH、ERC20、NFTを含む過去の転送履歴を取得します。 プロンプト例:
  • 「0x123…宛のすべての転送を見せて」
  • 「このアドレスはどんなトークンを受け取った?」
  • 「このウォレットのトランザクション履歴を取得して」
転送カテゴリ:
  • external - ETH転送(トップレベル)
  • internal - ETH転送(内部トランザクション)
  • erc20 - ERC20トークン転送
  • erc721 - ERC721 NFT転送
  • erc1155 - ERC1155マルチトークン転送

ログ & イベント

ログを取得する

アドレス、トピック、ブロック範囲でフィルタしてイベントログを検索します。 プロンプト例:
  • 「直近100ブロックのUSDTコントラクトのTransferイベントを取得して」
  • 「0x123…が発行したすべてのイベントを見せて」

ブロックレシートを取得する

あるブロックのすべてのトランザクションレシートを取得します。 プロンプト例:
  • 「ブロック19234567のすべてのレシートを取得して」

フィルター

フィルターを作成する

監視用の新しいイベントフィルターを作成します。 プロンプト例:
  • 「USDTのTransferイベント用のフィルターを作成して」

ブロックフィルターを作成する

新しいブロック用のフィルターを作成します。 プロンプト例:
  • 「新しいブロックを監視して」

フィルターの変更を取得する

最後のポーリング以降の新しいイベントを取得します。 プロンプト例:
  • 「自分のフィルターに新しいイベントがあるか確認して」

フィルターを削除する

不要になったフィルターを削除します。

ストレージ & 状態

指定スロットのストレージを取得する

特定のスロットにあるコントラクトの生のストレージを読み取ります。 プロンプト例:
  • 「コントラクト0x123…のストレージスロット0を読み取って」

アカウント情報を取得する

残高、ノンス、コードハッシュを含む完全なアカウント情報を取得します。

同期状態を確認する

ノードがネットワークと同期しているかを確認します。 プロンプト例:
  • 「Ethereumノードは同期している?」

デバッグ & トレース

デバッグツールを使用するには、デバッグAPIが有効なノード(例: --http.api debugオプション付きのGeth)が必要です。

トランザクションをトレースする

トランザクションの詳細な実行トレースを取得します。 プロンプト例:
  • 「トランザクション0xabc…をトレースして」
  • 「このトランザクションの内部呼び出しを見せて」

コール呼び出しをトレースする

トランザクションを送信せずに、コントラクト呼び出しをシミュレート・トレースします。 プロンプト例:
  • 「この関数を呼び出したらどうなるかトレースして」

ブロックをトレースする

あるブロック内のすべてのトランザクションの実行トレースを取得します。

トランザクションプール

Txpoolの内容を取得する

メモリプール内の保留中・キュー中のトランザクションを表示します。 プロンプト例:
  • 「保留中のトランザクションを見せて」
  • 「トランザクションプールの中身は?」

Txpoolのステータスを取得する

保留中・キュー中のトランザクション数を取得します。

Txpoolを検査する

プール内のトランザクションの概要を取得します。

高度な機能

署名済みトランザクションを送信する

署名済みのトランザクションをネットワークにブロードキャストします。
これは実際のトランザクションを送信します。ブロードキャストする前に、トランザクションの内容を必ず理解してください。

証明を取得する

アカウントの状態に対するマークルプルーフを取得します。

アクセスリストを作成する

トランザクション用のEIP-2930アクセスリストを生成します。

トランザクションをシミュレートする

ブロードキャストせずにトランザクションをシミュレートします(EIP-7702)。

サポートされているネットワーク

Shanoneはカスタムなど任意のRPCエンドポイントを通じて、EVM互換の任意のネットワークをサポートします。

トラブルシューティング

  • RPC URLが正しいか確認する
  • APIキーが有効か確認する
  • レート制限を超えていないか確認する
トークン残高・メタデータツールを利用するには、RPCプロバイダーとしてAlchemyを使用している必要があります。標準的なRPCエンドポイントはこれらの拡張メソッドをサポートしていません。
デバッグ・トレースツールを使用するには、デバッグAPIが有効なノードが必要です。多くのパブリックRPCプロバイダーはこれらのメソッドを公開していません。自前のノードを運用するか、デバッグAPIをサポートするプロバイダーの利用を検討してください。
  • ENS名が存在し、リゾルバーが設定されているか確認する
  • ENSはEthereumメインネットでのみ利用可能
  • 名前によっては、すべてのテキストレコードが設定されていない場合がある

使用例

ウォレット監視

任意のアドレスの残高、トランザクション、トークン保有状況を追跡する。

スマートコントラクト分析

コントラクトの状態を読み取り、トランザクションをトレースし、問題をデバッグする。

DeFiリサーチ

トークン転送、リクイディティイベント、プロトコルとのやり取りを分析する。

NFTトラッキング

NFTの転送と所有権の変化を監視する。