---
eip: 8007
title: Glamsterdam Gas Repricings
description: Directory of EIPs introducing changes to the gas pricing model for the Glamsterdam fork
author: Maria Silva (@misilva73), Ansgar Dietrichs (@adietrichs)
discussions-to: https://ethereum-magicians.org/t/eip-8007-glamsterdam-gas-repricings-meta-eip/25206
status: Draft
type: Meta
created: 2025-08-21
requires: 2780, 2926, 7686, 7778, 7904, 7923, 7971, 7973, 7976, 7981, 8011, 8032, 8037, 8038, 8053, 8057, 8058, 8059
---

## Abstract

This Meta EIP documents all the proposals for Glamsterdam related to the gas repricing effort. The goal of this effort is to harmonize gas costs across the EVM, thereby reducing the impact of specific bottlenecks on scaling. Proposals include changes to the cost of single EVM operations, as well as bigger changes to the gas model. This Meta EIP is purely informational and does not aim to have an active role in the governance process for the Glamsterdam fork. Instead, it serves as a directory for all repricing-related proposals, helping to organize the work and keeping the community informed about the status of each EIP.

## Motivation

The main objective of the Glamsterdam fork is to improve L1 scalability. A crucial aspect of this initiative is to create a better alignment between gas costs and actual resource usage. Currently, the gas model often prices operations incorrectly, resulting in inefficiencies and unintended incentives. For instance, within the pure compute operations, there is a high variance in execution time per gas unit, which indicates that a single unit of computation is not priced equally across the various opcodes.

By standardizing gas costs across EVM operations and other resources, we can reduce bottlenecks and enhance the utilization of EVM resources, which will subsequently enable further scalability. The EIPs listed below constitute a significant first step in that direction. We expect that further iteration will be necessary in future hardforks.

## Specification

The following table lists all EIPs related to repricings that are being discussed in the scope of the Glamsterdam fork. There are three types of EIPs in this list:

1. **Broad harmonization**. These EIPs reprice a class of operations with the goal of harmonizing them and removing single bottlenecks.
2. **Pricing extension**. These EIPs make targeted changes to a specific opcode or component of the gas model, usually coupled with a new mechanism.
3. **Supporting**. These EIPs are not directly doing a repricing, but instead introduce a change that support other repricing EIPs or enhance the scalability potential of repricings.

### Considered for Inclusion

| EIP | Description | Type | Resource class | Gas change overview |
|:---:|---|---|:---:|---|
| [EIP-2780](./eip-2780.md) | Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes. | Broad harmonization | Multi-resource | Decompose flat 21,000 into `TX_BASE_COST` (12,000) + `COLD_ACCOUNT_ACCESS` (3,000) + `TX_VALUE_COST` (6,000); split the primitives into state-independent intrinsic gas (the sole validity input) and state-dependent runtime gas, charging `STATE_BYTES_PER_NEW_ACCOUNT × CPSB` (183,600) state gas at runtime for value transfers that create an account |
| [EIP-7778](./eip-7778.md) | Prevent Block Gas Limit Circumvention by Excluding Refunds from Block Gas Accounting. | Pricing extension | General Accounting | No opcode repricing; excludes gas refunds (e.g. `SSTORE` clearing) from block gas accounting. Combined with [EIP-8037](./eip-8037.md), the exclusion applies to the execution-gas dimension only: state-gas refills reverse charges for state that was never durably created and stay netted out |
| [EIP-7904](./eip-7904.md) | Empirical analysis of EVM compute operation run times (Informational); concludes no compute gas cost needs repricing at the target throughput. | Broad harmonization | Compute | No changes: with [EIP-7928](./eip-7928.md) optimizations in place, all examined compute opcodes and precompiles already meet the 100 Mgas/s target at their current cost |
| [EIP-7976](./eip-7976.md) | Increase the calldata floor cost to 64/64 gas per byte to reduce maximum block size. | Pricing extension | Data | Increase calldata floor cost (10/40 → 64/64 per byte) |
| [EIP-7981](./eip-7981.md) | Price access lists for data to reduce maximum block size. | Pricing extension | Data | Increase: new flat surcharge of 64 gas per access list byte (1,280 per address, 2,048 per storage key), charged outside the calldata floor `max` |
| [EIP-8037](./eip-8037.md) | Harmonization, increase and separate metering of state creation gas costs to mitigate state growth and unblock scaling. | Broad harmonization | State | All increase via a fixed `CPSB` (1,530 gas/byte), metered in a separate state-gas dimension: `GAS_CREATE`, `GAS_CODE_DEPOSIT`, `GAS_NEW_ACCOUNT`, `GAS_STORAGE_SET`, `PER_AUTH_BASE_COST`, `PER_EMPTY_ACCOUNT_COST` |
| [EIP-8038](./eip-8038.md) | Increases the gas cost of state-access operations to reflect Ethereum's larger state. | Broad harmonization | State | Increase: `STORAGE_WRITE`, `COLD_ACCOUNT_ACCESS`, `ACCOUNT_WRITE`, `CREATE_ACCESS`, access list costs; `EXTCODESIZE`/`EXTCODECOPY` extra warm read; `COLD_STORAGE_ACCESS`, `WARM_ACCESS` unchanged |

