Plain-language explanation of Mantle L1 data availability cost versus L2 execution cost.
How Mantle gas works
Mantle transaction cost has two major pieces:
- L2 execution cost — the EVM work performed on Mantle: storage reads/writes, calls, logs, arithmetic, memory expansion, and contract creation.
- L1 data availability cost — the cost of publishing transaction data so it can be reconstructed and verified outside the L2 execution environment.
A gas optimization can improve one piece and leave the other unchanged. A good Mantle report explains which part changed.
L2 execution cost
This is the familiar EVM gas dimension. Examples:
- replacing repeated storage reads with a cached local variable,
- using
calldatainstead of copying arrays intomemory, - packing storage variables,
- replacing revert strings with custom errors,
- avoiding unnecessary external calls.
These changes reduce the gas used by contract execution.
L1 data availability cost
Data availability cost is tied to the bytes a transaction contributes to the data posted for verification. On Mantle, receipt-level l1Fee is the production truth Archon uses when it is available.
Examples that affect DA cost:
- smaller calldata,
- fewer or smaller emitted log topics/data,
- compact batch operations,
- avoiding unnecessary large byte arrays,
- changing an interface from verbose dynamic data to compact fixed-size values.
Worked example
Imagine a claim function accepts a dynamic proof and emits a verbose event:
function claim(uint256 amount, bytes calldata proof) external {
_verify(proof, msg.sender, amount);
claimed[msg.sender] = true;
emit Claimed(msg.sender, amount, proof);
}A patch changes the event to log only the proof hash:
function claim(uint256 amount, bytes calldata proof) external {
_verify(proof, msg.sender, amount);
claimed[msg.sender] = true;
emit Claimed(msg.sender, amount, keccak256(proof));
}What changed?
- Execution: the patched version adds a
keccak256over the proof, which may slightly increase L2 execution gas. - Data availability: the event no longer includes the full proof bytes, so the transaction receipt/log data is smaller. If the proof is large, DA cost can drop materially.
- Product interpretation: this is a good Mantle optimization only if the proof itself is already available elsewhere or does not need to be reconstructed from the event.
A report that says only “gas down” is incomplete. Archon should state whether the saving came from execution, calldata/log bytes, or both.
How Archon treats DA evidence
Archon does not rely on the legacy GasPriceOracle.getL1Fee(bytes) wording that previously produced a large mismatch against observed Mantle receipt fees. When receipt l1Fee exists, Archon treats it as source-of-truth telemetry. When it is missing, estimates must be labeled as estimates.



