S Starter

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の公式推奨。ウォレット状態・アカウント一覧・ネットワーク設定を型安全に管理。

ウォレット作成フロー

リンク