agent-wallet

agent-wallet

MCP server that lets any AI agent operate a wallet directly on-chain: create wallets, send, swap, bridge, and deploy contracts across EVM and Bitcoin networks.

Category
Visit Server

README

agent-wallet (blockchain-skill)

Toolkit that lets any AI agent operate a wallet directly on-chain: create wallets, receive, send, swap, bridge, sign, deploy and verify Solidity contracts, and learn how deployed contracts work. Keys are generated and stored on your own machine (encrypted keystore v3), and transactions go straight to public RPC endpoints. No MetaMask, no exchange, no custodial anything.

Ships three faces over one engine: a CLI (agent-wallet <verb>), an MCP server (stdio), and Claude Code skills. Same verbs, same JSON envelope everywhere.

Install

  • CLI: npx agent-wallet help
  • Skills: npx skills add hec-ovi/blockchain-skill
  • Plugin: /plugin marketplace add hec-ovi/blockchain-skill
  • MCP: register the server from .mcp.json (node bin/agent-wallet.ts mcp)

Requires Node >= 22.18 (runs the TypeScript directly). Put secrets in a git-ignored .env (see .env.example); the CLI and MCP server load it automatically. At minimum set AGENT_WALLET_PASSPHRASE (encrypts the keystore).

Capabilities

Area Verbs Networks
Wallet wallet-create, wallet-import, wallet-list, wallet-addresses EVM + Bitcoin
Read balance, utxos, fees, tx EVM + Bitcoin
Send send (native, ERC-20, BTC, sweep) EVM + Bitcoin
Swap swap-quote, swap (CoW, Kyber, Uniswap) EVM
Bridge bridge-quote, bridge, bridge-status (LI.FI) EVM to EVM
Contracts contract-compile, contract-deploy, contract-call, contract-write, contract-learn EVM
Funding faucet (self-serve testnet gas) Base Sepolia, Ethereum Sepolia

Every default backend is keyless. Optional keys (Etherscan, LI.FI) only raise limits.

Funding (self-serve gas)

An agent can load its own testnet gas headlessly, no captcha or browser, with the faucet verb:

agent-wallet faucet --network base-sepolia --token eth

It uses the Coinbase CDP faucet and needs a free API key (CDP_API_KEY_ID, CDP_API_KEY_SECRET) in .env or ~/.agent-wallet/config.json. Get one at portal.cdp.coinbase.com. Base Sepolia and Ethereum Sepolia are supported, with eth, usdc, eurc, and cbbtc. Bitcoin test faucets still require a human, so use an EVM testnet for automated funding.

Safety

Mainnet is denied until you allow it in ~/.agent-wallet/config.json ({"gate":{"allowMainnet":true}} or a per-chain allowlist, plus optional per-tx caps). Every state-changing operation passes a deterministic gate before anything is signed. Reads are never gated.

What we verified

The toolkit was checked at three levels: an automated suite, live calls against real public networks, and a full run driven by a separate AI agent acting as a first-time user.

Automated suite. npm test runs 95 tests with no external network: schema and contract tests for every layer, key derivation checked against the official BIP-86 and BIP-84 vectors, Bitcoin coin selection, envelope validation, and end-to-end runs of the real CLI and MCP server.

Live public-network checks (opt in with RUN_LIVE=1): balance and tip reads on Ethereum Sepolia and Bitcoin signet, a keyless Sourcify ABI fetch for WETH, and live swap and bridge quotes from CoW, KyberSwap, and LI.FI.

Agent-driven, end to end. A separate model (Claude Haiku), given only the skill and the CLI, was asked in plain language to create a wallet, hand over an address, check a balance, and send funds. Every command it produced was well-formed and correct, the send landed on-chain, and the safety gate refused a mainnet send with a clear reason. One ambiguity showed up (it assumed a network when none was named), so the skill now tells the agent to ask first.

On Base Sepolia (real, clickable). In one run the agent funded a fresh wallet, sent a transfer, deployed the Counter contract, and called increment() (count went from 41 to 42, confirmed by a raw call straight to the chain). It funded itself through the CDP faucet first, with no human faucet visit:

  • Wallet: https://sepolia.basescan.org/address/0xE5f6d3E30259EC65CB373de402647DA3D6Bd7E84
  • Faucet funding: https://sepolia.basescan.org/tx/0x34adadc142150cbd51bf5c8f44766c5fcd0cc7ae4aeb53ec52247a6af25f6ff5
  • Transfer: https://sepolia.basescan.org/tx/0x1e1a51bea96eb6e8b727a0dfcc4a978b2b6ad236ac199f2224d4b48992ad7f97
  • Contract: https://sepolia.basescan.org/address/0xbeaf85138e51c30fe3511f78e7bf868356ec7373
  • Deploy tx: https://sepolia.basescan.org/tx/0x924108df1061ddd917e0785127512a67027d69f3af326c5952488bcce54d5d10
  • increment(): https://sepolia.basescan.org/tx/0xd5e42c9da194487ba261cb6c481cda6a19b7a18c42105a87007c7496ba7236ec

Architecture

Contract-isolated layers under layers/, coupled only through one JSON envelope. Each layer owns its CONTRACT.md, schema/, src/, and tests/. docs/INDEX.md maps what you want to change to the one folder to open. See docs/ARCHITECTURE.md and docs/RESEARCH.md for the design and the 2026 stack choices.

Layer order, easy to hard: core, keys, chains, read, sign, gate, send, learn, contracts, swap, bridge, faucet, agentio (the CLI + MCP surface).

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured