IronWallet
io.ironwalletPublished by ironwallet.iov1.2.1Updated Oct 24, 2026
Non-custodial crypto wallet MCP: check balances, sign and send transfers, and swap tokens locally.
Overview
Local non-custodial crypto wallet server that lets an AI assistant check balances, sign and send transfers, and swap tokens across many networks.
- What you can do
- Check balances, transaction history and deposit QR codes for wallets
- Estimate and send transfers, then poll operation status
- List swap networks and assets, get quotes, execute swaps and poll swap status
- Create wallets, open a local browser manager for import, backup and delete, and set per-wallet spending policies
- Inspect the running version and stage npm updates
- When to use it
- Useful when you want an assistant to operate a small hot wallet on your own desktop: checking balances, moving tokens, or swapping across chains from chat. Not intended for main wallets or for remote or phone-based agents.
- Requirements
- Node.js 20+ and npx; runs as a local stdio process on a desktop. No config needed for normal use: on first launch it writes a relay API key, keystore wrapping secret and device id under a local keystore directory. Optional overrides include IW_PASSPHRASE, IW_READ_ONLY, IW_RELAY_API_KEY, IW_DEVICE_ID, IW_KEYSTORE_DIR and IW_TON_API_KEY. Network access to IronWallet backends and public explorers is required.
Installation
In SourceWeft
- Open IronWallet 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
@ironwallet/mcp-server
Local MCP server for IronWallet (ironwallet-mcp bin).
The IronWallet MCP server gives AI agents secure access to a non-custodial wallet. Seed phrases stay encrypted on the host and never leave this machine — they never pass through the agent. Agents can retrieve balances, sign locally, transfer tokens, and swap across 10+ networks.
Seed-compatible with the IronWallet app.
There is no per-transaction confirmation UI.
Hot-wallet only. Use a dedicated wallet with limited balance. See Security.
Product page: ironwallet.io/ai
Requirements: Node.js 20+ (npx).
Install
Or add to MCP config (Cursor: .cursor/mcp.json or global):
npx pulls the latest published build. First launch can take ~30s while dependencies install. If the MCP client times out, run the same command once in a terminal to warm the cache, then reconnect.
The plugin install on ironwallet.io/ai wires this up automatically.
How it works
The mnemonic never appears in tool inputs/outputs, logs meant for the agent, or requests to backends / the LLM / the MCP client’s cloud.
Features
Tools
No tool accepts or returns a seed. Import, backup, and delete only in the local browser (open_wallet_manager / backup_url).
Wallets
- Create:
create_wallets— the agent gets names and addresses; openbackup_urlin a browser to view and back up recovery phrases. - Import / back up:
open_wallet_manager— loopback-only page; the phrase is typed or shown only in the browser. - Delete: the Delete button in the manager. A separate confirmation page asks the user to retype the wallet name; a wallet that was never backed up also needs an explicit acknowledgement that its recovery phrase is destroyed. Funds are not moved. There is no MCP tool for this.
- List:
list_wallets - Deposit QR:
get_deposit_qr— PNG (generated on the fly) plusqr_url. Show the image in chat when the host renders it; otherwise openqr_url. Passnetworkfor one chain. The wallet manager also has a QR button next to each address.
The browser page binds to 127.0.0.1 under an unguessable path and shuts down after 15 minutes of inactivity.
Transfers
list_wallets/get_balanceestimate_transfer(optional)send_transferget_operation_statuswhen you need to wait on the operation
send_transfer may reduce the amount slightly so the fee still fits the balance; the response reports when that happened.
Swaps
Swaps are a separate flow from transfers.
list_swap_networkslist_swap_assets(direction=from, thendirection=towith the chosen sell asset)- Copy network, symbol, address, decimals from the catalog into
estimate_swap/execute_swap(especially for tokens) estimate_swapfor a preview, or go straight toexecute_swap- Poll with
get_swap_statususing theoperationIdfromexecute_swap(estimate_swapis a quote and has no status)
Useful options
maxMode: true— sell as much of the balance as the service allows (fees are accounted for server-side).amountcan be omitted whenmaxModeis set.- Omit
addressonly for native coins. For tokens, always passaddress(and ideallydecimals) fromlist_swap_assets.
Operational notes
- Quotes expire. Prefer
execute_swap(fresh quote). If execute times out, poll status before retrying — do not blindly re-run execute. - Wallet policy:
readOnlyblocks sends and swaps.maxPerTxUsdvalues the transfer amount (or the corrected swap sell amount) in USD at operation time via IronWallet backend rates; when no rate is available the operation is rejected (fail closed). The recipient allow-list applies tosend_transfer.set_wallet_policyreplaces the whole policy — readlist_wallets.policyfirst.
Configuration
Nothing to paste into MCP config for normal use. On first launch the server writes a relay API key, keystore wrapping secret, and device id under ~/.ironwallet-mcp/ (keystore-passphrase, relay-api-key, device-id; owner-only POSIX 0600 or NTFS ACL on Windows). Set the env vars only to override.
The user-facing backup is the recovery phrase in the wallet manager, not those files.
Security
- Seeds are encrypted at rest. They never appear in tool results, agent chat, or backend requests.
- The agent can move funds without asking again. Optional wallet policy (
readOnly,maxPerTxUsd, transfer recipient allow-list — set viaset_wallet_policy) is off by default and applies to bothsend_transferandexecute_swap. - Anyone with the keystore and the wrapping secret controls the funds. A leaked seed cannot be revoked.
- Timeout is not always failure: poll status before retrying a send or swap.
- Desktop / stdio only. A phone or remote agent would need a design where signing stays on a trusted device.
- Do not put a main wallet here. Use a small hot wallet.
Details and private disclosure: SECURITY.md.
License
Source: packages/mcp-server/README.md at commit 173c2d6
Tools
0Version history
1- v1.2.1LatestSep 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