Skip to main content

Rewards API - Solana


API AuthenticationClick to view API Authentication details
API calls require authentication with API key via Authorization request header or URL property. Calls are made to one of the Solana Rewards API endpoints found in your app's dashboard.

For example: https://solana-rewards.datahub.figment.io

Here's some boilerplate to get you started.
fetch("https://solana-rewards.datahub.figment.io/v2/rewards", {
method: 'POST', // can also be 'GET', 'PUT' or any appropriate method
headers: {
"Authorization" : "<api_key>",
"Content-Type": "application/json" // if method is 'POST'
},
body: JSON.stringify({
// JSON Payload
})
})

Available Methods

SOL Rewards for stake account

Returns rewards (and balances) for all stake accounts. The response payload is broken down by epoch and by stake account. The net rewards are shown, meaning after the on-chain validator commission has been subtracted.

Request Body (try it)
Example Response
{
"data": [
{
"accounts": [
"2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95"
],
"chain_id": "mainnet",
"rewards": [
{
"text": "0.001334501 SOL",
"currency": "SOL",
"numeric": 1334501,
"exp": 9
}
],
"balances": [
{
"text": "3.029556552 SOL",
"currency": "SOL",
"numeric": 3029556552,
"exp": 9
}
],
"period": "363",
"validator": "CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1",
"timestamp": "2022-10-25T02:12:59Z",
"system_account": "EToJFrGakntRnwL8LLikLgXoAfBjgwYhwwYvfVRcrgLL"
},
{
"accounts": [
"2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95"
],
"chain_id": "mainnet",
"rewards": [
{
"text": "0.001336579 SOL",
"currency": "SOL",
"numeric": 1336579,
"exp": 9
}
],
"balances": [
{
"text": "3.030893131 SOL",
"currency": "SOL",
"numeric": 3030893131,
"exp": 9
}
],
"period": "364",
"validator": "CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1",
"timestamp": "2022-10-27T09:04:06Z",
"system_account": "EToJFrGakntRnwL8LLikLgXoAfBjgwYhwwYvfVRcrgLL"
}
],
"meta": {
"network": "solana",
"period_unit": "epoch"
}
}
SpecificationView Specification

Body

  • accounts is an array of stake account addresses (required)
  • start and end can be either epochs (numbers) or timestamps (strings formatted like "YYYY-MM-DD") (required)

Response

The response is broken down between meta and data

  • meta
    • network is the name of the network queried
    • period_unit is the unit of the period field under data: here it will be epoch
  • data is an array of objects - one for each epoch - containing:
    • validator returns the validator that distributed the rewards
    • system_account returns the system account that stake account was created from
    • accounts returns the stake account that received the rewards
    • period is the epoch number
    • timestamp is the timestamp at the end of the epoch
    • rewards is an array of objects containing numeric, exp, currency, and text. The formula to compute the rewards in the currency unit is numeric x 10^(-exp)(text is the string version of this)
    • balances is an array of objects containing numeric, exp, currency, and text.

Limitations

  • The API returns rewards for Figment validators only.
  • Data is available approximately an hour after the end of the day or epoch. When requesting daily for the current day, the data will be available but obviously partially complete as the day progresses.

FAQ


SOL Rewards for system account

Returns rewards (and balances) for all stake accounts created from the provided system account. The response payload is broken down by epoch and by staking account. The net rewards are shown, meaning after the on-chain validator commission has been subtracted.

Request Body (try it)
Example Response
{
"data": [
{
"accounts": [
"DjJXYY52TnfEqXsb5WnxZR9Qxr3P5vZBMpW2Ju9TgDxX"
],
"chain_id": "mainnet",
"rewards": [
{
"text": "0.004420096 SOL",
"currency": "SOL",
"numeric": 4420096,
"exp": 9
}
],
"balances": [
{
"text": "10.033234686 SOL",
"currency": "SOL",
"numeric": 10033234686,
"exp": 9
}
],
"period": "363",
"validator": "26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx",
"timestamp": "2022-10-25T02:12:59Z",
"system_account": "4GCemsBJbwpG7AjczRw1YqG6BBpamAW75UkRtnmapqkF"
},
{
"accounts": [
"DjJXYY52TnfEqXsb5WnxZR9Qxr3P5vZBMpW2Ju9TgDxX"
],
"chain_id": "mainnet",
"rewards": [
{
"text": "0.004417853 SOL",
"currency": "SOL",
"numeric": 4417853,
"exp": 9
}
],
"balances": [
{
"text": "10.037652539 SOL",
"currency": "SOL",
"numeric": 10037652539,
"exp": 9
}
],
"period": "364",
"validator": "26pV97Ce83ZQ6Kz9XT4td8tdoUFPTng8Fb8gPyc53dJx",
"timestamp": "2022-10-27T09:04:06Z",
"system_account": "4GCemsBJbwpG7AjczRw1YqG6BBpamAW75UkRtnmapqkF"
}
],
"meta": {
"network": "solana",
"period_unit": "epoch"
}
}
SpecificationView Specification

Body

  • addresses is an array of system account addresses (required)
  • start and end can be either epochs (numbers) or timestamps (strings formatted like "YYYY-MM-DD") (required)

Response

The response is broken down between meta and data

  • meta
    • network is the name of the network queried
    • period_unit is the unit of the period field under data: here it will be epoch
  • data is an array of objects - one for each epoch and stake account - containing:
    • validator returns the validator that distributed the rewards
    • accounts returns the stake account that received the rewards
    • system_account returns the system account the stake account was created from
    • period is the epoch number
    • timestamp is the timestamp at the end of the epoch
    • rewards is an array of objects containing numeric, exp, currency, and text. The formula to compute the rewards in the currency unit is numeric x 10^(-exp)(text is the string version of this)

Limitations

  • The API returns rewards for Figment validators only
  • Data is available approximately an hour after the end of the day or epoch. When requesting daily for the current day, the data will be available but obviously partially complete as the day progresses.

FAQ