Odel
IronWallet

IronWallet

Local
@ironwalletTypeScriptMITUpdated 4 days ago

Non-custodial crypto wallet MCP: check balances, sign and send transfers, and swap tokens locally.

IronWallet for AI agents

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. 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.

Requirements: Node.js 20+ (npx). Use a dedicated wallet with limited balance.

Product page: ironwallet.io/ai. Machine-readable index: llms.txt.

Opening this repository in Claude Code starts the wallet MCP via .mcp.json. See CLAUDE.md.

Install

Cursor: ironwallet.io/ai

Claude Code:

claude plugin marketplace add ironwallet/ironwallet-agent-kit
claude plugin install ironwallet-mcp@ironwallet

Codex:

codex plugin marketplace add ironwallet/ironwallet-agent-kit
codex plugin add ironwallet-mcp@ironwallet

Grok:

grok plugin marketplace add ironwallet/ironwallet-agent-kit
grok plugin install ironwallet-mcp --trust

Reload so MCP picks up PATH. From a local clone, use . instead of the GitHub repo.

MCP only (no plugin)

Manually installed MCP does not auto-update with the plugin.

{
  "mcpServers": {
    "ironwallet": {
      "command": "npx",
      "args": ["-y", "@ironwallet/mcp-server"]
    }
  }
}

What's included

Skill

SkillWhen to use
ironwallet-mcpNon-custodial wallet: balances, local signing, transfers, swaps, deposit QR. Invoke as /ironwallet-mcp

Rules

RuleWhat it enforces
wallet-transaction-safetyHot wallet; no extra confirmation UI; poll status on timeout, never resubmit blindly
seed-phrase-handlingRecovery phrases and private keys never appear in chat, files, or logs
swap-asset-resolutionNetworks and tokens come from catalog tools, not model memory

Agent

AgentPurpose
ironwallet-operatorOperate the non-custodial wallet: balances, local signing, transfers, swaps, deposit QR

MCP server

@ironwallet/mcp-server over stdio. Networks: Ethereum, BSC, Polygon, Base, Arbitrum, Optimism, Avalanche, Tron, Bitcoin, Litecoin, Dogecoin, Solana, XRP, TON.

Tools

ToolPurposeMoves funds?
get_runtime_infoRunning version vs published npm packageno
prepare_updateStage the npm update for the next restartno
list_walletsNames, addresses, and policyno
accept_mcp_consentRecord chat acceptance of the MCP disclaimerno
create_walletsNew wallets; returns a browser backup_urlno
open_wallet_managerLocal browser UI to import / create / back up / deleteno
set_wallet_policyReplace per-wallet limits (readOnly, maxPerTxUsd, allow-list)no
get_deposit_qrPNG QR (try chat; else local qr_url)no
get_balanceNative or token balanceno
get_transaction_historyRecent txs from public explorers (paged)no
estimate_transferFee estimate, no broadcastno
send_transferSign locally and sendyes
get_operation_statusPoll a transferno
list_swap_networksNetworks available for swapno
list_swap_assetsSell / buy catalogno
estimate_swapQuote (may expire)no
execute_swapFresh quote → sign → swapyes
get_swap_statusPoll a swapno

No tool accepts or returns a seed. Import, backup, and delete only in the local browser (open_wallet_manager / backup_url); deleting asks the user to retype the wallet name.

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/ (mode 0600). Override with IW_RELAY_API_KEY / IW_PASSPHRASE / IW_DEVICE_ID only if you must.

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 via set_wallet_policy) is off by default and applies to both sends and swaps.
  • 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.
  • Do not put a main wallet here. Use a small hot wallet.

Details and private disclosure: SECURITY.md.

Contributing

This public tree is a release snapshot. See CONTRIBUTING.md. Please follow the Code of Conduct.

License

MIT