- Docs
- Api%2Freference%2Fsequencer%2FListCheckpoints
List checkpoints
Browse checkpoints, newest first unless you change `sortBy` or `order`. A checkpoint commits to a consecutive range of finalized batches, making it possible to verify a long stretch of history without processing every batch individually. Each one names the first and last batch it covers, so the range it speaks for is `start_sequence` to `end_sequence`. A checkpoint goes through the same proof-and-anchor stages as a batch, without the NFT and challenge-window settlement stages: ``` building → requesting → proving → storing → anchoring → finalized ``` `finalized` means the checkpoint commitment has been anchored. `failed` is terminal; every other value means the checkpoint is still being processed. Open to everyone. No sign-in needed.
Query Parameters
Return only the resource with this identifier. Equivalent to fetching it by path, but usable together with the other list filters.
Look up one checkpoint by id or by hash. A 24-character hexadecimal value is treated as an id, anything else as a checkpoint hash.
How many items to return in one page. The default and the maximum are both
25; a larger value is rejected with 400.
25int641 <= value <= 25Cursor for the next page, taken verbatim from the next field of the previous
response. Keep every other query parameter the same between pages: sortBy
and order are part of what the cursor means. An absent or empty next in a
response means there are no more pages.
The value is opaque. Do not parse it or build one yourself.
Sort direction. Defaults to desc, newest first.
"desc""asc" | "desc"Field used to sort the result. Supported fields depend on the endpoint; use
when_created for chronological ordering where it is available. The default
is the resource identifier, and identifiers break ties so cursor paging stays
stable.
Return the checkpoint with this hash.
Return only checkpoints in this pipeline stage.
"building" | "requesting" | "proving" | "storing" | "anchoring" | "finalized" | "failed"Built strictly after this instant.
date-timeBuilt strictly before this instant.
date-timeBuilt at or after this instant.
date-timeBuilt at or before this instant.
date-timeLast advanced strictly after this instant.
date-timeLast advanced strictly before this instant.
date-timeLast advanced at or after this instant.
date-timeLast advanced at or before this instant.
date-timeResponse Body
application/json
application/json
application/json
curl -X GET "https://api.dual.network/public/checkpoints"{
"checkpoints": [
{
"id": "665f1c2d4b1a2c3d4e5f6a30",
"sequence": 41,
"hash": "0x3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b",
"start_sequence": 761,
"start_hash": "0x5d2b4806a1c9d8e7f6a5b4c3d2e1f00918273645546372819a0b1c2d7f1a9c3e",
"end_sequence": 794,
"end_hash": "0x7f1a9c3e5d2b4806a1c9d8e7f6a5b4c3d2e1f00918273645546372819a0b1c2d",
"sender": "0x9999999999999999999999999999999999999999",
"status": "finalized",
"when_created": "2026-03-02T19:00:00Z"
}
]
}{
"code": 3,
"message": "Key: 'limit' Error:Field validation for 'limit' failed on the 'lte' tag"
}{
"code": 13,
"message": "internal error"
}