Published Gas & Fee Data
When a block is published to L1, it includes information about the gas and fees at a block-level, and at a transaction-level.
Block-level Data
The block header contains a GlobalVariables
, which contains a GasFees
object. This object contains the following fields:
feePerDaGas
: The fee in Fee Juice per unit of DA gas consumed for transactions in the block.feePerL2Gas
: The fee in FPA per unit of L2 gas consumed for transactions in the block.
GlobalVariables
also includes a coinbase
field, which is the L1 address that receives the fees.
The block header also contains a totalFees
field, which is the total fees collected in the block in FPA.
Updating the GasFees
Object
Presently, the feePerDaGas
and feePerL2Gas
are fixed at 1
FPA per unit of DA gas and L2 gas consumed, respectively.
In the future, these values may be updated dynamically based on network conditions.
Should we move to a 1559-style fee market with block-level gas targets, there is an interesting point where gas "used" presently includes the entire teardown_gas_allocation
regardless of how much of that allocation was spent. In the future, if this becomes a concern, we can update our accounting to reflect the true gas used for the purposes of updating the GasFees
object, though the user will be charged the full teardown_gas_allocation
regardless.
Transaction-level Data
The transaction data which is published to L1 is a TxEffects
object, which includes
transaction_fee
: the fee paid by the transaction in FPA