Staking
validators.history
One validator across epochs: stake, voting power, commission, gas price, rewards, APY.
Details
- Endpoint
- GET /v1/validators/:address/history
- Credits
- 2
- Rate class
- Light. Counts against your light requests per second.
Returns one row per epoch, newest first, for a validator address. Each row has the stake and voting power at that epoch, commission in basis points, the gas price it quoted, the staking rewards it earned in MIST, its name and the APY for the epoch. APY is the pool exchange rate growth over the epoch, annualised with the real length of that epoch. Page back with cursor, which is an epoch number. An address that was never a validator returns not_found.
Parameters
| Name | Type | Description |
|---|---|---|
| addressrequired | string | The validator's Sui address (0x...). |
| limit | integer | Epochs per page, default 30.From 1 to 100. |
| cursor | string | Cursor from the previous page: return epochs older than this epoch number. |
Request
Send your key in the x-api-key header, or leave it out to use the keyless tier.
curl
curl "https://api.tide.ad/v1/validators/0x4fffd0005522be4bc029724c7f0f6ed7093a6bf3a09b90e62f61dc15181e1a3e/history?limit=5" \
-H "x-api-key: YOUR_API_KEY"TypeScript
const res = await fetch("https://api.tide.ad/v1/validators/0x4fffd0005522be4bc029724c7f0f6ed7093a6bf3a09b90e62f61dc15181e1a3e/history?limit=5", {
headers: {
"x-api-key": process.env.TIDE_API_KEY!,
},
});
const data = await res.json();Response
JSON
{
"address": "0x4fffd0005522be4bc029724c7f0f6ed7093a6bf3a09b90e62f61dc15181e1a3e",
"items": [
{
"epoch": 1301,
"name": "Mysten-1",
"stakeMist": "219788811024583733",
"votingPowerPct": 3.14,
"commissionBps": 200,
"gasPrice": 100,
"poolRewardMist": "8053301963736",
"storageFundRewardMist": "7067206",
"suiPerPoolToken": 1.1060761182058683,
"apyPct": 1.32,
"epochHours": 24
},
{
"epoch": 1300,
"name": "Mysten-1",
"stakeMist": "222103698655495214",
"votingPowerPct": 3.14,
"commissionBps": 200,
"gasPrice": 100,
"poolRewardMist": "8050463137905",
"storageFundRewardMist": "6787216",
"suiPerPoolToken": 1.1060363661821637,
"apyPct": 1.307,
"epochHours": 24
},
{
"epoch": 1299,
"name": "Mysten-1",
"stakeMist": "222158600462281443",
"votingPowerPct": 3.14,
"commissionBps": 200,
"gasPrice": 100,
"poolRewardMist": "8037901021788",
"storageFundRewardMist": "5553658",
"suiPerPoolToken": 1.1059970259752367,
"apyPct": 1.304,
"epochHours": 24
}
],
"cursor": "1297",
"asOf": {
"checkpoint": 341521489,
"timestamp": "2026-11-04T10:02:43.396Z",
"lagMs": 772
}
}Long lists are cut to a few items here.