L1 Block Attributes

Table of Contents

Overview

The L1 block attributes transaction is updated to include the operator fee parameters.

Input argTypeCalldata bytesSegment
{0x098999be}0-3n/a
baseFeeScalaruint324-71
blobBaseFeeScalaruint328-11
sequenceNumberuint6412-19
l1BlockTimestampuint6420-27
l1BlockNumberuint6428-35
basefeeuint25636-672
blobBaseFeeuint25668-993
l1BlockHashbytes32100-1314
batcherHashbytes32132-1635
operatorFeeScalaruint32164-1676
operatorFeeConstantuint64168-175

Note that the first input argument, in the same pattern as previous versions of the L1 attributes transaction, is the function selector: the first four bytes of keccak256("setL1BlockValuesIsthmus()").

In the activation block, there are two possibilities:

  • If Isthmus is active at genesis, the setL1BlockValuesIsthmus() method must be used.
  • If Isthmus activates after genesis setL1BlockValuesEcotone() method must be used. This is because the L1 Block contract will not yet have been upgraded.

In each subsequent L2 block, the setL1BlockValuesIsthmus() method must be used.

When using this method, the pre-Isthmus values are migrated over 1:1 and the transaction also sets the following new attributes to the values from the SystemConfig:

  • operatorFeeScalar
  • operatorFeeConstant