The solana.staking.balances table contains the historical staking numbers for each stake_account. The data is reconstructed by indexing instructions to the stake program, specifically initialize, delegate, withdraw, deactivate, split, merge and deactivateDelinquent. In addition, rewards disbursed at each epoch are also included in this table as it affects the delegated stake amount.

Stake Actions

Each row in this table reflects an action taken on a stake_account, and the resultant state of the account after said action. These are the types of stake actions tracked:

ActionDescription
initializeCreates a new stake account. This is the first action required before any staking operations can occur. Sets up the initial parameters including staker and withdrawer authorities.
delegateStakes tokens to a validator’s vote account.
deactivateInitiates the deactivation of an active stake account.
delinquent_vote_account_deactivateA special deactivation triggered by another account when a validator becomes delinquent. This forces deactivation of stakes delegated to problematic validators.
withdrawRemoves unstaked tokens from a stake account.
merge_sourceRepresents the source stake account in a merge operation. This account will be emptied and closed after merging into the destination.
merge_destinationRepresents the destination stake account in a merge operation. This account receives the delegated stake from the merge source account.
split_sourceThe original stake account that is being split. Its delegated amount is reduced by the split amount.
split_destinationA newly created stake account that receives a portion of the split_source’s stake. Inherits the same validator delegation as the source.
rewardsRepresents staking rewards being distributed to the stake account. Increases the delegated amount by the reward amount.

Table columns

Column NameDescriptionTypeExample
stake_accountThe address of the stake accountvarchar7xLk17EQQ5KLDLDe44wCmupJKJjTGd8hs3eSVVhCx932
actionType of staking action performedvarchardelegate
delegated_stakeAmount of SOL delegated minus rent reserve. Includes both active and deactivating stakesfloat100.5
active_stakeAmount of SOL currently earning rewardsfloat95.5
inactive_stakeDifference between delegated and active stake (represents deactivating/activating amounts)float5.0
total_rewardsCumulative rewards earned by the stake accountfloat2.45
delegated_vote_accountValidator vote account address that the stake is delegated tovarchar26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx
last_activation_epochThe most recent epoch when the stake was activatedbigint280
last_deactivation_epochThe most recent epoch when the stake was deactivated (null if currently active)bigint275
activation_statusCurrent status of the stake accountvarcharactive
epochThe epoch when the action occurred. Epoch is calculated with floor(block_slot/432000)bigint282
action_infoAdditional details about the staking action in JSON formatvariant{"destination":"6wKJm2xYoNYbAaCZFLaPRthr5iRMxwPuF2dC5kZvBDpX","lamports":"16835237545","withdraw_authority":"6wKJm2xYoNYbAaCZFLaPRthr5iRMxwPuF2dC5kZvBDpX"}
block_slotSlot number where the transaction occurredbigint150000000
block_timestampTimestamp of the blocktimestamp2024-03-20 10:00:00
txn_idTransaction signature/hashvarchar2Rinn7xHXweFbuxuJKyeKdYznatLatNRSq9gF8oteEYPBp6yHpUanBNBmKJoPHZV3EdqvDzeRedTt3NpsqmiLWDn
pseudo_global_orderGlobal ordering of instructions for sequencingbigint205156998000296000001000000
pre_tx_amountNormalized stake amount before the transactionvarchar100.5
post_tx_amountNormalized stake amount after the transactionvarchar105.5
unique_idUnique identifier for the recordvarcharstake_account-8yKiYWWBVWMj5NzEnhAPbtKDZFEMwWzENT3v9oHbnRy4_block_slot-205156998_txn_id-2Rinn7xHXweFbuxuJKyeKdYznatLatNRSq9gF8oteEYPBp6yHpUanBNBmKJoPHZV3EdqvDzeRedTt3NpsqmiLWDn_i_index-0_ii_index-null