Chains API
Which Solana slots produced a block, and which were skipped
From a start slot forward, the slots that produced a finalized block and the slots in between whose leader produced nothing, paged by block count, back to genesis.
/api/external/chain-analysis/confirmed-blocks/{chain}What it returns
Walks forward from startSlot and returns up to limit slots that produced a finalized block, plus every slot in between that was skipped (its leader produced no block). The page covers startSlot to endSlot inclusive, where endSlot is the last block on the page; every slot in that span is in exactly one of blockSlots and skippedSlots. To read the next page, ask again with startSlot = endSlot + 1. reachedTip is true when fewer than limit blocks came back: the newest finalized block was reached, and slots after it are not described yet. A startSlot above the newest finalized block answers no blocks, endSlot: null and reachedTip: true. History goes back to slot 0.
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/confirmed-blocks/SOL?startSlot=<startSlot>"
| Parameter | Description |
|---|---|
startSlotquery · integer · required | The first slot to describe (inclusive). |
limitquery · integer · optional | How many block-producing slots to return: 1 to 1000. Defaults to 100. |
chainpath · string · required | SOL only; every other chain returns 400. Solana names its block heights slots, and a slot whose leader produced nothing is skipped — a question other chains do not have. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
startSlot | integer | Echoes the request. |
endSlot | integer | null | The last block-producing slot on this page; null when no finalized block exists at or after startSlot yet. |
reachedTip | boolean | True when fewer than limit blocks came back: the page ends at the newest finalized block. |
blockCount | integer | Length of blockSlots. |
skippedCount | integer | Length of skippedSlots. 0 is a real answer: nothing in the span was skipped. |
blockSlots | integer[] | Slots that produced a finalized block, ascending. |
skippedSlots | integer[] | Slots from startSlot to endSlot that produced no block, ascending. |
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