### Declined for Inclusion

| EIP | Description | Type | Resource class |
|:---:|---|---|:---:|
| [EIP-2926](./eip-2926.md) | Introduce code-chunking in an MPT context. | Pricing extension | State |
| [EIP-7686](./eip-7686.md) | Adjust memory limits and gas limits of sub-calls to create a clear linear bound on how much total memory an EVM execution can consume. | Pricing extension | Memory |
| [EIP-7923](./eip-7923.md) | Make memory costing linear, replacing the current quadratic formula with a page-based cost model. | Pricing extension | Memory |
| [EIP-7971](./eip-7971.md) | Decrease costs for `TLOAD` and `TSTORE` with a transaction-global limit. | Pricing extension | Memory |
| [EIP-7973](./eip-7973.md) | Introduce warm account writes, decreasing the cost of writing to an account after the first write. | Pricing extension | State |
| [EIP-8011](./eip-8011.md) | Gas accounting by EVM resource, increasing throughput and improving resource usage controls, with minimal changes to the protocol and UX. | Supporting | N/A |
| [EIP-8032](./eip-8032.md) | Makes `SSTORE` gas cost scale with a contract's storage size to discourage state bloat. | Pricing extension | State |
| [EIP-8053](./eip-8053.md) | Adds `milli-gas` as the EVM's internal gas accounting unit, reducing rounding errors without impacting UX. | Supporting | N/A |
| [EIP-8057](./eip-8057.md) | Multi‑block temporal locality discounts for state and account access. | Pricing extension | State |
| [EIP-8058](./eip-8058.md) | Reduces gas costs for deploying duplicate contract bytecode via access-list based mechanism. | Pricing extension | State |
| [EIP-8059](./eip-8059.md) | Gas parameters and variables are increased to a factor of `REBASE_FACTOR` to reduce rounding errors without major changes to the EVM. | Supporting | N/A |

## Rationale

### Gas cost changes by operation

The following tables summarize the preliminary gas cost changes. Numbers are not yet finalized and will be subject to change.

#### Compute Opcodes and Precompiles — [EIP-7904](./eip-7904.md) (no changes)

[EIP-7904](./eip-7904.md) is now Informational and recommends no repricing. Earlier revisions proposed raising the cost of a set of compute opcodes and precompiles, but re-running the benchmark and estimation pipeline against clients that include the parallel-execution optimizations unlocked by [EIP-7928](./eip-7928.md) (Block-Level Access Lists) shows those operations now clear the 100 Mgas/s throughput target at their current gas costs. Every compute opcode and precompile examined is therefore left unchanged.

#### State Access — [EIP-8038](./eip-8038.md)

| Opcode(s) | Component | Current | New | Direction |
| --- | --- | ---: | ---: | --- |
| `SSTORE` | `STORAGE_WRITE` (first-time write surcharge) | 2,800 | 10,000 | increase |
| `SSTORE`, `SLOAD` | `COLD_STORAGE_ACCESS` | 2,100 | 2,100 | unchanged |
| `*CALL`, `BALANCE`, `EXT*`, `SELFDESTRUCT` | `COLD_ACCOUNT_ACCESS` | 2,600 | 3,000 | increase |
| `*CALL`, `SELFDESTRUCT`, ETH transfers | `ACCOUNT_WRITE` (first-time account-leaf write surcharge) | 6,700 | 9,000 | increase |
| All state ops (warm) | `WARM_ACCESS` | 100 | 100 | unchanged |
| `CREATE`, `CREATE2` | `CREATE_ACCESS` | 7,000 | 12,000 | increase |
| `EXTCODESIZE` | Extra warm read for 2nd DB lookup | 0 | +`WARM_ACCESS` | increase (new) |
| `EXTCODECOPY` | Extra warm read for 2nd DB lookup | 0 | +`WARM_ACCESS` | increase (new) |
| `SSTORE`, `SLOAD` (access list) | `ACCESS_LIST_STORAGE_KEY_COST` | 1,900 | 2,000 | increase |
| `*CALL` etc. (access list) | `ACCESS_LIST_ADDRESS_COST` | 2,400 | 2,900 | increase |
| `SSTORE` | `STORAGE_CLEAR_REFUND` | 4,800 | 11,616 | increase (refund) |

#### State Creation — [EIP-8037](./eip-8037.md) (all increase)

