Overview
The
daFootprintGasScalar controls the Data Availability (DA) Footprint Block Limit introduced in the Jovian hardfork, which caps the total amount of transaction data that can fit into a block based on a scaled estimate of its compressed size.
The effective limit of estimated DA usage per block is gasLimit / daFootprintGasScalar bytes, so increasing the scalar decreases the limit, and vice versa.
For how the DA footprint is calculated, why the limit exists, and how the default of 400 was chosen, see How the DA footprint block limit works.
Choose a value
Update the daFootprintGasScalar
The steps below explain how to update the daFootprintGasScalar parameter on-chain using the SystemConfig contract.
1
Find your SystemConfig contract address
The SystemConfig contract stores configurable protocol parameters such as gas limits and fee settings.
You can find its proxy address in the state.json generated by op-deployer.
You can find its proxy address in the state.json generated by op-deployer.
2
Call the setDAFootprintGasScalar() method
The SystemConfig owner is the only address that can make these changes.
daFootprintGasScalar, call the following method on the SystemConfig contract:setDAFootprintGasScalar(uint16 daFootprintGasScalar) external onlyOwner;Example (using cast) to double the scalar, so lower the effective DA usage limit by half:Cast
3
Verify the new value
After the transaction confirms, verify the current value by calling the following getter method on the And on your L2 chain you can query the scalar at the L1Block predeploy to confirm the new scalar has been propagated to the chain:
SystemConfig contract:function daFootprintGasScalar() external view returns (uint16);Example (using cast):cast
cast
Next steps
- How the DA footprint block limit works — the calculation, the scalar’s semantics, and the rationale for the default value.
- Fee parameters reference — the full set of fee-related
SystemConfigparameters.