Token Balances: Comprehensive Guide to On-Chain Data Analysis

·

Understanding token balances across blockchain networks is essential for analysts, developers, and researchers diving into decentralized ecosystems. The tokens_.balances_daily table serves as a foundational dataset, capturing daily token holdings across all addresses on EVM-compatible blockchains. This resource enables deep insights into asset distribution, wallet activity, and economic behavior within Web3.

Whether you're evaluating token concentration, tracking portfolio shifts, or analyzing multi-signature treasury holdings, this guide breaks down everything you need to know about balance data structure, coverage, calculation logic, and practical querying techniques.

👉 Discover real-time blockchain analytics tools to enhance your research


What Data Does the tokens_.balances_daily Table Include?

The tokens_.balances_daily table aggregates daily snapshots of token balances for every address on supported networks. It covers four primary asset types:

Each record reflects the end-of-day balance for a specific address-token pair, making it ideal for longitudinal studies and macro-level trend analysis.

This dataset is particularly valuable for:


Supported Blockchain Networks

Balance data is available across a growing list of EVM-compatible chains, ensuring broad cross-chain analytical capability. Currently supported networks include:

As layer-2 adoption accelerates and new rollups gain traction, this list continues to expand—providing consistent data structures across chains for seamless comparative analysis.


How Are Token Balances Calculated?

Accurate balance tracking relies on robust on-chain event parsing. The methodology varies slightly depending on the token standard:

Native Currency Balances

For native assets like ETH or MATIC, balances are derived from:

An address must appear in at least one of these sources to have its balance updated.

ERC-20 Token Balances

ERC-20 balances are calculated by analyzing transfer events from the tokens_ethereum_base_transfers model. Each Transfer event adjusts the sender and receiver balances accordingly.

⚠️ Known Limitations:

We are actively improving detection mechanisms for these edge cases. If you encounter a token with custom event logic, please report it for potential integration.

ERC-721 & ERC-1155 (NFT) Balances

NFT holdings are tracked using the nft_ethereum_transfers model. Ownership changes are detected via Transfer, TransferSingle, and TransferBatch events.

Because NFTs are unique or semi-fungible, balances are typically counted per token ID rather than aggregate value—though floor price estimations may be used for USD valuation.

Note: Balance updates depend on upstream event processing latency in Dune’s Spellbook pipeline. There is typically a short delay (up to 2 hours) between real-time blockchain state and final data availability.

Granular Balance Tracking with tokens_.balances

For high-resolution analysis, the tokens_.balances table provides block-level balance changes. Unlike the daily-aggregated version, this table captures every balance update per block, enabling:

However, due to its size and complexity, it's not recommended for:

Instead, use tokens_.balances_daily for scalable, efficient reporting.

👉 Access advanced blockchain data dashboards with powerful filtering options


Practical Query Examples

Below are reusable SQL templates to extract meaningful insights from the balance tables.

Retrieve Latest Fungible Token Balances for an Address

Use this query to get up-to-date ERC-20 and native token holdings for any wallet.

select
 address,
 token_symbol as symbol,
 balance,
 balance_usd,
 token_address
from tokens_{{blockchain}}.balances_daily
where address = {{wallet_address}}
  and day = date_trunc('day', now())
  and (token_standard = 'erc20' or token_standard = 'native')
  and balance_usd > 1
order by balance_usd desc

💡 Tip: Filter by balance_usd > 1 to exclude negligible dust balances.


Track Daily Fungible Balances Over Time

Analyze how a user’s portfolio evolves across weeks or months.

select
 b.day,
 b.token_symbol,
 b.token_address,
 b.balance,
 b.balance_usd
from tokens_{{blockchain}}.balances_daily b
where address = {{wallet_address}}
  and (token_standard = 'erc20' or token_standard = 'native')
  and b.day > date_trunc('day', now()) - interval '{{months}}' month
  and balance_usd > 1
order by day desc, balance_usd desc

Replace {{months}} with your desired timeframe (e.g., '6' for six months).


Identify Top 50 Holders of an ERC-20 Token

Evaluate token distribution concentration on Ethereum Mainnet.

WITH RankedBalances AS (
 SELECT
   b.address,
   b.balance,
   ROW_NUMBER() OVER(PARTITION BY b.day ORDER BY b.balance DESC) AS rank
 FROM tokens_ethereum.balances_daily b
 WHERE token_address = 0xbaac2b4491727d78d2b78815144570b9f2fe8899
   AND b.day = date_trunc('day', current_date)
)
SELECT
 address,
 balance
FROM RankedBalances
WHERE rank <= 50;

This helps assess decentralization and detect potential centralization risks.


Frequently Asked Questions (FAQ)

Q: Why doesn't my address appear in the balance table?
A: Addresses only appear if they’ve participated in transactions, transfers, or mining activities. Inactive wallets or those interacting with non-standard contracts may not be indexed.

Q: Are rebasing tokens like stETH accurately reflected?
A: Not always. Due to supply adjustments not emitting standard transfer events, balances may lag. We’re enhancing support for such tokens.

Q: How often is the tokens_.balances_daily table updated?
A: Daily, based on end-of-day blockchain state. There’s typically a 1–2 hour processing delay.

Q: Can I track NFT collections with this table?
A: Yes—use token_standard = 'erc721' or 'erc1155' filters and group by token_address to analyze ownership distribution.

Q: Is cross-chain balance comparison possible?
A: Absolutely. With standardized schemas across chains, you can write unified queries to compare holdings on Arbitrum vs. Optimism, for example.

Q: What should I do if a token isn’t showing correct balances?
A: Check if it uses non-standard events. If so, submit feedback—custom event parsing may be added in future updates.


Final Thoughts

The tokens_.balances_daily table is a cornerstone of on-chain analytics, offering structured, reliable access to wallet-level token data across major EVM networks. From monitoring whale movements to auditing protocol treasuries, its applications span research, security, and investment strategy.

For deeper exploration and real-time insights:

👉 Explore blockchain analytics with powerful query and visualization tools