Separate Arbitrum execution gas from its parent-data component

An Arbitrum transaction gas estimate includes a component covering publication on the parent chain. Treating the whole estimate as child VM execution exaggerates computational work.

Read NodeInterface gas estimate components

Simulate gasEstimateComponents with the intended sender, target, value and calldata on the child chain. The method returns the overall estimate and the parent-data component expressed in child gas units.

gasEstimate = 150000
gasEstimateForL1 = 40000
child execution estimate = 110000

Subtract the second value from the first as in the example to obtain the estimated child execution component. Multiply the parent component by the child gas price used for the estimate to express its cost in the native currency’s smallest unit.

Compare like-for-like samples

When the estimated child gas price changes, the gas-unit conversion for parent data can move even with identical calldata. Store price and raw components from the same response context. A quote is an estimate before inclusion, not a retrospective receipt. docs.arbitrum.io Arbitrum documentation