Ethereum Wallet Generator について
Ethereum Wallet MCP Server は、イーサリアムのウォレット生成と HD ウォレット機能を提供する MCP サーバーで、BIP39 ニーモニック、派生パス、バニティアドレスに対応しています。AI アシスタントからウォレットの生成や復元を行う開発者を想定しています。README では、秘密鍵はメモリ上にのみ保持されると説明されています。
主な機能
- 01ランダムウォレットと BIP39 ニーモニックウォレットの生成
- 02ニーモニックまたは秘密鍵からのウォレット復元
- 03最大 100 件の HD アカウント一括派生
- 04プレフィックスまたはサフィックスによるバニティアドレス生成
- 05BIP39 のドキュメントとワードリストのリソース
活用シーン
- 01開発やテスト用のイーサリアムウォレットの生成
- 021 つのニーモニックからの複数アカウントの派生
- 03BIP39 と HD 派生パスの仕組みの学習
MCP 対応
本プロジェクトは MCP サーバーであり、generate_wallet、derive_multiple_accounts、generate_vanity_address などのウォレットツールを、プロンプトやドキュメントのリソースとともに MCP クライアントに公開します。README には Claude Desktop の設定例が含まれています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Ethereum Wallet MCP サーバー
Ethereum ウォレットの生成と HD ウォレット機能を提供する Model Context Protocol(MCP)サーバーです。このサーバーにより、Claude などの AI アシスタントは Ethereum ウォレットを安全に生成し、BIP39 ニーモニックを扱い、単一のシードフレーズから複数のアカウントを導出できます。
機能
ツール
generate_wallet- 新しいランダムな Ethereum ウォレットを生成しますgenerate_wallet_with_mnemonic- BIP39 シードフレーズ付きのウォレットを生成しますrestore_wallet_from_mnemonic- 既存のニーモニックからウォレットを復元しますrestore_wallet_from_private_key- 秘密鍵からウォレットを復元しますderive_multiple_accounts- 複数の HD ウォレットアカウントを導出しますgenerate_vanity_address- パターンに一致するアドレスを生成します
プロンプト
create_secure_wallet- ガイド付きの安全なウォレット作成backup_wallet_guide- ウォレットのバックアップ手順recover_wallet_help- ウォレット復元のサポート
リソース
wallet://documentation/bip39- BIP39 標準のドキュメントwallet://documentation/derivation-paths- HD 導出パスのドキュメントwallet://wordlist/{language}- 言語別の BIP39 単語リスト
インストール
# Install from source
pip install -e .
# Or with dev dependencies
pip install -e ".[dev]"
使用方法
サーバーの実行
# Run directly
ethereum-wallet-mcp
# Or via Python
python -m ethereum_wallet_mcp.server
Claude Desktop の設定
Claude Desktop の設定ファイル(claude_desktop_config.json)に以下を追加します。
{
"mcpServers": {
"ethereum-wallet": {
"command": "ethereum-wallet-mcp"
}
}
}
対話の例
User: "Generate a new Ethereum wallet for me"
→ Returns: address, private_key, public_key
User: "Create a wallet with a 24-word seed phrase"
→ Returns: address, private_key, mnemonic (24 words), derivation_path
User: "Restore my wallet from this seed: abandon abandon abandon..."
→ Returns: restored wallet details
User: "Derive 10 accounts from my seed phrase"
→ Returns: list of 10 accounts with addresses and keys
User: "Generate a vanity address starting with 'cafe'"
→ Returns: matching address with generation stats
セキュリティに関する考慮事項
⚠️ 重要なセキュリティ警告:
- 秘密鍵やニーモニックフレーズを絶対に共有しないでください - これらは資金への完全なアクセス権を与えます
- このサーバーは機密データを永続化しません - 鍵は操作中にメモリ内にのみ存在します
- 実際の資金にはハードウェアウォレットを使用してください - ソフトウェアウォレットは本質的に安全性が低くなります
- バニティアドレスにはリスクがあります - 高額の保管には絶対に使用しないでください
- アドレスは独立して検証してください - 導出されたアドレスは必ず再確認してください
開発
テストの実行
pytest tests/ -v
コードのフォーマット
black src/ tests/
isort src/ tests/
型チェック
mypy src/
API リファレンス
ツール: generate_wallet
ニーモニックなしで新しいランダムな Ethereum ウォレットを生成します。
パラメータ: なし
戻り値:
address(str): チェックサム付きの Ethereum アドレスprivate_key(str): 16 進数エンコードされた秘密鍵(0x プレフィックス付き)public_key(str): 16 進数エンコードされた公開鍵
ツール: generate_wallet_with_mnemonic
BIP39 ニーモニックシードフレーズ付きの新しいウォレットを生成します。
パラメータ:
word_count(int, 任意): 12、15、18、21、または 24。デフォルト: 12language(str, 任意): ニーモニックの言語。デフォルト: "english"passphrase(str, 任意): BIP39 パスフレーズ。デフォルト: ""derivation_path(str, 任意): HD パス。デフォルト: "m/44'/60'/0'/0/0"
戻り値:
address、private_key、public_keymnemonic(str): スペースで区切られたシード単語derivation_path(str): 使用されたパスpassphrase_used(bool): パスフレーズが適用されたかどうか
ツール: restore_wallet_from_mnemonic
既存の BIP39 ニーモニックからウォレットを復元します。
パラメータ:
mnemonic(str, 必須): スペースで区切られたニーモニックフレーズpassphrase(str, 任意): BIP39 パスフレーズ。デフォルト: ""derivation_path(str, 任意): HD パス。デフォルト: "m/44'/60'/0'/0/0"
戻り値: generate_wallet_with_mnemonic と同じです(mnemonic フィールドを除く)
ツール: restore_wallet_from_private_key
秘密鍵からウォレットを復元します。
パラメータ:
private_key(str, 必須): 16 進数の秘密鍵(0x プレフィックスの有無を問いません)
戻り値:
address、private_key(正規化済み)、public_key
ツール: derive_multiple_accounts
単一のニーモニックから複数のアカウントを導出します。
パラメータ:
mnemonic(str, 必須): BIP39 ニーモニックcount(int, 任意): アカウント数 (1〜100)。デフォルト: 5start_index(int, 任意): 開始インデックス。デフォルト: 0passphrase(str, 任意): BIP39 パスフレーズ。デフォルト: ""base_path(str, 任意): ベース HD パス。デフォルト: "m/44'/60'/0'/0"
戻り値:
accounts(list): {index, derivation_path, address, private_key, public_key} のリストtotal_derived(int): 導出されたアカウント数base_path(str): 使用されたベースパス
ツール: generate_vanity_address
バニティパターンに一致するアドレスを生成します。
パラメータ:
prefix(str, 任意): 0x 以降に希望するプレフィックス (16 進文字)suffix(str, 任意): 希望するサフィックス (16 進文字)case_sensitive(bool, 任意): 大文字と小文字を正確に一致させる。デフォルト: falsetimeout_seconds(int, 任意): 最大検索時間。デフォルト: 60
戻り値:
address、private_key、public_keypattern_matched(str): 一致したパターンattempts(int): 試行されたアドレス数time_seconds(float): 所要時間difficulty(int): 推定 1/N の難易度
ライセンス
MIT ライセンス
コントリビューション
コントリビューションを歓迎します! コントリビューションガイドラインをお読みのうえ、プルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。