Blockspace Overview
Abstract
This specification defines the structure of valid blocks in the Tempo blockchain.
Motivation
Tempo blocks extend the Ethereum block format in multiple ways: there are new header fields to account for payment lanes and sub-blocks, and system transactions are added to the block body for the fee AMM and other protocol operations. This specification contains all the modifications to the block format.
Specification
Header fields
Tempo extends an Ethereum header with three extra scalars.
Header struct
pub struct Header {
pub general_gas_limit: u64,
pub shared_gas_limit: u64,
pub timestamp_millis_part: u64,
pub inner: Header,
}inneris the canonical Ethereum header (parent_hash, state_root, gas_limit, etc.).general_gas_limitandshared_gas_limitcarve up the canonicalgas_limitfor payment and sub-block gas (see payment lane specification and sub-block specification).timestamp_millis_partstores the sub‑second component; the full timestamp isinner.timestamp * 1000 + timestamp_millis_part.
Block body
The block body in Tempo retains the canonical Ethereum block body structure, with the addition of new system transactions. Transactions are ordered in the following sections:
- Start-of-block system transaction(s) (must begin with the rewards registry call).
- Proposer lane transactions, subject to
general_gas_limiton non-payment transactions. - Sub-block transactions, grouped by proposer and prefixed with the reserved nonce key.
- Gas incentive transactions that consume leftover shared gas.
- End-of-block system transactions (see below).
System transactions
A valid tempo block must contain the following new system transactions
- Rewards Registry (start-of-block) — must be the first transaction in the block body; refreshes validator rewards metadata before user transactions begin. Detailed specification here.
- Fee Manager (end-of-block 1/3) — settles block fee accounting. Detailed specification here.
- Stablecoin DEX (end-of-block 2/3) — settles stablecoin exchange balances. Detailed specification here.
- Subblock Metadata (end-of-block 3/3) — contains metadata about the sub-blocks included in the block. Detailed specification here.