[EIP-8037](./eip-8037.md) introduces a fixed cost per state byte, `CPSB = 1,530` (derived from a `150M` reference block gas limit), and meters state creation in a separate state-gas dimension. The new-state byte counts are 120 per account, 64 per storage slot, and 23 per [EIP-7702](./eip-7702.md) authorization indicator. The "New state gas" column is charged to the state-gas dimension; the "New execution gas" column accompanies it in execution gas.

| Operation | Opcodes Affected | Current | New state gas | New execution gas | Direction |
| --- | --- | ---: | ---: | ---: | --- |
| `GAS_CREATE` | `CREATE`, `CREATE2`, create txs | 32,000 | 120 × `CPSB` (183,600) | `CREATE_ACCESS` | increase |
| `GAS_CODE_DEPOSIT` | `CREATE`, `CREATE2`, create txs | 200/byte | `CPSB`/byte (1,530/byte) | `6 × ceil(len/32)` (hash) | increase |
| `GAS_NEW_ACCOUNT` | `CALL*` to new accounts, `SELFDESTRUCT` | 25,000 | 120 × `CPSB` (183,600) | 0 | increase |
| `GAS_STORAGE_SET` | `SSTORE` (0 → non-zero) | 20,000 | 64 × `CPSB` (97,920) | 0 | increase |
| `PER_EMPTY_ACCOUNT_COST` | EIP-7702 auth | 25,000 | 120 × `CPSB` (183,600) | `ACCOUNT_WRITE` | increase |
| `PER_AUTH_BASE_COST` | EIP-7702 auth | 12,500 | 23 × `CPSB` (35,190) | `EXECUTION_PER_AUTH_BASE_COST` | increase |

#### Transaction-Level Costs

| Parameter | Current | New | Direction | EIP |
| --- | ---: | --- | --- | --- |
| Intrinsic base (plain transfer to existing account) | 21,000 | 21,000, decomposed into `TX_BASE_COST` (12,000) + `COLD_ACCOUNT_ACCESS` (3,000) + `TX_VALUE_COST` (6,000) | unchanged (decomposed) | [2780](./eip-2780.md) |
| Intrinsic base (zero-value transaction) | 21,000 | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` = 15,000 (12,000 for a self-transaction) | decrease | [2780](./eip-2780.md) |
| Intrinsic base (contract-creation transaction) | 53,000 (21,000 + `TX_CREATE_COST` 32,000) | `TX_BASE_COST + CREATE_ACCESS` = 24,000 execution gas | decrease (execution gas) | [2780](./eip-2780.md), [8038](./eip-8038.md) |
| New-account charge (value transfer or contract creation that creates an account) | 0 for value transfers; folded into `TX_CREATE_COST` for creations | `STATE_BYTES_PER_NEW_ACCOUNT × CPSB` = 183,600 state gas, charged at runtime | increase | [2780](./eip-2780.md), [8037](./eip-8037.md) |
| Per-[EIP-7702](./eip-7702.md) authorization | `PER_EMPTY_ACCOUNT_COST` (25,000) intrinsic, refunded down to `PER_AUTH_BASE_COST` (12,500) when the authority already exists | `EXECUTION_PER_AUTH_BASE_COST` (7,816) intrinsic; state-dependent charges at runtime: `ACCOUNT_WRITE` on first write to the authority, 183,600 state gas for a non-existent authority, 35,190 state gas for net-new delegation bytes | increase | [2780](./eip-2780.md), [8037](./eip-8037.md) |
| Calldata floor cost | 10/40 per byte | 64/64 per byte | increase | [7976](./eip-7976.md) |
| Access list data cost | 0 | flat 64 gas per access list byte (1,280 per address, 2,048 per storage key) | increase (new) | [7981](./eip-7981.md) |
| Access list entry cost | `ACCESS_LIST_ADDRESS_COST` 2,400, `ACCESS_LIST_STORAGE_KEY_COST` 1,900 | `ACCESS_LIST_ADDRESS_COST` 2,900, `ACCESS_LIST_STORAGE_KEY_COST` 2,000, stacking with the data cost above | increase | [8038](./eip-8038.md) |

Two further transaction-level changes come from [EIP-8037](./eip-8037.md)'s separate state-gas dimension. [EIP-7825](./eip-7825.md)'s `TX_MAX_GAS_LIMIT` applies to execution gas only, with state gas bounded by `tx.gas` alone, so large contract deployments are no longer capped by the per-transaction gas limit. The system-call gas limit is raised from `30,000,000` to `30,000,000 + STATE_BYTES_PER_STORAGE_SET × CPSB × SYSTEM_MAX_SSTORES_PER_CALL`, preserving the existing execution margin for system contracts under the higher state creation costs.

## Security Considerations

Discussed in the individual EIPs.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).
