Skip to main content
Open Beta: The balances tables are currently in open beta and may experience performance limitations. We are actively working on revamping and improving these tables. For optimal performance, please follow the query patterns documented on the individual balance pages.
Dune provides token balance data that enables tracking of asset holdings across blockchain addresses. Balance data is essential for portfolio analysis, wallet tracking, and understanding asset distribution across networks.
Maintained by: Dune · Refresh: ~1.5 hours · Chains: EVM networks, Solana

Get This Data

Access balance data via API, Datashare, or the Dune App.

Available Datasets

Key Features

  • Multi-Asset Coverage: Native currencies, ERC20 tokens, NFTs (ERC721/ERC1155), SOL, and SPL tokens
  • Daily Snapshots: End-of-day balance snapshots for historical analysis
  • Granular Changes: Block-level balance change tracking
  • Cross-Chain Support: Balance data across multiple EVM networks and Solana

When to Use These Tables

  • Track wallet portfolio holdings and historical balances
  • Analyze token holder distribution and concentration metrics
  • Monitor treasury balances for DAOs and protocols
  • Build wallet scoring and risk profiling systems
  • Power portfolio dashboards and balance alerts

Query Performance

Balance tables come in two variants: _latest (current snapshot) and _daily (historical). Use _latest for current balances and _daily for historical analysis. Partition keys: blockchain, token_address (varies by table)
-- ✅ Good: latest balances with chain filter
SELECT * FROM balances.erc20_latest
WHERE blockchain = 'ethereum'
  AND address = 0x...

-- ✅ Good: historical with date filter
SELECT * FROM balances.erc20_daily
WHERE blockchain = 'ethereum'
  AND block_date >= DATE '2025-01-01'
  AND address = 0x...

Methodology

Balance tables are maintained by Dune (source code). They compute cumulative balances from token transfer events — summing all incoming and outgoing transfers per address per token. The _latest tables provide the most recent balance snapshot, while _daily tables store end-of-day balances for historical analysis.

Example Queries

Top ETH holders on Ethereum:
SELECT
  address,
  balance,
  balance_usd
FROM balances.erc20_latest
WHERE blockchain = 'ethereum'
  AND token_address = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 -- WETH
ORDER BY balance DESC
LIMIT 20
Daily USDC balance for a specific wallet:
SELECT
  block_date,
  balance,
  balance_usd
FROM balances.erc20_daily
WHERE blockchain = 'ethereum'
  AND address = 0x...
  AND token_address = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  AND block_date >= DATE '2025-01-01'
ORDER BY block_date
  • tokens.transfers — Raw transfer events underlying balance calculations
  • prices.day / prices.latest — Token pricing for USD balance values
  • tokens.erc20 — Token metadata (symbols, decimals)
  • tokens_solana.fungible — Solana SPL token metadata
  • labels.addresses — Address identification for known entities