ethereum.balances Table: ez_balances_erc20_daily Type: Base Table
What
This table provides daily ERC20 token balance snapshots for verified token contracts by making directbalanceOf contract calls at the end of each day. It captures the current token balance for
each address-token pair that has had transfer activity, providing a comprehensive view of token
holdings across all verified ERC20 tokens with decimal adjustments and USD valuations where
available. Historical ERC20 balances data available, starting from 2025-06-10.
Key Use Cases
- Daily portfolio tracking and balance monitoring for ERC20 tokens
- Historical balance analysis and trend identification
- Token holder distribution analysis at daily granularity
- Wallet balance snapshots for reporting and analytics
- Cross-token balance comparisons and concentration analysis
- Token supply distribution monitoring over time
- Daily balance-based yield and return calculations
Important Relationships
- Join with fact_blocks: Use
block_numberfor block metadata and timestamps - Join with dim_labels: Use
addressfor entity identification and categorization - Join with dim_contracts: Use
contract_addressfor token contract details - Join with ez_prices_hourly: USD valuations already included but can be refreshed
- Join with ez_balances_native_daily: Compare with native token daily balances
- Join with ez_token_transfers: Compare daily balances with transfer activity
Commonly-used Fields
address: The account address holding the token balancecontract_address: The ERC20 token contract addresssymbol: Token symbol (USDC, WETH, etc.)balance: Token balance at end of day, decimal adjusted to standard unitsbalance_usd: USD value of the token balance at end of daybalance_raw: Raw balance in smallest token unit (wei equivalent)balance_precise: Precise decimal-adjusted balance as stringdecimals: Number of decimal places for the tokenblock_date: The date for which this balance snapshot was taken
Sample queries
Daily Token Holdings by AddressColumns
| Column Name | Data Type | Description |
|---|---|---|
| BLOCK_NUMBER | NUMBER | Sequential counter representing the position of a block in the blockchain since genesis (block 0). |
| BLOCK_DATE | DATE | The date for which this balance snapshot represents the end-of-day token balance. |
| ADDRESS | TEXT | The account address whose token balance is recorded in this daily snapshot. |
| CONTRACT_ADDRESS | TEXT | The ERC20 token contract address for which the balance is recorded. |
| DECIMALS | NUMBER | Number of decimal places for the token, used for proper decimal adjustment in balance calculations. |
| SYMBOL | TEXT | The token symbol for the ERC20 token. |
| BALANCE_HEX | TEXT | Hexadecimal representation of the token balance as returned by the balanceOf contract call. |
| BALANCE_RAW | NUMBER | Token balance in the smallest unit (wei equivalent) without decimal adjustment, as returned by the contract. |
| BALANCE_PRECISE | TEXT | Token balance with proper decimal adjustment, returned as a string to preserve precision. |
| BALANCE | FLOAT | Token balance with decimal adjustment converted to a float for easier mathematical operations. |
| BALANCE_USD | FLOAT | USD value of the token balance at the end of the day, calculated using hourly price data. |
| EZ_BALANCES_ERC20_DAILY_ID | TEXT | Primary key - unique identifier for each row ensuring data integrity. |
| INSERTED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp when the record was first added to the Flipside database. |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | UTC timestamp of the most recent update to this record. |
- Immutable once finalized
- Primary ordering mechanism for blockchain data
- Increments by 1 for each new block
- Used as a proxy for time in many analyses
block_date,
address, and contract_address to ensure uniqueness of each daily balance snapshot.
Usage:
- Deduplication in incremental loads
- Join operations for data quality checks
- Troubleshooting specific records
- Identifying unique address-token-date combinations
- Data freshness monitoring - check when balance snapshots were loaded
- Incremental processing markers - identify latest loaded data
- Debugging data pipeline issues
- SLA tracking for daily balance updates
- Data corrections - fixing incorrect balance calculations
- Enrichment additions - adding missing token metadata
- Reprocessing for accuracy - recalculation of balances or USD values
- Schema migrations - structural changes to the table