> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shanone.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ethereum

> Ethereumブロックチェーンのデータ取得とスマートコントラクト操作

# Ethereum

Ethereumブロックチェーンのデータ取得、残高確認、トランザクション追跡、スマートコントラクトとの対話が可能です。

## はじめに

### セットアップ

<Steps>
  <Step title="設定画面へ移動">
    emmaダッシュボードで **設定 > 連携 > Ethereum** に移動します。
  </Step>

  <Step title="RPCエンドポイントを追加">
    EthereumのRPCエンドポイントURL（Alchemy、Infura、または自前のノード）を入力します。
  </Step>

  <Step title="設定を保存">
    「保存」をクリックしてemmaをEthereumネットワークに接続します。
  </Step>
</Steps>

## 利用可能な機能

emmaは16カテゴリに分類された**57のツール**を提供しています：

<CardGroup cols={2}>
  <Card title="アカウント" icon="wallet">
    残高、ノンス、コントラクトコードの確認
  </Card>

  <Card title="ブロック" icon="cube">
    ブロック情報とトランザクション数の取得
  </Card>

  <Card title="トランザクション" icon="arrow-right-arrow-left">
    トランザクション詳細とレシートの取得
  </Card>

  <Card title="ガス" icon="gas-pump">
    ガス価格の取得とトランザクションコストの見積もり
  </Card>

  <Card title="ENS" icon="at">
    ENS名の解決と逆引き
  </Card>

  <Card title="トークン" icon="coins">
    ERC20トークン残高とメタデータの取得
  </Card>

  <Card title="ログ・イベント" icon="list">
    イベントログの取得とフィルタリング
  </Card>

  <Card title="デバッグ・トレース" icon="bug">
    トランザクションのトレースとスマートコントラクトのデバッグ
  </Card>
</CardGroup>

***

## アカウント

### 残高取得

任意の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...に1ETH送信するガスを見積もって」

### 手数料履歴取得

EIP-1559トランザクション用の過去のガス手数料データを取得します。

**プロンプト例：**

* 「過去10ブロックのガス価格を見せて」
* 「最近のプライオリティ手数料は？」

***

## ENS（Ethereum Name Service）

### ENS名解決

ENS名をEthereumアドレスに変換します。

**プロンプト例：**

* 「vitalik.ethのアドレスは？」
* 「uniswap.ethを解決して」

### アドレス逆引き

アドレスに関連付けられたENS名を検索します。

**プロンプト例：**

* 「0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045のENS名は？」
* 「このアドレスにはENS名がある？」

### ENSテキストレコード取得

ENS名からテキストレコード（Twitter、GitHub、ウェブサイトなど）を取得します。

**プロンプト例：**

* 「vitalik.ethのTwitterハンドルは？」
* 「uniswap.ethのウェブサイトURLを取得して」

**一般的なテキストレコードキー：**

* `url` - ウェブサイトURL
* `avatar` - アバター画像
* `description` - プロフィール説明
* `com.twitter` - Twitterハンドル
* `com.github` - GitHubユーザー名
* `email` - メールアドレス

***

## トークン（Alchemy）

<Note>
  トークンツールはRPCプロバイダーとしてAlchemyが必要です。
</Note>

### トークン残高取得

アドレスのすべての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ノードは同期している？」

***

## デバッグ・トレース

<Note>
  デバッグツールはデバッグAPIが有効なノード（例：`--http.api debug`付きのGeth）が必要です。
</Note>

### トランザクショントレース

トランザクションの詳細な実行トレースを取得します。

**プロンプト例：**

* 「トランザクション0xabc...をトレースして」
* 「このトランザクションの内部呼び出しを見せて」

### コールトレース

トランザクションを送信せずにコントラクト呼び出しをシミュレートしてトレースします。

**プロンプト例：**

* 「この関数を呼び出したら何が起こるかトレースして」

### ブロックトレース

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

***

## トランザクションプール

### Txpoolコンテンツ取得

メンプール内の保留中およびキュー中のトランザクションを表示します。

**プロンプト例：**

* 「保留中のトランザクションを見せて」
* 「トランザクションプールには何がある？」

### Txpoolステータス取得

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

### Txpool検査

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

***

## 高度な機能

### 署名済みトランザクション送信

署名済みトランザクションをネットワークにブロードキャストします。

<Warning>
  これは実際のトランザクションを送信します。ブロードキャスト前にトランザクションを理解していることを確認してください。
</Warning>

### プルーフ取得

アカウントの状態のMerkleプルーフを取得します。

### アクセスリスト作成

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

### トランザクションシミュレーション

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

***

## サポートされるネットワーク

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

| ネットワーク           | RPCの例                                               |
| ---------------- | --------------------------------------------------- |
| Ethereum Mainnet | `https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY`     |
| Goerli Testnet   | `https://eth-goerli.g.alchemy.com/v2/YOUR_KEY`      |
| Sepolia Testnet  | `https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY`     |
| Polygon          | `https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY` |
| Arbitrum         | `https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY`     |
| Optimism         | `https://opt-mainnet.g.alchemy.com/v2/YOUR_KEY`     |

***

## トラブルシューティング

<AccordionGroup>
  <Accordion title="RPCエンドポイントが応答しない">
    * RPC URLが正しいか確認してください
    * APIキーが有効か確認してください
    * レート制限を超えていないか確認してください
  </Accordion>

  <Accordion title="トークンツールが動作しない">
    トークン残高とメタデータツールはRPCプロバイダーとしてAlchemyが必要です。標準のRPCエンドポイントはこれらの拡張メソッドをサポートしていません。
  </Accordion>

  <Accordion title="デバッグツールがエラーを返す">
    デバッグとトレースツールはデバッグAPIが有効なノードが必要です。ほとんどの公開RPCプロバイダーはこれらのメソッドを公開していません。自前のノードを実行するか、デバッグAPIをサポートするプロバイダーの使用を検討してください。
  </Accordion>

  <Accordion title="ENS解決が失敗する">
    * ENS名が存在し、リゾルバーが設定されていることを確認してください
    * ENSはEthereumメインネットでのみ利用可能です
    * 一部の名前はすべてのテキストレコードが設定されていない場合があります
  </Accordion>
</AccordionGroup>

***

## ユースケース

<CardGroup cols={2}>
  <Card title="ウォレット監視" icon="eye">
    任意のアドレスの残高、トランザクション、トークン保有を追跡します。
  </Card>

  <Card title="スマートコントラクト分析" icon="code">
    コントラクトの状態を読み取り、トランザクションをトレースし、問題をデバッグします。
  </Card>

  <Card title="DeFiリサーチ" icon="chart-line">
    トークン転送、流動性イベント、プロトコルとの対話を分析します。
  </Card>

  <Card title="NFT追跡" icon="image">
    NFT転送と所有権の変更を監視します。
  </Card>
</CardGroup>
