Check cryptocurrency wallet balances, token holdings, transaction history, token approvals, ENS name resolution, and on-chain activity. Use when asked about wallet balance, what tokens an address holds, transaction history, pending transactions, token allowances, ENS lookup, or address portfolio.
Scanned 9/7/2026
Install to Claude Code
npx -y skills add jiayaoqijia/cryptoskill --skill crypto-wallet --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Crypto Wallet?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jiayaoqijia-crypto-wallet)More formats (shields.io, HTML) on the badges page.
---
name: crypto-wallet
description: >
Check cryptocurrency wallet balances, token holdings, transaction history, token approvals,
ENS name resolution, and on-chain activity. Use when asked about wallet balance, what tokens
an address holds, transaction history, pending transactions, token allowances, ENS lookup,
or address portfolio.
---
# Crypto Wallet
Query on-chain wallet data: balances, tokens, transactions, approvals, and ENS resolution.
## Common ERC-20 Function Selectors
| Function | Selector | Params |
|----------|----------|--------|
| `balanceOf(address)` | `0x70a08231` | address (32 bytes, left-padded) |
| `allowance(address,address)` | `0xdd62ed3e` | owner + spender (each 32 bytes) |
| `decimals()` | `0x313ce567` | none |
| `symbol()` | `0x95d89b41` | none |
| `name()` | `0x06fdde03` | none |
| `totalSupply()` | `0x18160ddd` | none |
## APIs
### ETH Balance via Public RPC
**Native ETH balance** (eth_getBalance):
```
exec command="curl -s -X POST https://eth.llamarpc.com -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBalance\",\"params\":[\"0xADDRESS\",\"latest\"],\"id\":1}'"
```
**ERC-20 token balance** (eth_call with balanceOf):
```
exec command="curl -s -X POST https://eth.llamarpc.com -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"method\":\"eth_call\",\"params\":[{\"to\":\"0xTOKEN_CONTRACT\",\"data\":\"0x70a08231000000000000000000000000WALLET_NO_0x\"},\"latest\"],\"id\":1}'"
```
> Result is hex. Convert: `parseInt(result, 16) / 10^decimals`
### Multi-chain Public RPCs
| Chain | RPC URL |
|-------|---------|
| Ethereum | `https://eth.llamarpc.com` |
| Arbitrum | `https://arb1.arbitrum.io/rpc` |
| Optimism | `https://mainnet.optimism.io` |
| Base | `https://mainnet.base.org` |
| Polygon | `https://polygon-rpc.com` |
| BSC | `https://bsc-dataseed.binance.org` |
| Avalanche | `https://api.avax.network/ext/bc/C/rpc` |
### Etherscan / Block Explorers (Free tier, API key optional)
Base URLs:
- Ethereum: `https://api.etherscan.io/api`
- Arbitrum: `https://api.arbiscan.io/api`
- Base: `https://api.basescan.org/api`
- Optimism: `https://api-optimistic.etherscan.io/api`
- Polygon: `https://api.polygonscan.com/api`
- BSC: `https://api.bscscan.com/api`
**Token balances for address** (requires free API key):
```
web_fetch url="https://api.etherscan.io/api?module=account&action=tokentx&address=0xADDRESS&page=1&offset=50&sort=desc&apikey=YOUR_KEY"
```
**Normal transactions**:
```
web_fetch url="https://api.etherscan.io/api?module=account&action=txlist&address=0xADDRESS&startblock=0&endblock=99999999&page=1&offset=20&sort=desc&apikey=YOUR_KEY"
```
**ETH balance** (no key needed, rate limited):
```
web_fetch url="https://api.etherscan.io/api?module=account&action=balance&address=0xADDRESS&tag=latest"
```
### ENS Resolution
**Forward (name to address)** via RPC:
```
exec command="curl -s -X POST https://eth.llamarpc.com -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"method\":\"eth_call\",\"params\":[{\"to\":\"0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41\",\"data\":\"0x3b3b57de{NAMEHASH}\"},\"latest\"],\"id\":1}'"
```
**Simpler: use ENS public API**:
```
web_fetch url="https://ensdata.net/ADDRESS_OR_NAME"
```
### Token Approvals
**Check allowance** (how much a spender can use):
```
exec command="curl -s -X POST https://eth.llamarpc.com -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"method\":\"eth_call\",\"params\":[{\"to\":\"0xTOKEN\",\"data\":\"0xdd62ed3e000000000000000000000000OWNER_NO_0x000000000000000000000000SPENDER_NO_0x\"},\"latest\"],\"id\":1}'"
```
> Unlimited approval = `0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`
## External Tools (Optional)
- **EVM MCP Server**: `npx @mcpdotdirect/evm-mcp-server` — read balances, tokens, NFTs across 60+ EVM chains
- **Base MCP**: `github.com/base/base-mcp` — Coinbase-official Base chain tools
## Usage Tips
- Always pad addresses to 32 bytes (64 hex chars) in eth_call data fields
- Strip `0x` prefix from address when embedding in calldata, then left-pad with zeros
- Results from eth_call are hex-encoded; parse with `parseInt(hex, 16)`
- For ERC-20 balances, divide by `10^decimals` (USDC=6, most tokens=18)
- For multi-token portfolios, use Etherscan tokentx endpoint rather than individual RPC calls
- Verify chain before querying — same address can exist on multiple chains with different balances
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!