Crypto Analytics
by @solidgea
Multi-chain blockchain analytics for wallet balances, transaction history, and address validation. Supports 60+ EVM chains via Etherscan V2, plus Bitcoin and...
clawhub install crypto-analyticsπ About This Skill
name: crypto-analytics slug: crypto-analytics version: 1.0.3 homepage: https://clawhub.com/skills/crypto-analytics repository: https://github.com/yourusername/crypto-analytics description: "Multi-chain blockchain analytics for wallet balances, transaction history, and address validation. Supports 60+ EVM chains via Etherscan V2, plus Bitcoin and Solana. Use to check wallet balances, view transactions, get transaction details, validate addresses, or list supported chains." changelog: "v1.0.3: Fixed privacy section to accurately describe local caching (may store queried addresses). Improved .env loading to only use workspace root (AGENTS.md/.git detection). v1.0.2: Published version before false-positive appeal. v1.0.1: Added missing 'tokens' command handler. Fixed CHAINS typo in get_wallet_tokens."
Crypto Analytics
Overview
A comprehensive multi-chain blockchain analysis tool using live API data:
All commands return JSON with optional human-readable formatting.
Privacy & Data Handling
This skill respects your privacy and operates transparently:
api.etherscan.io (Etherscan V2)
- blockchair.com (Blockchair)
- Public Solana RPC endpoints
~/.openclaw/cache/crypto-analytics/api_responses/ and may contain queried addresses, transaction hashes, and other public blockchain data you requested. Files are automatically expired and can be manually deleted. This data never leaves your machine.ETHERSCAN_API_KEY from a .env file located in the OpenClaw workspace root. No other environment variables are accessed.requests library only.You can audit the source code in scripts/crypto_api.py β it's straightforward HTTP + JSON.
Configuration (Optional)
Set ETHERSCAN_API_KEY to increase rate limits (free tier: 5 calls/sec). Get a key from https://etherscan.io/apis
export ETHERSCAN_API_KEY=your_key_here
Or add to ~/.openclaw/workspace/.env
Core Commands
balance [chain]
Get native token balance for a wallet.Parameters:
address - Blockchain addresschain (optional) - Chain identifier. Auto-detects from address format if omitted.ethereum, sepolia, bsc, polygon, arbitrum, base, optimism, avalanche, and more
- Non-EVM: bitcoin, solanaExample:
crypto-analytics balance 0x742d35Cc6634C0532925a3b8D4C9db96C4b4Db45 ethereum
Output:
{
"chain": "ethereum",
"chainid": 1,
"address": "0x742d35cc6634c0532925a3b8d4c9db96c4b4db45",
"balance_wei": 1234567890000000000,
"balance_native": 1.23456789,
"formatted_balance": "1.234568 ETH"
}
transactions [chain] [limit=20]
Get recent transaction history.Parameters:
address - Wallet addresschain (optional) - Chain identifier (auto-detected if omitted)limit (optional) - Maximum transactions to return (default 20, max 100)Example:
crypto-analytics transactions 0x742d35Cc6634C0532925a3b8D4C9db96C4b4Db45 bsc 50
Output:
{
"chain": "bsc",
"chainid": 56,
"address": "...",
"count": 150,
"transactions": [ /* array of tx objects */ ]
}
tx
Get full transaction details.Parameters:
txhash - Transaction hashchain - Chain identifier (required)Example:
crypto-analytics tx 0x123abc... ethereum
Output:
{
"chain": "ethereum",
"chainid": 1,
"txhash": "0x123abc...",
"transaction": { /* full tx object */ }
}
validate
Check address validity and detect chain.Parameters:
address - Address to validateExample:
crypto-analytics validate bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
Output:
{
"valid": true,
"chain": "bitcoin",
"normalized": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"error": null
}
chains
List all supported blockchains with their specs.Example:
crypto-analytics chains
gas [chain=ethereum]
Get current gas price estimates including Safe, Standard, and Fast rates, plus base fee (EIP-1559).Parameters:
chain (optional) - Chain identifier (default: ethereum)Example:
crypto-analytics gas ethereum
Output:
{
"chain": "ethereum",
"chainid": 1,
"low": 20000000000,
"standard": 50000000000,
"fast": 80000000000,
"base_fee": 15000000000,
"timestamp": 1700000000,
"formatted": "=== Gas Price Tracker ===\nSafe: 20.00 Gwei\nStandard: 50.00 Gwei\nFast: 80.00 Gwei\nBase Fee: 15.00 Gwei\nUpdated: 2023-11-14 10:00:00 UTC"
}
token [chain]
Get ERC-20 token balance for a specific token contract, with symbol and formatted human-readable value.Parameters:
address - Wallet addresstoken_contract - ERC-20 token contract addresschain (optional) - Chain identifier (auto-detected if omitted)Example:
crypto-analytics token 0xYourAddress 0xA0b86991c6218b36c1d19D4a2e9bB0e3606EB48 ethereum
Output:
{
"chain": "ethereum",
"contract": "0xa0b86991c6218b36c1d19d4a2e9bb0e3606eb48",
"owner": "0xYourAddress",
"balance": 1000000,
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6,
"formatted": "=== Token Balances ===\nUSDC (USD Coin)\n Balance: 1.000000\n Contract: 0xa0b86991c6218b36c1d19d4a2e9bb0e3606eb48\n"
}
tokens [chain] [limit=20]
Get all ERC-20 token balances for a wallet by auto-discovering tokens from recent transfer history. Returns non-zero balances with symbols and decimals.Parameters:
address - Wallet addresschain (optional) - Chain identifier (auto-detected if omitted)limit (optional) - Maximum number of tokens to check (default 20)Example:
crypto-analytics tokens 0xYourAddress ethereum 10
Output:
{
"chain": "ethereum",
"address": "0xYourAddress",
"count": 2,
"tokens": [
{
"contract": "0xa0b86991c6218b36c1d19d4a2e9bb0e3606eb48",
"balance": 1000000,
"symbol": "USDC",
"name": "USD Coin",
"decimals": 6
},
{
"contract": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"balance": 500000,
"symbol": "USDT",
"name": "Tether USD",
"decimals": 6
}
],
"formatted": "=== Token Balances ===\nUSDC (USD Coin)\n Balance: 1.000000\n Contract: 0xa0b8...\nUSDT (Tether USD)\n Balance: 0.500000\n Contract: 0xdac1..."
}
spl-tokens
Get SPL token accounts for a Solana wallet. Returns mint addresses and token amounts (human-readable).Parameters:
owner - Solana wallet address (Base58)Example:
crypto-analytics spl-tokens 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU
Output:
{
"owner": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"tokens": [
{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": 10.5,
"decimals": 9
}
],
"formatted": "Owner: 7xKX...\\nToken count: 1\\n EPjF...: 10.50000000\\n"
}
When to Use This Skill
Use crypto-analytics when you need to:
Example Scenarios
> "Check my ETH balance"
> balance 0x... ethereum or auto-detect if address starts with 0x
> "How much BNB do I have on BSC?"
> balance 0x... bsc
> "Show me recent transactions for this Bitcoin address"
> transactions 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa bitcoin
> "Is this a valid address and what chain is it on?"
> validate
> "What chains do you support?"
> chains
> "Get details for tx 0xabc... on Arbitrum"
> tx 0xabc... arbitrum
> "Check my USDC balance on Ethereum"
> token 0x... 0xA0b86991c6218b36c1d19D4a2e9bB0e3606EB48 ethereum
> "Show all tokens I have on Ethereum"
> tokens 0x... ethereum
> "What's the current gas price on Arbitrum?"
> gas arbitrum
Implementation Notes
API Providers
Caching & Rate Limiting
~/.openclaw/cache/crypto-analytics/api_responses/Configuration
Set API keys in .env:
ETHERSCAN_API_KEY=YourEtherscanKeyHere
Key optional for low-volume usage but recommended.
See references/api_index.md for full API documentation and references/chains.md for chain specifications.
Limitations & Future
Current limitations:
Planned enhancements:
Resources
This skill bundles useful reference material:
references/chains.md - Chain specifications, address formats, explorersreferences/api_index.md - API endpoints, parameters, examplesThese files are loaded into context only when needed.
βοΈ Configuration
Set API keys in .env:
ETHERSCAN_API_KEY=YourEtherscanKeyHere
Key optional for low-volume usage but recommended.
See references/api_index.md for full API documentation and references/chains.md for chain specifications.