mcpField
R
Rustok Wallet

Rustok Wallet

ローカル
github.com/temrjan金融データ07 週間前に更新

Rustok Wallet について

Rustok Walletは、個人やAIエージェント向けのセルフカストディ型Ethereumウォレットです。モバイルアプリとCLIを備え、txguardが署名前にトランザクションを解析・シミュレーションし、複数チェーンの残高と送金をまとめて扱えます。

主な機能

  1. 015つのメインネットで残高と送金を統合
  2. 02BIP39シードフレーズの作成と復元
  3. 03署名前のtxguardセキュリティ分析
  4. 04PINと生体認証によるロック
  5. 05保留状態を含むトランザクション履歴

活用シーン

  1. 01複数のEthereumネットワークで資産を管理
  2. 02署名前にトランザクションリスクを確認
  3. 03CLIでEVMトランザクションを分析
  4. 04AIエージェントに段階的な実行権限を設定

MCP 対応

AIエージェント向けのMCPツールを提供し、フェイルクローズの機能制御で読み取り、プレビュー、実行の権限を分けます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"temrjan-rustok-wallet": {
"command": "npx",
"args": [
"-y",
"rustok-agent-mcp"
],
"env": {
"RUSTOK_AGENT_PASSWORD": "<RUSTOK_AGENT_PASSWORD>"
}
}
}
}
起動コマンドnpx -y rustok-agent-mcp
設定が必要な環境変数
RUSTOK_AGENT_PASSWORDシークレットPassword to unlock the agent wallet

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmrustok-agent-mcp0.2.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Rustok

チェーン抽象化とトランザクションセキュリティエンジンを備えた Ethereum ウォレットです。

ステータス: 本番稼働中 — フェーズ 7 完了 — Sepolia で Android の動作確認済み。iOS にも対応しています。実際のオンチェーントランザクション、完全なオンボーディング、txguard によるリアルタイム分析を備えた React Native アプリです。

ウェブサイト: rustokwallet.com | X: @rustokwallet | エージェント版: github.com/rustok-org


これは何ですか?

Rustok は、次の 2 つの考え方を軸に構築されたセルフカストディ型の Ethereum ウォレットです。

  1. 自分の鍵で、自分のチェーンを管理 — 1 つのシードフレーズで、Ethereum、Arbitrum、Base、Optimism、zkSync の各アドレスを管理できます。残高とルーティングは統合されており、チェーンを選べば、あとはウォレットが処理します。
  2. 信頼しつつ、検証する — すべてのトランザクションは署名の前に txguard によって分析されます。calldata をデコードし、セキュリティルールを適用し、revm で実行をシミュレートし、脅威インテリジェンスで検出結果を補強します。

モバイルアプリ(Android + iOS)が主なインターフェースです。ヘッドレスでの txguard 分析には、公開 HTTP API と CLI を利用できます。

2026 年の進化: 同じセルフカストディのコアが、AI エージェント向けウォレットとしても提供されるようになりました。フェイルクローズ方式の機能ゲート(read / preview / execute)と、3 段階の信頼レベル(自律型エージェント → コンソール承認 → スマートフォン署名)を備えた MCP ツールを提供します。rustokwallet.com と rustok-org のリポジトリ(mcp、console、mobile、paraswap-mcp、uniswap)をご覧ください。


