solana.core Table: fact_sol_daily_balances Type: Base Table
Description
This table provides daily snapshots of native SOL balances for each account on the Solana blockchain. It creates a complete daily time series by forward-filling the most recent balance when thereās no activity on a given day, ensuring every account has a balance record for each date since their first transaction. When multiple balance updates occur within a day, only the last balance is retained. The table tracks native SOL only (mint address: So11111111111111111111111111111111111111111). Important: If an account is left with a 0 balance at the end of the day, it is not included in the table. This means accounts will ādisappearā from the daily snapshots when their balance reaches zero and āreappearā when they receive SOL again.Key Use Cases
- Daily balance analysis: Track SOL holdings over time for accounts, wallets, and protocols
- Portfolio tracking: Monitor SOL balance changes and trends for specific addresses
- Whale watching: Identify large SOL holders and track their balance movements
- Protocol analysis: Analyze SOL reserves and treasury balances for DeFi protocols
- Time series analytics: Perform historical balance analysis and trend identification
- Snapshot reporting: Generate point-in-time balance reports for any historical date
Important Relationships
- Sources data from
core.fact_sol_balanceswhich contains all SOL balance changes - Uses
crosschain.core.dim_datesfor generating complete daily time series - Complements
core.fact_token_daily_balanceswhich handles SPL token balances - Related to
core.ez_transfersfor understanding SOL movement patterns
Commonly-used Fields
balance_date: Essential for time-based analysis and filtering to specific datesaccount: Core field for account-specific balance tracking and wallet analysisamount: The SOL balance amount (in decimal SOL, not lamports) for value calculationslast_balance_change: Critical for understanding when balances were last updated (only tracks dates when account had a positive balance)balance_changed_on_date: Key for filtering to only dates with actual balance activity
Sample Queries
Get current SOL balance for a specific account
Track SOL balance changes over time for an account
Find accounts with largest SOL balances on a specific date
Analyze SOL balance distribution
Columns
| Column Name | Data Type | Description |
|---|---|---|
| BALANCE_DATE | DATE | The date for which the balance snapshot is recorded. This field represents the calendar date (in UTC) for the daily balance record, providing the time dimension for balance analysis. |
- Native SOL:
7GgkQ2...(wallet address) - SPL Token:
9xQeWv...(token account address) | | AMOUNT | FLOAT | The accountās balance after the transaction, decimal-adjusted. For SOL, this is in units of SOL (not lamports); for tokens, this is in the tokenās native units (adjusted for mint decimals).
- SOL:
0.23456789(represents 0.23456789 SOL after a transfer) - USDC:
50.00(represents 50 USDC tokens after a transfer) | | LAST_BALANCE_CHANGE | DATE | The date when this account last had an actual balance change that resulted in a positive balance. This field tracks the most recent date when the balance was modified to a positive amount, which may be earlier than the balance_date due to forward-filling of balances on days with no activity. Note that accounts with zero balances are excluded from daily balance tables.