Attestation Rewards

Rewards for attestations for validator on Beacon Chain.

Beacon Chain Attestation Rewards

The majority of a validator's rewards come from making attestations. While assigning committees and slots is randomized, each active validator is guaranteed to make one attestation per epoch.

Validators earn rewards for attestations only when included in Beacon Chain blocks. Each attestation consists of three votes, with rewards based on the following criteria:

  • Inclusion of the attestation with the correct source checkpoint within 5 slots

  • Inclusion of the attestation with the correct target checkpoint within 32 slots

  • Inclusion of the attestation with the correct head block within 1 slot

Attestation rewards for Beacon chain are split up into two separate tables. Both tables are retrieved from /eth/v1/beacon/rewards/attestations/{epoch} RPC Method.

Table NameDescription

beacon.raw.attestation_rewards_daily

Table that aggregates the total reward metrics for individual validators by day.

beacon.raw.total_rewards

Table containing total reward metrics for individual validators in the specified epoch. This table returns the total number of active, ongoing validators in each Epoch. Note: this table size is large. Expect that query performance to be slow. It increases by about 225 epoch * # active validators ~ 250m+ rows in size daily.

beacon.raw.ideal_rewards

Table containing ideal reward metrics for attestations in the specified epoch. Currently, there (as of Epoch 289619), there are always 32 rows for each epoch, each for effective balance (1 to 32 ETH) of ETH staked.

Attestation Rewards Daily

Daily aggregated of attestation rewards per validator. There is one validator entry per day. The rewards data are aggregated from beacon.raw.total_rewards daily.

Column NameDescriptionExample

Date

Date

288389

validator Index

Validator Index

1296908

min_epoch

The lowest Epoch number that the validator started attesting

287663

max_epoch

The largest Epoch number that the validator started attesting

287887

epoch_count

Number of unique epochs that the validator participated in for attestation within the day.

225

head

The sum reward for attesting to the head block for the specified validator

534132

target

The sum reward for attesting to the target block for the specified validator

1034226

source

The sum reward for attesting to the source block for the specified validator

552116

inclusion_delay

(Optional) The sum reward for including the attestation in a block with a specific delay for the specified validator

0

inactivity

(Optional) The inactivity penalty for the total reward calculation for the specified validator

0

total_rewards

The sum of rewards across head, target, source, inclusion_delay and inactivity.

2120474

Total Rewards

Query Sample

Finding the total rewards for specific Epoch

select 
    epoch, 
    count(distinct validator_index) as validators, 
    sum(head) as sum_head,
    sum(target) as sum_target,
    sum(source) as sum_source,
    sum(inactivity) as sum_inactvity,
    sum_head + sum_target + sum_source + sum_inactvity as epoch_attestation_reward
from beacon.raw.total_rewards
where epoch = 289610
group by all 

Total Reward Columns

beacon.raw.total_rewards contains the reward metrics for individual validators in the specified epoch.

Column NameDescriptionExample

epoch

Epoch number

288389

epoch_timestamp

Epoch Timestamp

2024-06-05 05:29:59

execution_optimistic

A boolean indicating whether the execution of rewards for the specified epoch is done optimistically or not

FALSE

validator Index

Validator Index

1296908

head

The reward for attesting to the head block for the specified validator

2442

target

The reward for attesting to the target block for the specified validator

4604

source

The reward for attesting to the source block for the specified validator

2477

inclusion_delay

(Optional) The reward for including the attestation in a block with a specific delay for the specified validator

inactivity

(Optional) The inactivity penalty for the total reward calculation for the specified validator

0

Ideal Reward Columns

Table containing ideal reward metrics for attestations in the specified epoch.

Column NameDescriptionExample

epoch

Epoch number

5

epoch_timestamp

Epoch Timestamp

2020-12-01 12:01:23

execution_optimistic

A boolean indicating whether the execution of rewards for the specified epoch is done optimistically or not

FALSE

effective_balance

The effective balance for the ideal reward calculation

18,000,000,000.00

head

The reward for attesting to the head block

9287

target

The reward for attesting to the target block

9621

source

The reward for attesting to the source block

9622

inclusion_delay

(Optional) The reward for including the attestation in a block with a specific delay

9707

inactivity

(Optional) The inactivity penalty for the ideal reward calculation

0

Last updated