
Rustok Wallet
io.github.rustok-orgPublished by GitHub account rustok-orgv0.4.2Updated Oct 24, 2026
Self-custody Ethereum agent wallet (MCP/stdio). Keys stay in a local Docker volume.
Overview
Self-custody Ethereum agent wallet MCP server that lets an assistant read wallet balances, preview transactions and, when granted, execute transfers from a key-
- What you can do
- Read wallet state and balances across the configured chains (read_wallet capability).
- When to use it
- When you want an AI agent to inspect a self-custody Ethereum wallet or prepare and, with explicit grants, send transactions while keys stay on your own machine.
- Requirements
- Runs locally as a Docker image over stdio; Docker is required. A wallet must be initialized with a PIN and recovery phrase. Capabilities are granted explicitly (for example via RUSTOK_MCP_CAPABILITIES); chains are set by RUSTOK_ALLOWED_CHAINS, and custom RPC endpoints or an Alchemy key can be supplied. Network access to RPC nodes is needed.
Installation
In SourceWeft
- Open Rustok Wallet in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
rustok-mcp
MCP Server for Rustok — connects Claude Desktop, Cursor, and cloud agents to the Rustok wallet via Gateway.
Two editions
Rustok ships two wallet products — pick the trust model you want:
Install (rustok-wallet-tui, self-custody)
Install trusted cosign 3+ independently, then use the verify-before-execute bootstrap in the published release skill. It downloads over --proto '=https' --tlsv1.2, verifies the manifest signature and installer hash before running the installer. There is no pipe-to-shell path. The repository skill is an unfilled source template; install wallet binaries only from the generated release/listing package.
rustok connect claude --force --capabilities read_wallet,preview_tx,execute_tx requires confirmation in the user's own terminal before expanding rights. Core policy and PIN remain separate from the capability grant. rustok update verifies a signed release and preserves explicit subsets; live sessions retain their old image/grants until a human restart. There are no hard-coded spending limits after the user acknowledges unlimited autonomy.
The wallet is one self-contained image (Core + Gateway + MCP over stdio + the
human-approval console); keys live only in a local container volume and never
leave your machine. Transactions that move funds are approved by a human in a
second terminal with rustok console — the agent cannot drive it.
Install as an agent skill
The wallet skill (skills/rustok-wallet-tui/)
installs straight from this repo:
Both editions are on ClawHub as separate listings: the agent edition at
@temrjan/rustok-wallet, and the
console edition — the maintained one — at
@rustok/wallet, published as
Rustok Agentic Wallet.
Registries
- Official MCP Registry — the agent edition is published as
io.github.rustok-org/rustok-wallet(OCI packageghcr.io/rustok-org/rustok-wallet, stdio). A TUI-edition registry entry ships separately asio.github.rustok-org/rustok-wallet-tui. - ClawHub — two listings: the console edition (maintained) at
@rustok/wallet, and the agent edition at@temrjan/rustok-wallet.
Quick Start (Development)
Docker
To run the full stack (MCP → Gateway → Core + Redis), use the compose file
in rustok-org/meta.
Authentication
The network-facing SSE transport is gated by a shared bearer token.
- Inbound (
RUSTOK_MCP_INBOUND_API_KEY) — clients must sendAuthorization: Bearer <token>to reach/mcp/sseand/mcp/message. Distinct from the outboundRUSTOK_MCP_API_KEY(MCP → Gateway). - Dev: leave it empty — the loopback flow stays open and the server logs a warning at startup.
- Prod: required. The token must travel in the request header, never in a
query string (query strings leak into access logs). Generate one with
openssl rand -hex 32. - The browser
EventSourceAPI cannot set headers and is not a supported client; use an MCP client that sends request headers. /healthis always public (used by the container healthcheck).- The local stdio transport is process-trusted and not gated.
⚠️ The MCP has no built-in brute-force / rate-limit protection. Terminate it behind the edge proxy (Caddy) with host-level rate limiting (see the
rustok-org/metadeploy docs); do not expose it to the internet directly.
What is Rustok?
Rustok is a self-custody AI-native crypto wallet. The MCP Server is a thin bridge between LLM agents and the Rustok Gateway — private keys never leave the Core service (they stay in the local keystore volume).
- Self-custody: keys are encrypted at rest (Argon2id + AES-256-GCM) and only decrypted inside Core on your machine.
- Capability-gated tools (
read_wallet/preview_tx/execute_tx): the stdio transport defaults to read-only (explicit grants useRUSTOK_MCP_CAPABILITIES); the network-facing SSE transport is bearer-gated. - No spending policy by design: no hard-coded limits, budgets, or blocklists —
you consciously accept the risk of funds on the agent wallet.
txguardsurfaces a risk level on preview but does not block. Opt-in limits may come later. - Chains:
RUSTOK_ALLOWED_CHAINSdecides which ones are shown (default1,8453,42161— Ethereum, Base, Arbitrum). Those read out of the box: the build carries two public nodes for each. Naming your own (RUSTOK_RPC_URLS_<id>, or an Alchemy key) replaces the carried list rather than joining it. Any node that reads a balance learns the address and the IP that asked — that is true of ours, yours, and your provider's alike. - Informed preview:
preview_transactionreturns the decoded call (who/what is authorized), a pre-sign simulation (revert check), gas, and a txguard risk level. Execution is not exposed as an MCP tool. - Audit logging: every action is append-only logged to SQLite in Core.
Documentation
License
This repository is licensed under MIT-0.
The warranty and liability terms it carries, and the limit of every safeguard this wallet advertises, are stated in full here: https://github.com/rustok-org/mcp/blob/main/DISCLAIMER.md
The Rustok Core wallet engine is a proprietary artifact built from the private rustok-org/core repository.
Source: README.md at commit 209d422
Tools
0Version history
1- v0.4.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts