Skip to main content
The beacon.raw.balances_daily table provides daily snapshots of active validator balances on the Beacon Chain, including aggregated network-level metrics and validator-specific balance information. Each row represents a validator’s state at the end of a day (snapshot taken at the last slot of the day in UTC).

Use Cases

Daily Accounting & Reconciliation: Create daily balance statements for each validator with network-wide context. Aggregate daily balances to calculate network-wide staking metrics, total effective balance, and participation rates. Performance Tracking: Monitor validator balance changes across consecutive days to derive effective income, identify slashing events, and track withdrawal activity. Analyze balance distribution across validator cohorts. Network Health Analysis: Track total staked ETH, active validator count, and overall network participation metrics on a daily basis. Compare balance trends over time to understand network growth and validator turnover.

Table Columns

Clustering Key: date Search Optimization: validator_index
Column NameDescription
dateDate of the daily snapshot (UTC).
validator_indexThe index of the validator in the validator registry.
balanceBalance of the validator in ETH at end of day.
effective_balanceThe balance at stake in ETH at end of day.
statusValidator status (e.g., active_ongoing, withdrawal_done, exited_unslashed, exited_slashed, etc.).
pubkeyThe validator’s BLS public key, uniquely identifying them.
withdrawal_addressWithdrawal address of the validator.
slashedBoolean indicating if the validator has been slashed.
activation_epochThe epoch when the validator was activated.
exit_epochThe epoch when the validator exited or will exit.
withdrawable_epochThe epoch when the validator’s balance became withdrawable.

Sample Queries

Query 1: Daily Network-Wide Staking Metrics

select
    date,
    count(1) as total_validators,
    sum(balance) as total_balance_eth,
    sum(effective_balance) as total_effective_balance_eth,
    avg(balance) as avg_balance_per_validator,
    countif(status = 'active_ongoing') as active_validators
from beacon.raw.balances_daily
group by date
order by date desc
limit 30

Query 2: Individual Validator Balance History

select
    date,
    balance,
    effective_balance,
    status,
    balance - lag(balance) over (order by date) as daily_balance_change
from beacon.raw.balances_daily
where validator_index = 12345
order by date desc
limit 90

Query 3: Slashing Events Detection

select
    date,
    validator_index,
    pubkey,
    balance,
    effective_balance,
    status
from beacon.raw.balances_daily
where slashed = true
order by date desc