Skip to main content
Canton does not have native blocks. Each block is a synthetic 1-second time window derived from the genesis timestamp. Block N covers the interval [genesis + N seconds, genesis + (N+1) seconds).

Table Details

PropertyValue
Table Namecanton.raw.blocks
Table StatusBeta 🌱
Unique Keyblock_timestamp, block_number
Clustering Key(s)to_date("block_timestamp")

Table Columns

Column NameData TypeDescription
block_numberNUMBER(38,0)Synthetic block index derived as floor(unix(record_time) - genesis_epoch). One block per second starting from genesis on 2024-06-24T21:00:00Z.
migration_idNUMBER(38,0)Synchronizer migration epoch. Canton upgrades increment this value (currently 0–4). The active migration_id must match the time range being queried.
genesis_epochNUMBER(38,0)Unix timestamp of Canton’s genesis block (1719266400, corresponding to 2024-06-24T21:00:00Z). Used to compute block_number from record_time.
genesis_timestampTIMESTAMP_NTZ(9)Timestamp of Canton’s genesis block (2024-06-24T21:00:00Z). The start of the 1-second windowed block numbering scheme.
block_timestampTIMESTAMP_NTZ(9)Start of the 1-second window for this synthetic block, equal to genesis_timestamp + block_number seconds.
block_timestamp_unixNUMBER(38,0)Unix timestamp of block_timestamp. Equal to genesis_epoch + block_number.
update_countNUMBER(38,0)Number of Canton transactions (updates) whose record_time falls within this 1-second block window.
event_countNUMBER(38,0)Total number of events across all updates in this block window. Each update produces multiple events (created_event and exercised_event).
_created_atTIMESTAMP_NTZ(9)Timestamp of when the entry was created in the database.
_updated_atTIMESTAMP_NTZ(9)Timestamp of when the entry was last updated in the database.