Overview
The Solana Staking Reporting API introduces enhanced features, including timezone-based reporting for more precise analysis and improved tracking of validator and delegator statuses.
Supported network: Mainnet
➡️ Get the Rewards
This endpoint returns the total rewards between specified timestamps for a single or multiple addresses.
- Solana rewards are tracked by processing each slot in an epoch, with inflation rewards in the first slot and fee/rent rewards in subsequent ones. While MEV rewards are paid out in the epoch after they are earned and are not available in the reporting API until approximately 60-90 minutes after the epoch ends.
- The API will report the MEV rewards separately from the consensus layer rewards, and the total rewards may appear higher than normal due to the MEV rewards.
Note that there may be processing delays at epoch end when gathering MEV and inflation rewards.
Endpoints
Endpoint |
---|
Get a Stream of Rewards - POST /{type}/rewards |
Get a Stream of Rewards for a Single Address - GET /{type}/rewards/{address} |
Sample Request
Note:
Validators and delegators follow the same request/response format in both API versions.
Below is a sample request for a single validator. For multiple validators, you can include up to 1000 addresses per request.
curl --location 'https://svc.blockdaemon.com/reporting/staking/v2/solana/mainnet/validator/rewards/FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571?startTime=1678174507&endTime=1678779307&period=weekly' \
--header 'Authorization: Bearer YOUR_KEY' \
--header 'accept: application/x-ndjson'
This would return a response below. If you need the reward data in a different timezone, you can convert the timestamps using Epoch Converter.
{
"address": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571",
"denomination": "lamports",
"return": "152995957268",
"startTime": 1678174507,
"endTime": 1678779306,
"period": "WEEKLY",
"startBalance": "582507713330",
"metadata": {
"epoch": "419-422",
"fee": "33473577072",
"identity": "7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy",
"slot": "181226296-182498587",
"voteKey": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571",
"voting": "119522380196",
"stake": "1118732553958212"
}
}
Info:
To get the most recent rewards, you need to make a request for either epoch or raw rewards by specifying an end time in the future and a start time.
In the response, the highest
startTime
value shows the most recent reward.
➡️ Get a Status
This endpoint returns the current status of a validator/delegator. Possible statuses include:
UNKNOWN
ACTIVE
INACTIVE
Endpoints
Endpoint |
---|
Get a Stream of Statuses - POST /{type}/status |
Get Status for an Address - GET /{type}/status/{address} |
Sample Request
Note:
Validators and delegators follow the same request/response format in both API versions.
Below is an example to get the status of a single validator.
curl -X 'GET' \
'https://svc.blockdaemon.com/reporting/staking/v2/solana/mainnet/delegator/status/78NumgHAAgfaHUDPBPTyzFcSgvPnXSqqTnSmXPAW9KZW' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer KEY'
This would return a response below.
{
"address": "78NumgHAAgfaHUDPBPTyzFcSgvPnXSqqTnSmXPAW9KZW",
"status": "ACTIVE",
"metadata": {
"activationEpoch": "631",
"deactivationEpoch": "18446744073709551615",
"identity": "7cVfgArCheMR6Cs4t6vz5rfnqd56vZq4ndaBrY5xkxXy",
"solanaAccount": "A2VLtkfrXxBCLKUGQqwhyD5fmGSvSZpc6a8jMA78T2eL",
"stakeAccount": "78NumgHAAgfaHUDPBPTyzFcSgvPnXSqqTnSmXPAW9KZW",
"type": "delegator",
"voteKey": "FQwewNXahV7MiZcLpY6p1xhUs2acVGQ3U5Xxc7FzV571"
}
}
➡️ Get Health
The endpoint provides the health status of the rewards processing system. You can track:
- The latest epoch with available rewards.
- The current status of the blockchain.
Endpoint
Endpoint |
---|
Get the Protocol Rewards Processing Health - GET /health |
Sample Request
Below is an example request for a Health endpoint.
curl 'https://svc.blockdaemon.com/reporting/staking/v2/solana/mainnet/health' \
-H 'Authorization: Bearer YOUR_KEY'
The response will include information about the current status of the API, such as the current chain epoch, last processed inflation epoch, and last processed MEV epoch.
{
"status": "OPTIMAL",
"timestamp": 1716893171,
"metadata": {
"lastProcessedInflationEpoch": "620",
"lastProcessedMevEpoch": "620",
"lastProcessStatusesEpoch": "621",
"chainEpoch": "621",
"chainSlot": "268425883",
"lastProcessedSlot": "268425383",
"lastProcessedMevTxTimestamp": "1716893374"
}
}
Info:
The endpoint will return
unknown
if queried before 2024/06/03.