Skip to main content
This table provides daily snapshots of validator stake and commission state on the Monad network, sourced from the staking precompile getValidator() call. Each record represents the latest validator state per day.

Table Schema

Column NameData TypeDescription
dateDATECalendar date of the snapshot, derived from block_timestamp
validator_idVARCHARUnique identifier assigned to the validator by the Monad network
auth_addressVARCHARAuthorization (operator) address with control over the validator stake
commissionDECIMALValidator commission rate at the execution layer, expressed as a fraction (e.g., 0.10 = 10%)
stakeDECIMALValidator execution-layer stake (upcoming stake pool balance)
snapshot_stakeDECIMALSnapshot stake value recorded for the validator at the time of the read
consensus_stakeDECIMALActive stake used by the consensus layer for the current epoch
consensus_commissionDECIMALCommission rate applied at the consensus layer for the current epoch
snapshot_commissionDECIMALSnapshot commission rate recorded for the validator at the time of the read
acc_reward_per_tokenDECIMALAccumulated reward per token for the validator, used for reward accounting
unclaimed_rewardsDECIMALTotal rewards accrued by the validator that have not yet been claimed
secp_pubkeyVARCHARSecp256k1 public key used by the validator for consensus participation
bls_pubkeyVARCHARBLS public key used by the validator for consensus participation
paramsVARIANTRaw JSON payload returned from the getValidator() staking precompile call
block_numberINTEGERBlock number at which the validator state was read
block_timestampTIMESTAMPBlock timestamp at which the validator state was read
block_hashVARCHARBlock hash corresponding to the read operation

Understanding Validator State

The daily snapshot captures multiple layers of validator state:

Execution Layer State

  • stake: Upcoming stake pool balance that will be active in future epochs
  • commission: Commission rate that will apply to future rewards

Consensus Layer State

  • consensus_stake: Active stake currently used for block production and validation
  • consensus_commission: Commission rate currently applied to rewards

Snapshot State

  • snapshot_stake: Historical stake value at the time of the read
  • snapshot_commission: Historical commission rate at the time of the read

Reward Accounting

  • acc_reward_per_token: Used for calculating delegator rewards
  • unclaimed_rewards: Total pending rewards for the validator

Sample Query

Track validator stake growth over the last 30 days:
SELECT
  validator_id,
  auth_address,
  date,
  stake,
  consensus_stake,
  commission * 100 as commission_pct,
  unclaimed_rewards,
  stake - LAG(stake) OVER (PARTITION BY validator_id ORDER BY date) as daily_stake_change
FROM monad.staking.validator_stake_daily
WHERE date >= CURRENT_DATE - INTERVAL '30 days'
ORDER BY date DESC, stake DESC;