機能

  • マルチチェーンウォレット — 5 つのメインネットチェーンと Sepolia テストネットで、残高、送金、受取を一元管理
  • BIP39 シードフレーズ — MetaMask 互換のパス(m/44'/60'/0'/0/0)とデバイス間のリカバリーに対応
  • txguard 分析 — 署名前にセキュリティスキャンを実施し、リスクバッジと検出項目ごとの内訳を表示
  • PIN + 生体認証ロック — Argon2id でハッシュ化された PIN、Face ID / 指紋認証によるロック解除、バックグラウンド時の自動ロック
  • オンボーディング — ウォレットの作成(4 ステップのウィザード + フレーズクイズ)、シードフレーズからのインポート、またはロックアウト / 生体認証の変更からの復旧
  • アクティビティ履歴 — 保留状態の追跡とエクスプローラーへのリンクに対応した、実際のトランザクションフィード
  • テーマ — UI 全体でデザイントークンの一貫性を保つ、ライト / ダーク / システム設定

アーキテクチャ

┌─────────────────────────────────────────────────────────────┐
│                    Mobile App (Android / iOS)                │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌────────────────┐ │
│  │ Wallet  │  │ Activity│  │ TxGuard │  │    Settings    │ │
│  │  Tab    │  │  Tab    │  │  Tab    │  │  (Appearance,   │ │
│  │         │  │         │  │         │  │   Biometric,   │ │
│  │ • Hero  │  │ • TX    │  │ • Risk  │  │   Auto-lock,   │ │
│  │   card  │  │   list  │  │   badge │  │   Network)     │ │
│  │ • Send  │  │ • Pull  │  │ • Per-  │  │                │ │
│  │ • QR    │  │   refresh│  │   finding│  │                │ │
│  └─────────┘  └─────────┘  └─────────┘  └────────────────┘ │
│  ┌─────────────────────────────────────────────────────────┐│
│  │  React Navigation v7  •  Zustand 5  •  NativeWind v4   ││
│  │  Reanimated 4  •  MMKV  •  Keychain  •  Argon2id       ││
│  └─────────────────────────────────────────────────────────┘│
└───────────────────────────┬─────────────────────────────────┘
                            │ JS ↔ Rust Bridge
┌───────────────────────────▼─────────────────────────────────┐
│          react-native-rustok-bridge                          │
│          (uniffi-bindgen-react-native 0.31)                 │
└───────────────────────────┬─────────────────────────────────┘
                            │ FFI
┌───────────────────────────▼─────────────────────────────────┐
│                      Rust Workspace                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │ rustok-core │  │   txguard   │  │    rustok-api       │ │
│  │             │  │             │  │                     │ │
│  │ • keyring   │  │ • parser    │  │  Axum HTTP server   │ │
│  │ • provider  │  │ • rules     │  │  /health            │ │
│  │ • router    │  │ • simulator │  │  /check-address     │ │
│  │ • send      │  │ • enrichment│  │  /decode            │ │
│  │ • explorer  │  │             │  │                     │ │
│  │ • explainer │  │ 8 security  │  │  Self-hosted        │ │
│  │ • convert   │  │ rules       │  │  (see deploy/)      │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │ rustok-cli  │  │ rustok-types│  │rustok-mobile-bindings│ │
│  │             │  │             │  │                     │ │
│  │  CLI binary │  │ Shared DTOs │  │  uniffi FFI exports │ │
│  │  (decode,   │  │  (no crypto │  │  for iOS / Android  │ │
│  │   analyze,  │  │   deps)     │  │                     │ │
│  │   wallet,   │  │             │  │                     │ │
│  │   send)     │  │             │  │                     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

技術スタック

レイヤー技術
モバイルReact Native 0.85.2、React 19.2.3、TypeScript 5.8
ナビゲーションReact Navigation v7(bottom-tabs、native-stack)
スタイリングNativeWind v4、TailwindCSS 3.4、デザイントークンシステム
状態管理Zustand 5、MMKV(永続化)、React Native Keychain(シークレット)
アニメーションReanimated 4.3、React Native Worklets、Gesture Handler
ブリッジuniffi-bindgen-react-native 0.31.0-2
言語Rust(edition 2024)
EVMrevm v36、alloy-evm v0.30
Ethereumalloy-rs v1.8(provider、signer、primitives、consensus)
暗号BIP39(m/44'/60'/0'/0/0)、AES-256-GCM、Argon2id、secp256k1
HTTPAxum 0.8、Tower HTTP(CORS、trace)
非同期処理Tokio、Futures
シリアライゼーションSerde、Serde JSON
CLIclap v4
ログ記録tracing、tracing-subscriber

クイックスタート

モバイルアプリ

前提条件: Node.js ≥ 22.11、Android SDK(Android の場合)、または Xcode + CocoaPods(iOS の場合)。

# Install dependencies
cd mobile && npm install

# Start Metro bundler
npx react-native start --port 8081

# Android (separate terminal)
cd android && ./gradlew app:installDebug -PreactNativeDevServerPort=8081
# Windows: .\gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

# iOS (macOS only, separate terminal)
cd ios && pod install && cd .. && npx react-native run-ios

物理 Android デバイスの場合:

adb reverse tcp:8081 tcp:8081

モバイルの詳細ドキュメント: オンボーディングのフロー、ブリッジのインターフェース、DEV 用の回避手段、Android / Windows 固有の情報については、mobile/README.md をご覧ください。

Rust ワークスペース
# Run all tests
cargo test --workspace

# Build CLI
cargo build -p rustok --release

# Run API server locally
cargo run -p rustok-api
CLI の例
トランザクションのセキュリティ分析
# Decode ERC-20 approve calldata
rustok decode \
  --to 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
  --data 0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240

# Full security analysis (parse + rules + verdict)
# Exit codes: 0=allow, 1=warn, 2=block
rustok analyze \
  --to 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
  --data 0x095ea7b3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ウォレット操作
# Generate a new encrypted wallet
rustok wallet new --password "your-secure-password"

# Check unified balance across Ethereum, Arbitrum, Base, Optimism, zkSync
rustok wallet balance 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

# Show wallet info from keystore file
rustok wallet info --keystore 0xabc...def.json --password "your-password"

# Send ETH (txguard security check mandatory, testnet by default)
rustok wallet send --keystore wallet.json --password "pwd" --to 0xd8dA...6045 --amount 0.1

セキュリティルール(txguard)

ルール重大度トリガー
unlimited_approval警告approve(spender, type(uint256).max)
set_approval_for_all警告setApprovalForAll(operator, true)
permit_to_unknown危険不明な spender への EIP-2612 permit
permit_unlimited警告value == U256::MAX の Permit
known_scam禁止詐欺データベースに登録されたアドレス
unknown_function警告認識されない関数セレクター
value_with_calldata警告コントラクト呼び出し時の ETH 送金
send_to_contract情報コントラクトアドレスへの送金

対応チェーン

チェーンIDステータス
Ethereum1有効
Arbitrum One42161有効
Base8453有効
Optimism10有効
zkSync Era324有効
Sepolia11155111テストネット

txguard API

トランザクションのセキュリティ分析用パブリック API(rustok-api、Axum)。セルフホスト可能です。deploy/ を参照してください。

エンドポイントメソッド説明
/healthGETヘルスチェック
/check-addressPOSTGoPlus によるアドレスのセキュリティチェック(悪意あるアドレスのフラグ、リスクレベル、リスク)
/decodePOSTEVM トランザクションの生データをデコードして分析(アクション、リスクスコア、検出事項)
# Check address
curl -X POST https://your-rustok-api-host/check-address \
  -H "Content-Type: application/json" \
  -d '{"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7"}'

# Decode transaction
curl -X POST https://your-rustok-api-host/decode \
  -H "Content-Type: application/json" \
  -d '{"to": "0xdAC17F958D2ee523a2206206994597C13D831ec7", "data": "0x095ea7b3000000000000000000000000000000000000000000000000000000000000dead00000000000000000000000000000000000000000000000000000000000f4240"}'

Docker + Caddy を使用して 185.197.195.191 にデプロイされています(deploy/)。


テスト

517 tests, 0 failures
 - Rust workspace: 231 tests (txguard, core, types, mobile-bindings)
 - Mobile (Jest):   286 tests (components, stores, hooks, screens)

コミット前のゲート:

# Rust
cargo fmt --all --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace

# Mobile
cd mobile && npm run typecheck && npm run lint && npm run test

プロジェクト構成

rustok/
├── mobile/                          # React Native app (primary UI)
│   ├── src/
│   │   ├── screens/                 # Wallet, Activity, TxGuard, Settings, Onboarding
│   │   ├── components/              # Design system primitives
│   │   ├── navigation/              # AppShell, navigators
│   │   ├── stores/                  # Zustand + MMKV state
│   │   ├── hooks/                   # Selectors and logic
│   │   ├── lib/                     # Bridge, formatting, explorers
│   │   └── theme/                   # Design tokens
│   ├── android/                     # Gradle project
│   └── ios/                         # Xcode project
│
├── packages/
│   └── react-native-rustok-bridge/  # uniffi JS ↔ Rust bridge package
│
├── crates/                          # Rust workspace
│   ├── txguard/                     # Transaction security engine
│   ├── core/                        # Wallet logic (keyring, provider, router, send)
│   ├── types/                       # Shared DTOs
│   ├── api/                         # Axum HTTP server
│   ├── cli/                         # CLI binary
│   └── rustok-mobile-bindings/      # uniffi FFI exports
│
├── deploy/                          # Docker + Caddy deployment
└── docs/                            # Architecture, phase handoffs, incident reports

ライセンス

Rustok はデュアルライセンスです。

  • AGPL-3.0-or-later — オープンソースです。派生著作物やネットワーク経由でアクセスできるサービスのソースコードをユーザーに提供することを含め、AGPL の条件を遵守するあらゆる用途で無料で使用できます。
  • Commercial License — AGPL-3.0 に準拠できない用途(例:ソースコードを非公開にした Apple App Store または Google Play での配布、プロプライエタリ製品への組み込み)については、著作権者から入手できます。

ライセンス、商標、貢献に関する条件の概要は、NOTICE.md を参照してください。

商標

「Rustok」と「txguard」は Temrjan Khasenov の商標です。ソースコードは AGPL-3.0 ですが、商標は対象外です。詳細は TRADEMARK.md を参照してください。

ビジュアルアセット

ロゴ、アイコン、ブランド画像は AGPL-3.0 の対象外です。詳細は ASSETS-LICENSE.md を参照してください。

貢献

貢献は Developer Certificate of Origin(DCO)の条件に基づいて受け入れられます。詳細は CONTRIBUTING.md を参照してください。

Copyright (c) 2025-2026 Temrjan Khasenov.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。