Skip to main content
MetalHeader adds consensus and interoperability fields around the standard Ethereum execution header. The block hash commits to the complete RLP-encoded MetalHeader.

RLP layout

The outer RLP list has the following order: subblock_metadata_root is a trailing optional field. A header without this field remains unambiguous to the RLP decoder.
The nested header retains Ethereum’s standard field order.

Millisecond timestamp

The nested header stores whole seconds. timestamp_millis_part stores the remaining milliseconds:
Simplex consensus uses this canonical block time and requires it to increase strictly. Standard Ethereum RPC fields continue to expose timestamp in seconds.

Proposer and fee recipient

proposer is the raw 48-byte compressed BLS public key of the validator that proposed the block. The genesis header uses the all-zero key. The JSON-RPC miner field identifies the EVM fee recipient. proposer identifies the consensus validator.

Message root

interop_message_root is the count-bound root of the Metal message tree after the block finishes executing:
It is zero before the first cross-chain message. Destination-chain light clients extract it from a finalized header, and MetalInbox contracts verify message proofs against it.

Subblock metadata root

When present, subblock_metadata_root commits to the ordered metadata of the included subblocks. The block hash and finality certificate cover this field. The field may be absent. Absence and a 32-byte zero value are distinct RLP encodings.

Ethereum consensus update

ethereum_update carries an Ethereum light-client operation chosen by the validator and verified during block execution. Its bytes are committed by the Metal block hash. The field is empty for a block without an operation; a nonempty value begins with an operation-kind byte followed by its SSZ encoding. Its maximum size is 64 KiB.

Validator-set roots

validator_set_root commits to the validator set for the block’s epoch. next_validator_set_root commits to the next epoch’s set, allowing a verifier to authenticate a scheduled transition through the finalized header. The roots are equal while the set is unchanged. Both are zero in the genesis header.

JSON-RPC fields

Metal block responses add these fields to the standard Ethereum response: Use Block Timestamps for the JSON-RPC calculation and EVM behavior.

Finality

A Metal finality certificate authenticates the hash of the complete header. It therefore covers the millisecond timestamp, proposer, message root, Ethereum consensus update, validator-set roots, and optional subblock metadata root.