Rewards

Returns gross rewards, as earned by validators

Notes:

General features described in Rewards Overview


Time Rollup

time_rollup
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:
epoch daily all_time

Start

start
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.

End

end
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.

Groups

groups
string
Filter using comma-separated group uuids.

Network

network
string
enum
Defaults to mainnet

Allowed:
mainnet hoodi

Pubkeys

pubkeys
array of strings
A list of validator pubkeys for filtering.

Withdrawal Addresses

withdrawal_addresses
array of strings
A list of withdrawal addresses or credentials for filtering.

Page

page
object

Include Penalties

include_penalties
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.


Example CURL Request

curl --request POST \
     --url https://api.figment.io/ethereum/rewards \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: your-api-key-here' \
     --data '
{
  "time_rollup": "epoch",
  "network": "mainnet",
  "include_penalties": false
}
'  

Example Response

{
  "data": [
    {
      "pubkey": "0x9a0059ed6c2d2e35104a5113fdefa9d06cbd855b7be170f068b100391ffc811f55af4933e5e832a6c4ccfa69e7e4d120",
      "rewards": [
        {
          "text": "0.002932238",
          "currency": "ETH",
          "numeric": 2932238000000000,
          "exp": 18,
          "type": "consensus"
        },
        {
          "text": "0.019767962495220182",
          "currency": "ETH",
          "numeric": 19767962495220184,
          "exp": 18,
          "type": "execution",
          "recipient": "0xed488e6cc4b030eb5bfdde3227c3d5da2b9040e8",
          "sender": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5",
          "slot": 7334788,
          "block": 18146590,
          "is_mev": true,
          "mev_relay": "Block Native",
          "tx_hash": "0x25e3a03462a55b2632573cfc8e36cbb431d38793b6d26603cb11fd0251fee73b"
        }
      ],
      "balances": [
        {
          "text": "33.824197321",
          "currency": "ETH",
          "numeric": 33824197321000000000,
          "exp": 18
        }
      ],
      "timestamp": "2023-02-22T00:00:00Z",
      "max_epoch": 183036,
      "withdrawal_address": "0xeD488E6cc4B030eb5BfddE3227C3D5da2b9040E8",
      "withdrawal_credentials": "0x010000000000000000000000ed488e6cc4b030eb5bfdde3227c3d5da2b9040e8"
    }
  ],

"meta": {
    "protocol": "ethereum",
    "network": "mainnet",
    "time_rollup": "daily"
  }
}