Etherscan API: Get Ethereum wallet
Looks up an Ethereum wallet on Etherscan by address or ENS name: its ETH balance and USD value, the largest displayed ERC-20 holdings, and the newest confirmed transactions. Pending transactions are excluded; unpriced holdings have no USD value.
Unofficial. Not affiliated with or endorsed by Etherscan.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Wallet, required
wallet Ethereum address or ENS name, for example vitalik.eth.
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
- Max Transactions optional
max_transactions Maximum confirmed transactions to return, for example 10.
50
Whole number from 1 to 50. Default
10.
Input as JSON
{ "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "max_transactions": 50}Output
{ "link": "https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" , "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "ens_name": "vitalik.eth", "eth_balance": 5.721681785331997, "eth_value_usd": 15262.41, "token_holdings": [ { "link": "https://etherscan.io/token/0xdd974d5c2e2928dea5f71b9825b8b646686bd200?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" , "amount": 700008.53137379, "symbol": "KNC", "value_usd": 99203.11, "token_name": "KyberNetwork" }, { "link": "https://etherscan.io/token/0xc18360217d8f7ab5e7c516566761ea12ce7f9d72?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" , "amount": 1144.03607606, "symbol": "ENS", "value_usd": 7493.44, "token_name": "Ethereum Name Service" }, { "link": "https://etherscan.io/token/0xd26114cd6EE289AccF82350c8d8487fedB8A0C07?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" , "amount": 123647.03042853, "symbol": "OMG", "value_usd": 6223.16, "token_name": "OMG Network" } ], "recent_transactions": [ { "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "from": "0x7c59bc02fb160a3a0225d69E9fb125D328ED7986", "link": "https://etherscan.io/tx/0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd" , "status": "Success", "fee_eth": 0.00001297, "date_time": "2026-09-28T21:53:47Z", "direction": "In", "amount_eth": 0, "block_number": 26078766, "transaction_hash": "0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd" }, { "to": "0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63", "from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "link": "https://etherscan.io/tx/0x5ada7b3be9e868cc19a13673a2924b68060217b6d07db35becd7253709918e11" , "status": "Success", "fee_eth": 0.00000548, "date_time": "2026-09-27T10:36:35Z", "direction": "Out", "amount_eth": 0, "block_number": 26068237, "transaction_hash": "0x5ada7b3be9e868cc19a13673a2924b68060217b6d07db35becd7253709918e11" }, { "to": "0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63", "from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "link": "https://etherscan.io/tx/0x647ffd3040db8ff2c32f23a208a294f67ff64de894caec29049804def55fadf1" , "status": "Success", "fee_eth": 0.00000593, "date_time": "2026-09-27T10:13:23Z", "direction": "Out", "amount_eth": 0, "block_number": 26068122, "transaction_hash": "0x647ffd3040db8ff2c32f23a208a294f67ff64de894caec29049804def55fadf1" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"etherscan.io/get_wallet","input":{"wallet":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","max_transactions":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "etherscan.io/get_wallet" , "input": { "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "max_transactions": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "etherscan.io/get_wallet" , "input": { "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "max_transactions": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run etherscan.io/get_wallet# with {"wallet":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","max_transactions":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "wallet" ], "properties": { "wallet": { "type": "string", "description": "Ethereum address or ENS name, for example vitalik.eth." }, "max_transactions": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Maximum confirmed transactions to return, for example 10." } }}Output schema
{ "type": "object", "required": [ "address", "ens_name", "eth_balance", "eth_value_usd", "token_holdings", "recent_transactions", "link" ], "properties": { "link": { "type": "string", "description": "Etherscan wallet page." }, "address": { "type": "string", "description": "Ethereum wallet address." }, "ens_name": { "type": [ "string", "null" ], "description": "ENS name, if shown." }, "eth_balance": { "type": "number", "description": "ETH held." }, "eth_value_usd": { "type": [ "number", "null" ], "description": "Value in US dollars, or null when not shown." }, "token_holdings": { "type": "array", "items": { "type": "object", "required": [ "token_name", "symbol", "amount", "value_usd", "link" ], "properties": { "link": { "type": "string", "description": "Etherscan page for this holding." }, "amount": { "type": "number", "description": "Token units held." }, "symbol": { "type": [ "string", "null" ], "description": "Token ticker symbol." }, "value_usd": { "type": [ "number", "null" ], "description": "Value in US dollars, or null when not shown." }, "token_name": { "type": "string", "description": "Name of the token." } } }, "description": "Up to 20 token holdings sorted by displayed USD value." }, "recent_transactions": { "type": "array", "items": { "type": "object", "required": [ "date_time", "direction", "from", "to", "amount_eth", "fee_eth", "status", "link", "transaction_hash", "block_number" ], "properties": { "to": { "type": [ "string", "null" ], "description": "Receiving address or label." }, "from": { "type": [ "string", "null" ], "description": "Sending address or label." }, "link": { "type": "string", "description": "Etherscan transaction page." }, "status": { "enum": [ "Success", "Failed" ], "type": "string", "description": "Final transaction status." }, "fee_eth": { "type": "number", "description": "Transaction fee in ETH." }, "date_time": { "type": "string", "description": "Confirmed transaction time in UTC, ISO 8601." }, "direction": { "enum": [ "In", "Out", "Self" ], "type": "string", "description": "Wallet direction." }, "amount_eth": { "type": "number", "description": "Amount of ETH transferred." }, "block_number": { "type": "integer", "description": "Confirmed block number.", "x-fous-developer": true }, "transaction_hash": { "type": "string", "description": "Transaction hash.", "x-fous-developer": true } } }, "description": "Newest confirmed wallet transactions first." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
etherscan.io/get_wallet- Returns
- address, ENS name, ETH balance, USD value, token holdings, recent transactions
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method etherscan.io/get_wallet with the inputs above.
Ask your agent
- What's the ETH balance and USD value of vitalik.eth right now?
- Pull up the wallet 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on Etherscan and show me its top token holdings plus the last 25 transactions.
- Check what tokens nick.eth is holding and list its 5 most recent confirmed transactions
- Using etherscan.io, look up 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 — I need the ETH balance, dollar value, and latest transfers.
- How much ETH does 0x220866B1A2219f40e72f5c628B65D54268cA3A9D have, and what ERC-20 tokens are in it? Include up to 50 recent transactions.
See more
Returns a Bitcoin address's confirmed and pending balances, lifetime received and sent totals, and up to 50 recent transactions. USD balance uses the latest reported Bitcoin price.
mempool.space/get_bitcoin_addressGets an ETF's free holdings list from Stock Analysis by ticker or exact fund name: each holding's weight and shares, plus the fund's expense ratio, total number of holdings, holdings date and exact assets under management when shown.
stockanalysis.com/get_etf_holdingsGets a cryptocurrency's price, changes, supply, market cap, volume and all-time high in a chosen currency. If a name or symbol is shared, returns the coin with the largest market cap.
coinmarketcap.com/get_coin_priceLists up to 15 of the most-searched coins on CoinGecko in trending order, with price and 24-hour change in the chosen currency. Non-USD prices may be unavailable for some coins.
coingecko.com/list_trending_coinsReturns the current crypto Fear and Greed Index with yesterday, last week and last month comparisons, plus total crypto market size, BTC and ETH dominance from CoinMarketCap.
coinmarketcap.com/get_fear_and_greed_indexGets a Binance spot pair's latest price and rolling 24-hour trading statistics from a coin name or symbol. Only currently trading pairs are available.
binance.com/get_coin_priceGets a cryptocurrency's price, 24-hour change, market statistics, popularity, tradability, description and website from its public Coinbase price page.
coinbase.com/get_coin_overviewChecks a person or organisation name against the EU consolidated financial sanctions list (asset freezes) on the EU Sanctions Map, returning likely matches with their regime, aliases, listing details and linked legal act. Name similarity is a screening aid, not identity confirmation.
sanctionsmap.eu/check_sanctions