API Docs

The dashboard's data as a free REST API and an MCP server. Read-only: nothing here can sign or send transactions.

Getting started

  1. Sign in with your wallet on the MCP Server page and create an API key (free, up to 3 per wallet).
  2. Send it as Authorization: Bearer <key>. Each key gets 200 calls a day, shared between REST and MCP, and resets at 00:00 UTC.
  3. Every endpoint is a POST with a JSON body and returns { "data": … }, or { "error": "…" } with status 400 (bad input), 401 (key), 429 (quota) or 502 (a data source failed).
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_gas \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Wallet portfolio

POST /api/v1/tools/get_wallet_portfolio

Token holdings of a wallet on one network, with USD values and 24h changes (spam tokens excluded).

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_wallet_portfolio \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

Wallet profit and loss

POST /api/v1/tools/get_wallet_pnl

Realized profit and loss summary for a wallet on Ethereum mainnet (trades, volume, realized PnL).

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_wallet_pnl \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

Wallet activity

POST /api/v1/tools/get_wallet_activity

Recent transactions of a wallet in plain English (sends, receives, swaps, approvals...), newest first.

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
limitintegerHow many items to return (1-25) Default: 15.
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_wallet_activity \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

Token approvals

POST /api/v1/tools/get_token_approvals

ERC20 spending approvals a wallet has granted, with USD at risk and whether the spender is unlimited or unknown.

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_token_approvals \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

DeFi positions

POST /api/v1/tools/get_defi_positions

A wallet's positions in DeFi protocols (lending, liquidity, staking) with USD values.

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_defi_positions \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

Resolve ENS

POST /api/v1/tools/resolve_ens

Turns an ENS name into an address, or an address into its primary ENS name.

ParameterTypeDescription
nameOrAddress*stringAn ENS name to resolve, or an address to look up its primary name
curl -X POST https://ethereumdashboard.dev/api/v1/tools/resolve_ens \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"nameOrAddress":"vitalik.eth"}'

Gas prices

POST /api/v1/tools/get_gas

Current Ethereum gas: next block base fee and total gas price at 70-99% confidence of inclusion, in gwei.

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_gas \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Token price

POST /api/v1/tools/get_token_price

USD price, 24h change and market cap of a coin, by CoinGecko ID, symbol or name (e.g. ethereum, ETH, Chainlink).

ParameterTypeDescription
coin*stringCoin name, symbol or CoinGecko id (e.g. ethereum, LINK, uniswap)
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_token_price \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"coin":"ethereum"}'

Market overview

POST /api/v1/tools/get_market_overview

Total crypto market cap and volume, BTC/ETH dominance, and the top 24h gainers and losers among the top 250 coins.

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_market_overview \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

NFT collection

POST /api/v1/tools/get_nft_collection

Floor price, volume, sales and owners of an NFT collection, by OpenSea slug (e.g. pudgypenguins) or contract address.

ParameterTypeDescription
collection*stringNFT contract address or OpenSea collection slug
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_nft_collection \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"collection":"pudgypenguins"}'

Validator queue

POST /api/v1/tools/get_validator_queue

Ethereum validator entry and exit queues and the active validator count (Beacon chain).

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_validator_queue \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Staking overview

POST /api/v1/tools/get_staking_overview

Total ETH staked, staking ratio, base APR, and the largest liquid staking and restaking protocols.

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_staking_overview \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

DeFi TVL

POST /api/v1/tools/get_defi_tvl

DeFi total value locked by chain and top protocols, DEX volume, fees, stablecoin supply and the best yields (DefiLlama).

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_defi_tvl \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Layer 2 stats

POST /api/v1/tools/get_l2_stats

Value locked, rollup type and L2BEAT risk stage for the supported layer 2s (Base, Arbitrum, OP Mainnet, Polygon, Linea...).

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_l2_stats \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Decode transaction

POST /api/v1/tools/decode_transaction

Details of a transaction by hash: status, from/to, value, fee, and decoded token transfers and approvals.

ParameterTypeDescription
hash*stringTransaction hash (0x + 64 hex characters)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea
curl -X POST https://ethereumdashboard.dev/api/v1/tools/decode_transaction \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hash":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"}'

Address info

POST /api/v1/tools/get_address_info

Native balance, transaction count, and whether an address is a contract or token, with its known label.

ParameterTypeDescription
address*stringWallet address (0x...) or ENS name (e.g. vitalik.eth)
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea
curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_address_info \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"vitalik.eth"}'

Token risk check

POST /api/v1/tools/check_token_risk

GoPlus security check of an ERC20 token: honeypot, taxes, mintable, owner privileges, holder count.

ParameterTypeDescription
token*stringERC20 token contract address
chainstringNetwork: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi. Defaults to eth (Ethereum mainnet). Default: "eth".One of: eth, base, arbitrum, optimism, polygon, linea, sepolia, hoodi
curl -X POST https://ethereumdashboard.dev/api/v1/tools/check_token_risk \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"token":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}'

ETH supply

POST /api/v1/tools/get_eth_supply

ETH issued vs burnt over the last day, whether supply is inflating or deflating, and the blob fee burn.

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_eth_supply \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Governance proposals

POST /api/v1/tools/get_governance_proposals

Active and recently closed Snapshot votes for major DAOs (Aave, Uniswap, ENS, Lido, Arbitrum...).

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_governance_proposals \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

ETH derivatives

POST /api/v1/tools/get_derivatives

ETH perpetual funding rates and open interest (Deribit, OKX, Bybit) and the options market summary.

No parameters: send an empty body.

curl -X POST https://ethereumdashboard.dev/api/v1/tools/get_derivatives \
  -H "Authorization: Bearer $ETHD_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'