Block structure
In Starknet, the block is defined as a list of transactions and a block header.
Block header
The following fields define the block header:
Name | Type | Description | Implemented |
---|---|---|---|
|
|
The hash of this block’s parent |
✓ |
|
|
The number (height) of this block |
✓ |
|
|
The state commitment after this block |
✓ |
|
|
The Starknet address of the sequencer who created this block |
✓ |
|
|
The time the sequencer created this block before executing transactions |
✓ |
|
|
The number of transactions in a block |
✓ |
|
|
A commitment to the transactions included in the block |
✓ |
|
|
The number of events |
✓ |
|
|
A commitment to the events produced in this block |
✓ |
|
|
The version of the Starknet protocol used when creating this block |
|
|
|
Extraneous data that might be useful for running transactions |
The commitment fields The leaf at index \(i\) corresponds to the hash of the \(i'th\) event for For other types of transactions, we use \(h(0,0)\). |
Block hash
The block hash is defined as the Pedersen hash over the header’s elements.
Where \(h\) is the Pedersen hash.
Zeros inside the hash computation of an object are used as placeholders, to be replaced in the future by meaningful fields. |