Skip to content

Add configurable calldata gas design document #294

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

niran
Copy link

@niran niran commented Jun 30, 2025

This PR introduces a design document for configurable calldata gas pricing.

@niran niran force-pushed the niran/config-calldata branch from 655771a to e3f7543 Compare July 1, 2025 14:47
* **Continue hard-coding gas costs**. Updating gas costs once or twice per year on a similar cadence to L1 hard forks is likely frequent enough for most chains, but it doesn't address differences in gas targets between OP Stack chains without each chain maintaining a persistent fork of the client.
* **Full fee-abstraction** (see [`specs#73`](https://github.com/ethereum-optimism/specs/issues/73)). Only addresses fees, but we need to manipulate gas consumption for the fee market to function properly.
* **Expose a single configuration value**. We don't foresee `eip7623StandardTokenCost` ever being modified from its default value of `4`, but it's included in the proposal for completeness.
* **Change the actual calldata gas cost, not just the floor**. This diverges from how the L1 community has been addressing calldata costs and impacts more transactions than are necessary to solve the problem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This approach seems simpler and also more directly addresses the issue of L2 calldata. EIP-7623 was implemented with a floor function in order to discourage calldata-focused transactions, steering them towards blobs instead. If all L2 data must be batched to L1, then we may want to meter all calldata equally.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the floor is actually better. It caps the amount of calldata that can be used in a block without reducing the amount of execution that can happen in a block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants