evm-wallet/SKILL.md
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.
npx skillsauth add oxfrancesco/clawd-web3-skills evm-wallet-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Self-sovereign EVM wallet. Private keys stored locally, no external API dependencies.
Detect workspace and skill directory:
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:
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.
Generate a wallet (only needed once):
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.
When user asks about balance, portfolio, or how much they have:
# 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.
When user wants to send, transfer, or pay someone:
# 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:
Only add --yes after the user explicitly confirms.
When user wants to swap, trade, buy, or sell tokens:
# 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
eth for native ETH/POL, or pass a contract address--slippage <percent>⚠️ ALWAYS show the quote first and get user confirmation before executing.
When user wants to call a smart contract function:
# 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:
# 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
node src/check-update.js --json
If an update is available, inform the user and offer to run:
cd "$SKILL_DIR" && git pull && npm install
| 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).
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029130x42000000000000000000000000000000000000060xA0b86a33E6441b8a46a59DE4c4C5E8F5a6a7A8d00xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2~/.evm-wallet.jsonnode src/setup.js --json firstdevelopment
Create and manage blockchain wallets for users, agents, and companies using Crossmint API. Supports EVM chains, Solana, and Stellar.
development
--- name: evm-balance-checker description: Check EVM wallet balances across multiple chains using reliable RPC endpoints. Supports native ETH and ERC20 token balance checks. Use when you need to: (1) Check wallet balance on Ethereum, Base, Polygon, or Arbitrum, (2) Query balances on testnets (Sepolia), (3) Verify funds before transactions, (4) Check balances across multiple chains at once. Includes built-in reliable RPC endpoints to avoid common issues with flaky public nodes. --- # EVM Balance
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.