Tron Pocket
公開Tauri + Vue 3で構築するTRONブロックチェーンウォレットのデスクトップアプリ。秘密鍵管理・QRコード生成・クロスプラットフォーム対応。
desktopblockchain
概要
## Tron Pocket TRONブロックチェーン向けの軽量デスクトップウォレット。 Tauri 2 + Vue 3 で構築し、秘密鍵の生成・管理をRust側(k256 / secp256k1)で安全に処理。フロントエンドはVue 3 + Tailwind CSS 4 + Reka UIでモダンなUIを提供。 ### 主な機能 - **ウォレット作成・インポート** — secp256k1鍵ペア生成、ニーモニック対応予定 - **QRコード表示** — アドレス共有用 - **トランザクション構築** — TRX送金・TRC20トークン対応予定 - **クロスプラットフォーム** — Windows / macOS / Linux ### 設計方針 - 秘密鍵はRustプロセス内で完結。JSランタイムに渡さない - tron-coreクレートとしてブロックチェーンロジックを分離 - フロントはSPA構成でTauriのIPC経由でRustバックエンドと通信
システムアーキテクチャ
プロジェクト構成
scolor-dev/tron-pocket@develop
tron-pocket/ ├── src/ # Vue 3 フロントエンド │ ├── components/ # UIコンポーネント │ ├── views/ # ページ │ ├── stores/ # Pinia ストア │ ├── router/ # Vue Router 設定 │ └── App.vue ├── src-tauri/ # Rust バックエンド │ ├── src/ │ │ ├── main.rs # Tauriエントリポイント │ │ └── lib.rs # IPCコマンド定義 │ ├── crates/ │ │ └── tron-core/ # TRONプロトコル実装 │ │ ├── src/ │ │ │ ├── lib.rs │ │ │ ├── address.rs # Base58Checkアドレス │ │ │ ├── keypair.rs # secp256k1鍵ペア │ │ │ └── transaction.rs │ │ └── Cargo.toml │ └── Cargo.toml ├── public/ # 静的アセット ├── index.html ├── package.json ├── vite.config.ts ├── tailwind.config.ts └── tsconfig.json
技術選定の理由
採用Tauri 2 を採用(Electronではなく)
バイナリサイズが小さく、Rustでセキュアな暗号処理が可能。秘密鍵をJS側に露出させない設計が自然にできる。
採用k256クレートでsecp256k1を実装
RustCryptoプロジェクトの信頼性あるライブラリ。Pure Rustで依存が少なく、Tauriビルドとの相性が良い。
採用tron-coreをワークスペースクレートとして分離
TRONプロトコルのロジック(アドレス生成・トランザクション構築)をTauriから独立させ、単体テスト・再利用を可能にする。
採用Reka UI を UIコンポーネントに採用
ヘッドレスUI。Tailwindとの統合がスムーズで、アクセシビリティ対応済み。Radix UIのVue版として安定。
採用Pinia 3 で状態管理
Vue 3の公式推奨。ウォレット状態・アカウント一覧・ネットワーク設定を型安全に管理。