Get a checkpoint

Retrieve one checkpoint by its Dual identifier. The response identifies the first and last batch in the covered range, the checkpoint's position in its own sequence, and the proof, published data and transaction produced as it moves through the pipeline. Recent checkpoints may not have a proof, `ipfs_url` or `l2_tx_hash` yet. These fields appear as their corresponding stages complete; a `finalized` checkpoint has been anchored on chain. Open to everyone. No sign-in needed.

GET
/public/checkpoints/{checkpointId}

Path Parameters

checkpointId*string

Identifier of the checkpoint.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://api.dual.network/public/checkpoints/665f1c2d4b1a2c3d4e5f6a30"
{
  "id": "665f1c2d4b1a2c3d4e5f6a30",
  "sequence": 41,
  "hash": "0x3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b",
  "start_sequence": 761,
  "start_hash": "0x5d2b4806a1c9d8e7f6a5b4c3d2e1f00918273645546372819a0b1c2d7f1a9c3e",
  "end_sequence": 794,
  "end_hash": "0x7f1a9c3e5d2b4806a1c9d8e7f6a5b4c3d2e1f00918273645546372819a0b1c2d",
  "sender": "0x9999999999999999999999999999999999999999",
  "status": "finalized",
  "ipfs_url": "https://ipfs.example.com/ipfs/bafybeiexamplecheckpointidentifier",
  "when_created": "2026-03-02T19:00:00Z",
  "when_modified": "2026-03-02T19:06:44Z"
}
{
  "code": 3,
  "message": "Key: 'limit' Error:Field validation for 'limit' failed on the 'lte' tag"
}
{
  "code": 5,
  "message": "object not found"
}
{
  "code": 13,
  "message": "internal error"
}