octra-labs/wallet-gen
主な特徴
- BIP39準拠のニーモニックフレーズ(12単語)生成
- Ed25519暗号アルゴリズムによる鍵ペア生成
- Base58エンコーディングを使用したOctraアドレス形式(oct + Base58(SHA256(pubkey)))
- ワンコマンドインストール(Linux/macOS/Windows対応)
- Bunランタイムを使用した高速実行
- ローカルWebサーバーとして動作(ポート8888)
- HD(階層決定性)ウォレット派生サポート
リポジトリ解析: octra-labs/wallet-gen
基本情報
- リポジトリ名: octra-labs/wallet-gen
- 主要言語: HTML
- スター数: 489
- フォーク数: 9,007
- 最終更新: 2025年7月時点
- ライセンス: Other(Octra Labs Proprietary Testnet License)
- トピックス: wallet, crypto, ed25519, bip39, typescript
概要
一言で言うと
Octraブロックチェーンネットワーク用の暗号通貨ウォレット生成ツール。BIP39準拠のニーモニックフレーズとEd25519鍵ペアを生成するWebベースのツール。
詳細説明
octra wallet generatorは、Octraブロックチェーンネットワークのテストネットフェーズで使用するためのウォレット生成ツールです。ブラウザベースのUIを提供し、安全な暗号鍵ペアとニーモニックフレーズを生成します。スイスの非営利組織Octra Labsによって開発され、早期採用者とバリデーター向けに提供されています。単一のコマンドでダウンロード、ビルド、実行が可能な簡単なセットアッププロセスを特徴としています。
主な特徴
- BIP39準拠のニーモニックフレーズ(12単語)生成
- Ed25519暗号アルゴリズムによる鍵ペア生成
- Base58エンコーディングを使用したOctraアドレス形式(oct + Base58(SHA256(pubkey)))
- ワンコマンドインストール(Linux/macOS/Windows対応)
- Bunランタイムを使用した高速実行
- ローカルWebサーバーとして動作(ポート8888)
- HD(階層決定性)ウォレット派生サポート
使用方法
インストール
前提条件
- インターネット接続
- Bunランタイム(インストーラーが自動的にインストール)
インストール手順
# Linux/macOS:
curl -fsSL https://octra.org/wallet-generator.sh | bash
# Windows:
powershell -c "irm octra.org/wallet-generator.ps1 | iex"
基本的な使い方
Hello World相当の例
# インストール後、自動的にブラウザが開きます
# http://localhost:8888 でアクセス可能
# 手動で起動する場合:
~/.octra/wallet-generator
実践的な使用例
-
ウォレット生成:
- "Generate New Wallet"ボタンをクリック
- エントロピー生成 → ニーモニック作成 → 鍵ペア生成の流れ
- 生成されたウォレット情報が画面に表示
-
ウォレット保存:
- "Save Wallet"ボタンでテキストファイルとして保存
- ファイル名:
octra_wallet_[アドレス末尾8文字]_[タイムスタンプ].txt
高度な使い方
HDウォレット派生
// POSTリクエストで派生ウォレットを生成
fetch('/derive', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
seed_hex: 'シードのHEX値',
network_type: 0, // 0=MainCoin, 1=SubCoin, etc.
index: 0
})
})
ドキュメント・リソース
公式ドキュメント
- README.md: クイックスタートガイド
- LICENSE: Octra Labs独自のテストネットライセンス
- wallet-generator.sh: Linuxインストールスクリプト
- wallet-generator.ps1: Windowsインストールスクリプト
サンプル・デモ
- Webインターフェースでのインタラクティブなウォレット生成
- 生成されたウォレットの検証機能(署名テスト)
チュートリアル・ガイド
- READMEのクイックスタートセクション
- セキュリティ警告と推奨事項
技術的詳細
アーキテクチャ
全体構造
TypeScript/Bunで書かれたサーバーサイドアプリケーションとして実装され、静的HTMLクライアントを提供します。暗号処理はサーバーサイドで実行され、Server-Sent Events(SSE)を使用してリアルタイムで進捗を表示します。
ディレクトリ構成
wallet-gen/
├── src/
│ ├── server.ts # メインサーバーロジック
│ └── static/ # 静的アセット
│ ├── index.html # UIインターフェース
│ ├── logo.svg # ロゴ
│ └── *.woff2 # Webフォント
├── package.json # プロジェクト設定
├── bun.lock # 依存関係ロック
├── wallet-generator.sh # Linux/macOSインストーラー
└── wallet-generator.ps1 # Windowsインストーラー
主要コンポーネント
-
暗号エンジン:
- 場所:
src/server.ts
- 依存: tweetnacl(Ed25519実装)、bip39(ニーモニック生成)
- インターフェース: HTTPエンドポイント(/generate、/save、/derive)
- 場所:
-
HDウォレット派生:
- 場所:
server.ts
のderiveChildKeyEd25519
関数 - 依存: HMAC-SHA512による鍵派生
- インターフェース: BIP32類似の階層的鍵派生
- 場所:
技術スタック
コア技術
- 言語: TypeScript
- ランタイム: Bun(高速JavaScriptランタイム)
- フレームワーク:
- 組み込みHTTPサーバー
- Server-Sent Events(SSE)
- 主要ライブラリ:
- tweetnacl (1.0.3): Ed25519暗号実装
- bip39 (3.1.0): ニーモニックフレーズ生成
開発・運用ツール
- ビルドツール: Bun build(スタンドアロン実行ファイル生成)
- パッケージ管理: Bun/npm
- デプロイ: 単一実行ファイルとして配布
設計パターン・手法
- ストリーミングレスポンス(SSE)による進捗表示
- Base58エンコーディングによる人間可読アドレス
- BIP39/BIP32互換の鍵派生
- セキュリティファーストの設計(ローカル実行)
データフロー・処理フロー
- エントロピー生成(128ビット)
- BIP39ニーモニック変換
- PBKDF2によるシード生成
- HMAC-SHA512による鍵派生("Octra seed")
- Ed25519鍵ペア生成
- SHA256ハッシュ + Base58エンコードによるアドレス生成
- 署名機能のテスト実行
API・インターフェース
公開API
ウォレット生成API
- 目的: 新しいウォレットの生成
- エンドポイント: POST /generate
- レスポンス: Server-Sent Eventsストリーム
// レスポンス例
data: {"status":"Generating entropy..."}
data: {"status":"Wallet generation complete!","wallet":{...}}
ウォレット保存API
- 目的: ウォレット情報をファイルに保存
- エンドポイント: POST /save
- リクエスト: WalletDataオブジェクト
設定・カスタマイズ
設定ファイル
インストールディレクトリ: ~/.octra/
拡張・プラグイン開発
派生パス設定による異なるネットワークタイプのサポート:
- 0: MainCoin
- 1: SubCoin
- 2: Contract
- 3: Subnet
- 4: Account
パフォーマンス・スケーラビリティ
パフォーマンス特性
- Bunランタイムによる高速起動
- ローカル実行によるレイテンシの最小化
- 軽量な実行ファイル(スタンドアロン)
スケーラビリティ
- シングルユーザー向けのローカルツール
- 複数インスタンスの並列実行可能
制限事項
- ポート8888を使用(変更不可)
- テストネット専用(プロプライエタリライセンス)
- オフライン環境での使用推奨
評価・所感
技術的評価
強み
- シンプルで使いやすいワンコマンドインストール
- 標準的な暗号規格(BIP39、Ed25519)の採用
- Bunによる高速実行とコンパクトなバイナリ
- ローカル実行によるセキュリティ
改善の余地
- ライセンスが制限的(テストネット専用)
- ポート番号がハードコード
- エラーハンドリングの改善余地
向いている用途
- Octraブロックチェーンのテストネット参加
- 開発・テスト用ウォレットの生成
- バリデーターノードのセットアップ
- 暗号鍵ペア生成の学習
向いていない用途
- 本番環境での使用(ライセンス制限)
- 大量のウォレット生成
- 商用利用
- 他のブロックチェーンネットワーク
総評
Octraブロックチェーンのエコシステムに特化したシンプルで使いやすいウォレット生成ツール。標準的な暗号規格を採用しており、技術的には堅実な実装。ただし、プロプライエタリライセンスにより使用が制限されているため、テストネット参加者向けの限定的なツールという位置づけ。フォーク数(9,007)の多さは、おそらくユーザーが個人的な使用のためにフォークしているためと推測される。