Chains API
Which Solana validator will produce each upcoming slot
The validator scheduled to lead each slot from now (or a chosen slot) through the end of the next epoch, with the current slot and epoch bounds.
/api/external/chain-analysis/leader-schedule/{chain}What it returns
The validator scheduled to produce each of up to limit consecutive slots from startSlot (default: the current slot), with where the chain is now. Solana decides its leader schedule a full epoch ahead, so slots are answerable from the first slot of the current epoch through the last slot of the next one (scheduledThroughSlot); a startSlot outside that window returns 400. A page that would run past scheduledThroughSlot stops there. Slots at or below currentSlot are already past: their leader was scheduled, which does not mean it produced a block. A validator leads 4 consecutive slots at a time.
Chains
- Solana SOL
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/chain-analysis/leader-schedule/SOL"
| Parameter | Description |
|---|---|
startSlotquery · integer · optional | The first slot to answer (inclusive). Defaults to the current slot. |
limitquery · integer · optional | How many consecutive slots to answer: 1 to 1000. Defaults to 100. limit ≤ 400 keeps the answer under 32 KB. |
chainpath · string · required | SOL only; every other chain returns 400. Solana fixes, a full epoch ahead, which validator produces each slot — a schedule other chains do not publish. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
currentSlot | integer | The newest confirmed slot when this was answered. |
epoch | integer | The epoch currentSlot is in. |
epochStartSlot | integer | The first slot of that epoch. |
epochEndSlot | integer | The last slot of that epoch. |
scheduledThroughSlot | integer | The last slot whose leader is decided: the end of the next epoch. |
startSlot | integer | The first slot on this page. |
endSlot | integer | The last slot on this page; short of startSlot + limit - 1 only when the page reached scheduledThroughSlot. |
leaders | object[] | One entry per slot from startSlot to endSlot, ascending. |
leaders[].slot | integer | |
leaders[].identity | string | The scheduled validator's identity address. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key