evm-wallet-skill
Self-sovereign EVM wallet for AI agents. Use when the user wants to create a crypto wallet, check balances, send ETH or ERC20 tokens, swap tokens, or interact with smart contracts. Supports Base, Ethereum, Polygon, Arbitrum, and Optimism. Private keys stored locally — no cloud custody, no API keys required.
Best use case
evm-wallet-skill is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Self-sovereign EVM wallet for AI agents. Use when the user wants to create a crypto wallet, check balances, send ETH or ERC20 tokens, swap tokens, or interact with smart contracts. Supports Base, Ethereum, Polygon, Arbitrum, and Optimism. Private keys stored locally — no cloud custody, no API keys required.
Teams using evm-wallet-skill should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/evm-wallet-skill/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How evm-wallet-skill Compares
| Feature / Agent | evm-wallet-skill | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Self-sovereign EVM wallet for AI agents. Use when the user wants to create a crypto wallet, check balances, send ETH or ERC20 tokens, swap tokens, or interact with smart contracts. Supports Base, Ethereum, Polygon, Arbitrum, and Optimism. Private keys stored locally — no cloud custody, no API keys required.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# EVM Wallet Skill
Self-sovereign EVM wallet. Private keys stored locally, no external API dependencies.
## Installation
Detect workspace and skill directory:
```bash
SKILL_DIR=$(ls -d \
~/openclaw/skills/evm-wallet \
~/OpenClaw/skills/evm-wallet \
~/clawd/skills/evm-wallet \
~/moltbot/skills/evm-wallet \
~/molt/skills/evm-wallet \
2>/dev/null | head -1)
```
If code is not installed yet (no `src/` folder), bootstrap it:
```bash
if [ ! -d "$SKILL_DIR/src" ]; then
git clone https://github.com/surfer77/evm-wallet-skill.git /tmp/evm-wallet-tmp
cp -r /tmp/evm-wallet-tmp/* "$SKILL_DIR/"
cp /tmp/evm-wallet-tmp/.gitignore "$SKILL_DIR/" 2>/dev/null
rm -rf /tmp/evm-wallet-tmp
cd "$SKILL_DIR" && npm install
fi
```
**For all commands below**, always `cd "$SKILL_DIR"` first.
## First-Time Setup
Generate a wallet (only needed once):
```bash
node src/setup.js --json
```
Returns: `{ "success": true, "address": "0x..." }`
The private key is stored at `~/.evm-wallet.json` (chmod 600). **Never share this file.**
## Commands
### Check Balance
When user asks about balance, portfolio, or how much they have:
```bash
# Single chain
node src/balance.js base --json
# All chains at once
node src/balance.js --all --json
# Specific ERC20 token
node src/balance.js base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 --json
```
**Always use `--json`** for parsing. Present results in a human-readable format.
### Send Tokens
When user wants to send, transfer, or pay someone:
```bash
# Native ETH
node src/transfer.js <chain> <to_address> <amount> --yes --json
# ERC20 token
node src/transfer.js <chain> <to_address> <amount> <token_address> --yes --json
```
**⚠️ ALWAYS confirm with the user before executing transfers.** Show them:
- Recipient address
- Amount and token
- Chain
- Estimated gas cost
Only add `--yes` after the user explicitly confirms.
### Swap Tokens
When user wants to swap, trade, buy, or sell tokens:
```bash
# Get quote first
node src/swap.js <chain> <from_token> <to_token> <amount> --quote-only --json
# Execute swap (after user confirms)
node src/swap.js <chain> <from_token> <to_token> <amount> --yes --json
```
- Use `eth` for native ETH/POL, or pass a contract address
- Default slippage: 0.5%. Override with `--slippage <percent>`
- Powered by Odos aggregator (best-route across hundreds of DEXs)
**⚠️ ALWAYS show the quote first and get user confirmation before executing.**
### Contract Interactions
When user wants to call a smart contract function:
```bash
# Read (free, no gas)
node src/contract.js <chain> <contract_address> \
"<function_signature>" [args...] --json
# Write (costs gas — confirm first)
node src/contract.js <chain> <contract_address> \
"<function_signature>" [args...] --yes --json
```
Examples:
```bash
# Check USDC balance
node src/contract.js base \
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \
"balanceOf(address)" 0xWALLET --json
# Approve token spending
node src/contract.js base \
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \
"approve(address,uint256)" 0xSPENDER 1000000 --yes --json
```
### Check for Updates
```bash
node src/check-update.js --json
```
If an update is available, inform the user and offer to run:
```bash
cd "$SKILL_DIR" && git pull && npm install
```
## Supported Chains
| Chain | Native Token | Use For |
|-------|-------------|---------|
| base | ETH | Cheapest fees — default for testing |
| ethereum | ETH | Mainnet, highest fees |
| polygon | POL | Low fees |
| arbitrum | ETH | Low fees |
| optimism | ETH | Low fees |
**Always recommend Base** for first-time users (lowest gas fees).
## Common Token Addresses
### Base
- **USDC:** `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`
- **WETH:** `0x4200000000000000000000000000000000000006`
### Ethereum
- **USDC:** `0xA0b86a33E6441b8a46a59DE4c4C5E8F5a6a7A8d0`
- **WETH:** `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
## Safety Rules
1. **Never execute transfers or swaps without user confirmation**
2. **Never expose the private key** from `~/.evm-wallet.json`
3. **Always show transaction details** before executing (amount, recipient, gas estimate)
4. **Recommend Base** for testing and small amounts
5. **Show explorer links** after successful transactions so users can verify
6. If a command fails, show the error clearly and suggest fixes
## Error Handling
- **"No wallet found"** → Run `node src/setup.js --json` first
- **"Insufficient balance"** → Show current balance, suggest funding
- **"RPC error"** → Retry once, automatic failover built in
- **"No route found"** (swap) → Token pair may lack liquidity
- **"Gas estimation failed"** → May need more ETH for gasRelated Skills
crypto-wallet
Multi-chain cryptocurrency wallet management. Check balances, send tokens, view transaction history across Ethereum, Solana, Bitcoin and more.
portfolio-watcher
Monitor stock/crypto holdings, get price alerts, track portfolio performance
portainer
Control Docker containers and stacks via Portainer API. List containers, start/stop/restart, view logs, and redeploy stacks from git.
portable-tools
Build cross-device tools without hardcoding paths or account names
polymarket
Trade prediction markets on Polymarket. Analyze odds, place bets, track positions, automate alerts, and maximize returns from event outcomes. Covers sports, politics, entertainment, and more.
polymarket-traiding-bot
No description provided.
polymarket-analysis
Analyze Polymarket prediction markets for trading edges. Pair Cost arbitrage, whale tracking, sentiment analysis, momentum signals, user profile tracking. No execution.
polymarket-agent
Autonomous prediction market agent - analyzes markets, researches news, and identifies trading opportunities
polymarket-5
Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.
polymarket-4
Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.
polymarket-3
Query Polymarket prediction market odds and events via CLI. Search for markets, get current prices, list events by category. Supports sports betting (NFL, NBA, soccer/EPL, Champions League), politics, crypto, elections, geopolitics. Real money markets = more accurate than polls. No API key required. Use when asked about odds, probabilities, predictions, or "what are the chances of X".
polymarket-2
Query Polymarket prediction markets - check odds, trending markets, search events, track prices.