Tools for ERC-20 token operations including transfers, approvals, and token information.
Overview
Token tools enable interaction with ERC-20 tokens across supported EVM networks.
| Tool |
Description |
tokens_get_token_info |
Get token metadata (name, symbol, decimals) |
tokens_get_token_balance |
Get token balance for an address |
tokens_get_token_allowance |
Check spending allowance |
tokens_approve |
Approve token spending |
tokens_transfer |
Transfer tokens to address |
tokens_get_top_holders |
Get top token holders |
tokens_get_token_price |
Get token price in USD |
tokens_get_token_info
Get metadata for an ERC-20 token.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"totalSupply": "26000000000000000",
"network": "ethereum"
}
Example
Get info for USDC token on Ethereum
tokens_get_token_balance
Get token balance for a specific address.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
walletAddress |
string |
Yes |
Wallet address to check |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"token": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"symbol": "USDC",
"decimals": 6
},
"wallet": "0x742d35Cc6634C0532925a3b844Bc9e7595f8fEb3",
"balance": "5000.00",
"balanceRaw": "5000000000",
"network": "ethereum"
}
Example
Check USDC balance for 0x742d35... on Arbitrum
tokens_get_token_allowance
Check how much of a token a spender is allowed to use.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
ownerAddress |
string |
Yes |
Token owner address |
spenderAddress |
string |
Yes |
Spender address (e.g., DEX router) |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"owner": "0x742d35Cc6634C0532925a3b844Bc9e7595f8fEb3",
"spender": "0x1111111254EEB25477B68fb85Ed929f73A960582",
"allowance": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
"allowanceFormatted": "unlimited",
"network": "ethereum"
}
Example
Check my USDC allowance for 1inch router
tokens_approve
Approve a spender to use tokens on your behalf.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
spenderAddress |
string |
Yes |
Address to approve |
amount |
string |
Yes |
Amount to approve (or "unlimited") |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"success": true,
"transactionHash": "0xabc123...",
"token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"spender": "0x1111111254EEB25477B68fb85Ed929f73A960582",
"amount": "1000000000",
"network": "ethereum"
}
Example
Approve 1000 USDC for the 1inch router on Arbitrum
Security Note
⚠️ Requires wallet configuration with private key. Use "unlimited" only for trusted protocols.
tokens_transfer
Transfer tokens to another address.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
toAddress |
string |
Yes |
Recipient address |
amount |
string |
Yes |
Amount to transfer |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"success": true,
"transactionHash": "0xdef456...",
"from": "0x742d35Cc6634C0532925a3b844Bc9e7595f8fEb3",
"to": "0x1234567890123456789012345678901234567890",
"token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amount": "100.00",
"network": "ethereum"
}
Example
Send 100 USDC to 0x1234... on Polygon
Security Note
⚠️ Requires wallet configuration with private key. Double-check recipient address before confirming.
tokens_get_top_holders
Get the largest holders of a token.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
network |
string |
No |
Network name (default: ethereum) |
limit |
number |
No |
Number of holders to return (default: 10) |
Response
{
"token": {
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"symbol": "USDC"
},
"holders": [
{
"rank": 1,
"address": "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503",
"balance": "3500000000.00",
"percentage": 13.46
},
{
"rank": 2,
"address": "0x0A59649758aa4d66E25f08Dd01271e891fe52199",
"balance": "2100000000.00",
"percentage": 8.08
}
],
"totalHolders": 1543289,
"network": "ethereum"
}
Example
Show top 10 USDC holders on Ethereum
tokens_get_token_price
Get the current USD price of a token.
Parameters
| Parameter |
Type |
Required |
Description |
tokenAddress |
string |
Yes |
Token contract address |
network |
string |
No |
Network name (default: ethereum) |
Response
{
"token": {
"address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
"symbol": "WBTC",
"name": "Wrapped BTC"
},
"price": 43500.50,
"priceChange24h": 2.35,
"volume24h": 125000000,
"marketCap": 6525075000,
"network": "ethereum"
}
Example
What's the price of WBTC?
Common Token Addresses
Ethereum Mainnet
| Token |
Address |
| USDC |
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| USDT |
0xdAC17F958D2ee523a2206206994597C13D831ec7 |
| WETH |
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| WBTC |
0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 |
| DAI |
0x6B175474E89094C44Da98b954EeszdKAD3eF4cDD |
BNB Smart Chain
| Token |
Address |
| USDC |
0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d |
| USDT |
0x55d398326f99059fF775485246999027B3197955 |
| WBNB |
0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c |
| BUSD |
0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56 |
Arbitrum
| Token |
Address |
| USDC |
0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| USDT |
0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 |
| WETH |
0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 |
| ARB |
0x912CE59144191C1204E64559FE8253a0e49E6548 |
Batch Operations
Check Multiple Token Balances
Show my balances for USDC, USDT, and DAI on Ethereum
Compare Token Prices
Compare prices of USDC, USDT, and DAI
Error Handling
| Error Code |
Description |
INVALID_ADDRESS |
Token or wallet address is invalid |
TOKEN_NOT_FOUND |
Token contract doesn't exist at address |
INSUFFICIENT_BALANCE |
Not enough tokens for transfer |
INSUFFICIENT_ALLOWANCE |
Spender not approved for amount |
TRANSACTION_FAILED |
Transfer or approval transaction failed |