Rewards

Returns gross rewards, as earned by validators


Scope

  • mainnet and hoodi.
  • Returns data for any Figment validator created through the FigApp or the Create Validators endpoint.

Rewards

  • Reports gross rewards.
  • The response includes execution-layer rewards, swept consensus-layer rewards, and unswept consensus-layer rewards.


Timing & time-based rollups

  • Rewards appear approximately 3 hours after the network distributes them on-chain.
  • Set the granularity with time_rollup. The endpoint supports epoch, daily, and all_time.
  • Daily rollups use UTC calendar days.

Filtering

  • Filter by date with start and end. Both bounds are inclusive.
  • Filter by validator with pubkeys, or by address with withdrawal_addresses.
  • To query a single validator, pass one pubkey and omit withdrawal_addresses.

Missed attestation penalties

Missed or late attestations reduce consensus rewards.

  • By default, these penalties net against rewards.
  • To return them as a separate consensus_penalty entry, set include_penalties=true.
  • Penalty data starts at epoch 427295 (2026-02-12). See the include_penalties param for the full caveat.


Slashing

  • Slashing reduces the validator's balance through an initial and a correlation penalty. Both are reflected directly in the balances field.
    • The initial penalty applies at the moment of the slashing.
    • The correlation penalty applies about 18 days later. Its size scales with the total stake slashed across the network in the surrounding window.
  • Slashing also forces the validator to exit. The inactivity penalties from this forced exit are reported as described in "Missed attestation penalties" above.

General features described in Rewards Overview


Body Params
string
enum
required

The granularity of the rewards data. Use epoch for one record per validator per epoch, daily for rewards aggregated by UTC calendar day, or all_time for cumulative rewards since validator activation.

Allowed:
string
required

Lower bound of rewards data. For epoch time_rollup: accepts an epoch number as an integer (e.g. 261702) or a date string ("YYYY-MM-DD"). For daily time_rollup: accepts a date string ("YYYY-MM-DD"). Ignored for all_time time_rollup.

string
required

Upper bound of rewards data. For epoch time_rollup: accepts an epoch number as an integer (e.g. 261703) or a date string ("YYYY-MM-DD"). For daily time_rollup: accepts a date string ("YYYY-MM-DD"). Ignored for all_time time_rollup.

string

Filter using comma-separated group uuids.

string
enum
Defaults to mainnet
Allowed:
pubkeys
array of strings

A list of validator pubkeys for filtering.

pubkeys
withdrawal_addresses
array of strings

A list of withdrawal addresses or credentials for filtering.

withdrawal_addresses
page
object
boolean
Defaults to false

When true, includes a separate consensus_penalty entry in the rewards array representing attestation and sync committee penalties for the period. Defaults to false.
Data availability: Penalty data is available from epoch 427295 (2026-02-12) onward. For periods before this epoch/date, no consensus_penalty entry will be present in the response regardless of whether penalties were incurred. For all_time rollups, the penalty represents the sum from epoch 427295 (2026-02-12) to present, not the validator's full lifetime.

Responses

Language
LoadingLoading…
Response
Choose an example:
application/json