Get Polygon checkpoint
https://api.triport.io/v1/polygon/bor/checkpoint/12345Fetch Heimdall checkpoint metadata for a single Polygon checkpoint by its numeric id.
Returns the metadata for a single Polygon checkpoint as recorded by the
Heimdall consensus layer. A checkpoint is the periodic snapshot of a contiguous
range of Bor (Polygon PoS) blocks that the validator set proposes and submits to
Ethereum; each one carries the block range it covers, a Merkle root_hash of
that range, the proposer that submitted it, and the time of submission.
Use this endpoint when you need to confirm that a given range of Polygon blocks has been checkpointed (for example, before treating a Polygon transaction as final against the Ethereum settlement layer), or to look up the proposer and root hash of a specific checkpoint.
Checkpoints are addressed by a monotonically increasing integer id starting at
0. If you request an id that has not been submitted yet — or one that never
existed — the endpoint returns 404. To enumerate the latest validators or the
spans that feed into checkpoints, see the related
validators and span endpoints.
Parameters
Path parameters
checkpoint_idinteger (int64, min 0)requiredResponse
Response fields
| Field | Type | Description |
|---|---|---|
checkpoint_id | integer (int64) | The checkpoint id that was requested. |
start_block | integer (int64) | First Bor block included in the checkpoint range. |
end_block | integer (int64) | Last Bor block included in the checkpoint range. |
root_hash | string | Merkle root hash covering the checkpointed block range. |
proposer | string | 0x-prefixed address of the validator that submitted the checkpoint. |
submitted_at | string (date-time, RFC 3339) | Timestamp when the checkpoint was submitted. |
Errors
| Code | Meaning | When it happens |
|---|---|---|
401 | unauthorized / trial_expired / subscription_expired | Missing or invalid credentials, expired trial, or lapsed subscription. |
403 | tier_insufficient / method_unknown | Your API key's tier is below basic, or the method is not part of your product. |
404 | resource not found | No checkpoint exists with the requested checkpoint_id (not yet submitted, or out of range). |
429 | rate_limited | Sustained RPS for the polygon_bor category exceeded; honor the Retry-After header. |
All error responses use the shared envelope (error, message, request_id).
A 403 adds current_tier / required_tier, and a 429 adds
retry_after_sec / limit_rps / current_tier. See the
errors reference for the full envelope and code list.
{
"error": "tier_insufficient",
"message": "This method requires the basic tier or higher.",
"request_id": "req_8f3a1c0b",
"current_tier": "free",
"required_tier": "basic",
"category": "polygon_bor"
}Examples
JavaScript (fetch)
const checkpointId = 12345;
const res = await fetch(
`https://api.triport.io/v1/polygon/bor/checkpoint/${checkpointId}`,
{ headers: { Authorization: `Bearer ${process.env.TRIPORT_API_KEY}` } }
);
if (res.status === 404) {
throw new Error(`checkpoint ${checkpointId} not found`);
}
if (!res.ok) {
throw new Error(`request failed: ${res.status}`);
}
const checkpoint = await res.json();
console.log(checkpoint.start_block, "→", checkpoint.end_block);TypeScript SDK (@triport/sdk)
import { Triport } from "@triport/sdk";
const client = new Triport({ apiKey: process.env.TRIPORT_API_KEY! });
const checkpoint = await client.polygon.bor.getCheckpoint(12345);
console.log(checkpoint.rootHash, checkpoint.proposer);Python (triport-sdk)
import os
from triport import Triport
client = Triport(api_key=os.environ["TRIPORT_API_KEY"])
checkpoint = client.polygon.bor.get_checkpoint(12345)
print(checkpoint.start_block, "->", checkpoint.end_block)Notes
checkpoint_idis a non-negative integer; ids increase by one as checkpoints are submitted, so the highest valid id grows over time. Requesting an id above the latest submitted checkpoint returns404, not an empty body.- This endpoint reflects state as recorded by the Heimdall consensus layer, so a
checkpoint becomes visible only once it has been submitted — there is a short
delay between the
end_blockbeing produced on Bor and the corresponding checkpoint appearing here. - Related Polygon
borendpoints: current validators and span by id.