rustok-wallet について
rustok-walletは、MCPサーバーを介してLLMエージェントをRustokのセルフカストディ型Ethereumウォレットに接続します。鍵はローカルのCoreキーストアに保管され、機能別の権限制御を備えます。保守中のコンソール版では、資金を移動する取引に人間の承認が必要です。
主な機能
- 01MCP経由でRustok Gatewayに接続
- 02ローカルで鍵を暗号化して保管
- 03機能別に制御するウォレット・プレビューツール
- 04取引シミュレーションとリスク評価
- 05追記専用のSQLite操作ログ
活用シーン
- 01エージェントによるウォレット情報の確認
- 02署名前の取引内容の確認
- 03資金移動の取引に端末での承認を要求
MCP 対応
MCPサーバーはエージェントとRustok Gatewayをつなぎ、ローカル利用向けのstdioと、Bearerトークンで保護されたSSE通信を提供します。コンソール版ではウォレットの読み取りと取引プレビューが可能で、資金移動の実行には別端末での承認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/rustok-org/rustok-wallet:v0.4.2ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/rustok-org/rustok-wallet:v0.4.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
rustok-mcp
Rustok 用 MCP サーバーです。Gateway 経由で Claude Desktop、Cursor、クラウドエージェントを Rustok ウォレットに接続します。
2 つのエディション
Rustok には2 種類のウォレット製品があります。希望する信頼モデルを選んでください。
rustok-wallet(エージェントエディション) | rustok-wallet-tui(このリポジトリ) | |
|---|---|---|
| 署名する人 | エージェント(制限なし) | あなた(別のターミナルで rustok-console を使い、y/N + PIN で確認) |
| 配布先 | rustokwallet.com · ClawHub · イメージ ghcr.io/rustok-org/rustok-wallet | このリポジトリ(main) · ClawHub · イメージ ghcr.io/rustok-org/rustok-wallet-tui |
| 系列 | 0.4.x(wallet-v0.4.0 タグから保守) | 0.5.x+ |
インストール(rustok-wallet-tui、セルフカストディ)
信頼できる cosign 3+ を別途インストールしてから、公開済みリリーススキルの、実行前に検証するブートストラップを使用してください。--proto '=https' --tlsv1.2 を使ってダウンロードし、インストーラーを実行する前にマニフェスト署名とインストーラーのハッシュを検証します。パイプでシェルに渡す方法はありません。リポジトリ内のスキルは、未記入のソーステンプレートです。ウォレットのバイナリは、生成されたリリース/掲載パッケージからのみインストールしてください。
rustok init # you choose a 6-digit PIN; the recovery phrase prints once
rustok connect claude # read-only; also cursor / hermes / openclaw
rustok connect claude --force --capabilities read_wallet,preview_tx,execute_tx で権限を拡大するには、ユーザー自身のターミナルで確認する必要があります。コアポリシーと PIN は、機能の許可とは別に管理されます。rustok update は署名済みリリースを検証し、明示的に指定したサブセットを保持します。稼働中のセッションは、人が再起動するまで以前のイメージ/許可を保持します。ユーザーが無制限の自律性を承認した後は、ハードコードされた支出上限はありません。
ウォレットは自己完結型の単一イメージ(Core + Gateway + stdio 経由の MCP + 人間による承認用コンソール)です。鍵はローカルのコンテナーボリュームにのみ保存され、マシンの外に出ることはありません。資金を移動する取引は、2 つ目のターミナルで rustok console を使って人間が承認します。エージェントがコンソールを操作することはできません。
エージェントスキルとしてインストール
ウォレットスキル(skills/rustok-wallet-tui/)は、このリポジトリから直接インストールできます。
# skills CLI (Claude Code, Cursor, and other agents) — https://skills.sh
npx skills add rustok-org/mcp
# Hermes Agent
hermes skills tap add rustok-org/mcp
hermes skills install rustok-org/mcp/rustok-wallet-tui
どちらのエディションも ClawHub に個別の掲載があります。エージェントエディションは
@temrjan/rustok-wallet、保守されているコンソールエディションは
@rustok/wallet で、Rustok Agentic Wallet として公開されています。
レジストリ
- 公式 MCP Registry — エージェントエディションは
io.github.rustok-org/rustok-wallet(OCI パッケージghcr.io/rustok-org/rustok-wallet、stdio)として公開されています。TUI エディションのレジストリエントリーは、別途io.github.rustok-org/rustok-wallet-tuiとして公開されています。 - ClawHub — 2 つの掲載があります。保守されているコンソールエディションは
@rustok/wallet、エージェントエディションは@temrjan/rustok-walletです。
クイックスタート(開発)
# Install dependencies
uv sync --dev
# Run the server
uv run rustok-mcp
# Or run stdio transport
uv run rustok-mcp-stdio
Docker
docker build -t rustok-mcp .
docker run -p 127.0.0.1:3001:3001 -e RUSTOK_MCP_HOST=0.0.0.0 rustok-mcp
スタック全体(MCP → Gateway → Core + Redis)を実行するには、
rustok-org/meta の compose ファイルを使用してください。
認証
ネットワーク経由の SSE トランスポートは、共有ベアラートークンで保護されています。
- 受信(
RUSTOK_MCP_INBOUND_API_KEY)— クライアントが/mcp/sseと/mcp/messageにアクセスするには、Authorization: Bearer <token>を送信する必要があります。 送信側のRUSTOK_MCP_API_KEY(MCP → Gateway)とは別のものです。 - 開発環境: 空のままにしてください。ループバック接続は引き続き開放され、サーバーは起動時に警告をログに記録します。
- 本番環境: 必須です。トークンはリクエストヘッダーで送信してください。クエリ文字列には決して含めないでください(クエリ文字列はアクセスログに残ります)。
openssl rand -hex 32で生成できます。 - ブラウザーの
EventSourceAPI はヘッダーを設定できないため、サポート対象のクライアントではありません。リクエストヘッダーを送信する MCP クライアントを使用してください。 /healthは常に公開されています(コンテナのヘルスチェックに使用されます)。- ローカルの stdio トランスポートはプロセスが信頼されている前提で、アクセス制限はありません。
⚠️ MCP にはブルートフォース攻撃/レート制限に対する組み込みの保護機能がありません。エッジプロキシ(Caddy)の背後で終端し、ホストレベルのレート制限を設定してください(
rustok-org/metaのデプロイ用ドキュメントを参照)。インターネットに直接公開しないでください。
Rustok とは?
Rustok は自己管理型の AI ネイティブな暗号資産ウォレットです。MCP サーバーは LLM エージェントと Rustok Gateway をつなぐ軽量なブリッジです。秘密鍵が Core サービスの外に出ることはありません(ローカルのキーストアボリューム内に保管されます)。
- 自己管理: 鍵は保存時に暗号化され(Argon2id + AES-256-GCM)、お使いのマシン上の Core 内でのみ復号されます。
- 機能別にアクセスを制御するツール(
read_wallet/preview_tx/execute_tx):stdio トランスポートはデフォルトで読み取り専用です(明示的な許可にはRUSTOK_MCP_CAPABILITIESを使用します)。ネットワーク経由の SSE トランスポートはベアラートークンで保護されます。 - 設計上、支出ポリシーはありません: ハードコードされた上限、予算、ブロックリストはありません。エージェント用ウォレットの資金に伴うリスクは、ご自身の判断で受け入れてください。
txguardはプレビュー時にリスクレベルを提示しますが、ブロックはしません。今後、オプトイン方式の上限を追加する可能性があります。 - チェーン:
RUSTOK_ALLOWED_CHAINSで表示対象を決定します(デフォルトは1,8453,42161— Ethereum、Base、Arbitrum)。そのまま読み取り可能な各チェーンには、ビルドに公開ノードが 2 つ含まれています。独自のノード(RUSTOK_RPC_URLS_<id>または Alchemy キー)を指定すると、組み込まれたリストに追加されるのではなく、置き換えられます。残高を読み取るノードには、アドレスとリクエスト元の IP アドレスが伝わります。これは、当方のノード、お客様のノード、プロバイダーのノードのいずれでも同じです。 - 情報に基づくプレビュー:
preview_transactionは、デコードされた呼び出し(誰に何を許可するか)、署名前のシミュレーション(リバートの確認)、ガス、および txguard のリスクレベルを返します。実行は MCP ツールとして公開されていません。 - 監査ログ: すべての操作は Core 内の SQLite に追記専用で記録されます。
ドキュメント
ライセンス
このリポジトリは MIT-0 ライセンスで公開されています。
このライセンスに付随する保証および責任の条件と、このウォレットが掲げるあらゆる保護措置の限界については、以下にすべて記載されています。 https://github.com/rustok-org/mcp/blob/main/DISCLAIMER.md
Rustok Core ウォレットエンジンは、非公開の rustok-org/core リポジトリから構築されたプロプライエタリアーティファクトです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。