{ "eips": { "2780": { "category": "Core", "deltas": [ { "blob": "2dedd6e66c3815b475421021625a4a8ad0af2556", "candidates": [], "commit": "b1fd66f558f892d211c948933fe924d84eea8729", "constants": [], "date": "2020-07-11T13:03:06-06:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nnew file mode 100644\nindex 00000000..2dedd6e6\n--- /dev/null\n+++ b/EIPS/eip-2780.md\n@@ -0,0 +1,63 @@\n+---\n+eip: 2780\n+title: Reduce intrinsic transaction gas\n+author: Matt Garnett (@lightclient)>\n+discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n+status: Draft\n+type: Standards Track\n+category: Core\n+created: 2020-07-11\n+---\n+\n+## Abstract\n+Reduce the intrinsic cost of a transaction to `16,360` gas.\n+\n+## Motivation\n+The current `21,000` gas intrinsic cost of a transaction does not accurately\n+represent the true cost of the transaction.\n+\n+## Specification\n+After `block.number >= FORK_BLOCK`, enforce an intrinsic gas cost of `16,360`.\n+\n+## Rationale\n+\n+The EVM-equivalent of transaction validation would consist mostly of ~110 bytes\n+of data and 2 x `SLOAD (0x54)`, 2 x `SSTORE (0x55)`, and an `ECRECOVER`. This\n+translates to `(16 * 110) + 2 * 800 + 2 * 5,000 (assuming account is\n+initialized) + 3000 = 16,360`. This implies that the current intrinsic cost of\n+a transaction is overpriced by `4,640` gas. Since validation is implemented\n+natively, it's possible that this is a conservative estimate.\n+\n+## Backwards Compatibility\n+TBD\n+\n+## Test Cases\n+TBD\n+\n+## Implementation\n+TBD\n+\n+## Security Considerations\n+\n+#### Increased transactions-per-block\n+Reducing the intrinsic gas of transaction will lead to an increase of\n+transactions per block. This has several consequences:\n+\n+* Historically, periods of high transaction counts has correlated with\n+ higher-than-average uncle blocks being mined. It must be determined that the\n+ new intrinsic cost `16,360` will not adversely affect.\n+\n+* The state size of Ethereum continues to grow at an unsustainable pace.\n+ Increased the transaction throughput will exasperate this problem.\n+\n+#### Storage may be accessed more than once\n+It is difficult to arrive at a fixed-cost for the intrinsic transaction fee,\n+because it's possible for clients to need to revalidate a transaction in its\n+mempool. This can be caused artificially by submitting a chain of transactions\n+and bumping the gas price of the first transaction by minimal step sizes. Since\n+the first transaction is now a \"new\" transaction, the transactions that follow\n+sequentially will need to ensure the account's balance can still afford to\n+transact.\n+\n+## Copyright\n+Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\n", "order": 0, "subject": "Intial draft of eip to reduce intrinsic gas cost of transactions (#2780)", "tokens": [ "16,360", "21,000", "block.number >= FORK_BLOCK", "SLOAD (0x54)", "SSTORE (0x55)", "ECRECOVER", "(16 * 110) + 2 * 800 + 2 * 5,000 (assuming account is\ninitialized) + 3000 = 16,360", "4,640" ], "window": [] }, { "blob": "7ec8517365ca7c5b0d920b540e61c3ded803e7f9", "candidates": [], "commit": "1fc86651109ff664c9818c3938a9bc658b01a8b0", "constants": [], "date": "2020-07-31T11:23:58+12:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 2dedd6e6..7ec85173 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,7 +1,7 @@\n ---\n eip: 2780\n title: Reduce intrinsic transaction gas\n-author: Matt Garnett (@lightclient)>\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n@@ -10,54 +10,107 @@ created: 2020-07-11\n ---\n \n ## Abstract\n-Reduce the intrinsic cost of a transaction to `16,360` gas.\n+Reduce the intrinsic cost of a transaction from `21,000` to `7,000` gas.\n \n ## Motivation\n-The current `21,000` gas intrinsic cost of a transaction does not accurately\n-represent the true cost of the transaction.\n+The current `21,000` gas intrinsic cost of a transaction makes sending ETH very costly, often times prohibitively costly for small amounts (tens of USD).\n+While broad changes to the gas price and first price auction are being considerted in other EIPs (like EIP-1559),\n+substantially reducing the cost of sending ETH and enabling higher volumes of such transactions would be a net positive if done in a safe manner,\n+and without imposing negative externalities, as outlined below.\n+\n \n ## Specification\n-After `block.number >= FORK_BLOCK`, enforce an intrinsic gas cost of `16,360`.\n+After `block.number >= FORK_BLOCK`, enforce an intrinsic gas cost of `7,000`.\n \n ## Rationale\n \n-The EVM-equivalent of transaction validation would consist mostly of ~110 bytes\n-of data and 2 x `SLOAD (0x54)`, 2 x `SSTORE (0x55)`, and an `ECRECOVER`. This\n-translates to `(16 * 110) + 2 * 800 + 2 * 5,000 (assuming account is\n-initialized) + 3000 = 16,360`. This implies that the current intrinsic cost of\n-a transaction is overpriced by `4,640` gas. Since validation is implemented\n-natively, it's possible that this is a conservative estimate.\n+The proliferation of calls to DeFi smart-contracts had substantially increased the cost of making transactions,\n+since such calls are usually both time sensitive and involve large sums of money.\n+While the utilization of the chain's capacity by the most valuable transactions is by design,\n+the high cost of sending transactionsz is limiting Ethereum's the use-cases,\n+create a terribel user experience,\n+decreases the actual value created (and captured) by ETH,\n+and pushes users to seek alternatives in other, less-congested chains.\n+\n+\n+Note on Layer-2: It is true that the high cost might push users to try using L2 solutions,\n+however forcing users to utilize L2 by allowing the UX of using L1 to deteriorate is a losing strategy (see BTC / Lightning),\n+and the safety of many L2 solutions hinges on the ability to use L1 if needed.\n+If L2 are to gain significant traction they must achieve it by providing superior properties (e.g., finality, cost, UX),\n+not by imposing artificial restrictions to encourage it. \n+\n+\n+Reducing the intrinsic cost of a transaction from `21,000` to `7,000` gas will make sending transactions cheaper,\n+is easily achievable, and does not incur technical debt.\n+However, such a change should only be made after it is determined that it does not impose non-negligble externalities, specifically:\n+\n+* Increases uncle-rate.\n+\n+* Increases the pace at which the state-size of Ethereum grows.\n+\n+* Enhance gas-manipulation technices (gas-token).\n+\n \n ## Backwards Compatibility\n-TBD\n+This EIP is backward compatible as well as compatible with other approaches pursued in other EIPs.\n \n ## Test Cases\n-TBD\n+While the benefits of reducing transactions' intrinsic cost are appearant,\n+such a change should be applied if it impose no negative externalities,\n+or if such effects are negligible.\n+\n+\n+#### Increased Uncle Rate\n+\n+Historically, periods of high transaction counts has correlated with\n+higher-than-average uncle blocks being mined. It must be determined that the\n+new intrinsic cost `7,000` will not adversely affect uncle rate.\n+\n+A testnet applying this change should be deployed to test the effect of this change on uncle rate.\n+\n+details TBD.\n+\n \n ## Implementation\n TBD\n \n ## Security Considerations\n \n-#### Increased transactions-per-block\n-Reducing the intrinsic gas of transaction will lead to an increase of\n-transactions per block. This has several consequences:\n-\n-* Historically, periods of high transaction counts has correlated with\n- higher-than-average uncle blocks being mined. It must be determined that the\n- new intrinsic cost `16,360` will not adversely affect.\n-\n-* The state size of Ethereum continues to grow at an unsustainable pace.\n- Increased the transaction throughput will exasperate this problem.\n-\n-#### Storage may be accessed more than once\n-It is difficult to arrive at a fixed-cost for the intrinsic transaction fee,\n-because it's possible for clients to need to revalidate a transaction in its\n-mempool. This can be caused artificially by submitting a chain of transactions\n-and bumping the gas price of the first transaction by minimal step sizes. Since\n-the first transaction is now a \"new\" transaction, the transactions that follow\n-sequentially will need to ensure the account's balance can still afford to\n-transact.\n+\n+#### Increased State Size Growth\n+\n+The growth of Ethereum's state size continues to raise concerns among members of the community.\n+However, an analysis of Ethereum accounts shows that their effect on stat size is negligible.\n+\n+Looking at the first half of 2020, the number of accounts on the Ethereum chain had grown from 84,127,955 to 103,485,373 - an increase of 19,357,418. Since the *creation* of each new account adds 20 bytes to the chain state, these new accounts had added ~369 MB to the state.\n+At the same time, the chain had grown from ~117 GB to ~147 GB - an increase of 30 GB.\n+The creation of new accounts had therefore accounted for only a very small percentage (1.2%) of the chain\u2019s growth.\n+\n+Even under the very aggressive assumption that reducing the intrinsic cost of transactions from `21,000` to `7,000` gas would translate to x3 more new accounts being created, if this change was implemented on 1/1/2020, the state size would have only been 0.49% larger than it is today (see below)\n+\n+While the sate-size remains an open issue which needs solving - reducing the intrinsic cost of transactions would hardly affect the rate at which the state-size grows, and would significantly improve the chain\u2019s usability.\n+\n+\n+#### Enhancing Gas-Manipulation (gas-token)\n+\n+Gas Token (https://gastoken.io/) is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (v.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n+Gas Tokens do not actually increase the state-size lon-term, as they release all the data they store in order to benefit from their gas boost.\n+However, they do manipulate the gas price auction.\n+\n+There had been concerns that reducing the intrinsic cost of transactions from `21,000` to `7,000` would boost the savings achiieved using gas tokens, however these concerns are unfounded.\n+Due to some overhead of using the smart contract, minting and freeing a single gas-token is uneconomical, but the effect of the overhead diminishes the more tokens are minted and freed. \n+This is also the reason why their efficiency is hardly affected by the intrinsic cost of transactions - the gas token is designed to spread the transaction cost among many tokens.\n+\n+The creators of gas tokens outline the maximal potential savings when minting very large number of tokens (up to x2.97 for V.1, and up to 3.49 for V.2). These numbers are *unaffected* by the proposed change. In a more realistic scenario where 100 gas tokens are minted, the proposed change increases the saving multiplier by a minuscule amount, generally smaller than the increase achieved by minting 200 tokens instead of 100.\n+The table below captures the effect of this proposal on the savings multiplier in a \n+\n+Version | free_gas_price / mint_gas_price | old savings multiplier | new savings multiplier | saving multiplier of 200 tokens\n+V.1\t| 10\t\t| 2.075\t| 2.077\t| 2.1\n+V.1\t| 100\t| 2.780\t| 2.781\t| 2.819\n+\n+V.2\t10\t\t| 2.243\t| 2.275\t| 2.261\n+V.2\t100\t\t| 3.251\t| 3.315\t| 3.316\n+\n \n ## Copyright\n Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\n", "order": 1, "subject": "Automatically merged updates to draft EIP(s) 2780 (#2842)", "tokens": [ "21,000", "7,000", "block.number >= FORK_BLOCK" ], "window": [] }, { "blob": "3928e7d7f6e3210f575b79ce93ab1a7f556dfcd9", "candidates": [], "commit": "4a9ab3c283afaf3f35228635665a8c9c12daaae9", "constants": [], "date": "2020-08-08T02:43:42+12:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 7ec85173..3928e7d7 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -93,7 +93,7 @@ While the sate-size remains an open issue which needs solving - reducing the int\n \n #### Enhancing Gas-Manipulation (gas-token)\n \n-Gas Token (https://gastoken.io/) is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (v.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n+Gas Token (https://gastoken.io/) is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (V.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n Gas Tokens do not actually increase the state-size lon-term, as they release all the data they store in order to benefit from their gas boost.\n However, they do manipulate the gas price auction.\n \n@@ -104,12 +104,12 @@ This is also the reason why their efficiency is hardly affected by the intrinsic\n The creators of gas tokens outline the maximal potential savings when minting very large number of tokens (up to x2.97 for V.1, and up to 3.49 for V.2). These numbers are *unaffected* by the proposed change. In a more realistic scenario where 100 gas tokens are minted, the proposed change increases the saving multiplier by a minuscule amount, generally smaller than the increase achieved by minting 200 tokens instead of 100.\n The table below captures the effect of this proposal on the savings multiplier in a \n \n-Version | free_gas_price / mint_gas_price | old savings multiplier | new savings multiplier | saving multiplier of 200 tokens\n-V.1\t| 10\t\t| 2.075\t| 2.077\t| 2.1\n-V.1\t| 100\t| 2.780\t| 2.781\t| 2.819\n-\n-V.2\t10\t\t| 2.243\t| 2.275\t| 2.261\n-V.2\t100\t\t| 3.251\t| 3.315\t| 3.316\n+| Version | free_gas_price / mint_gas_price | old savings multiplier | new savings multiplier | saving multiplier of 200 tokens |\n+|---|---|---|---|---|\n+| V.1 | 10 | 2.075 | 2.077 | 2.1 |\n+| V.1 | 100 | 2.780 | 2.781 | 2.819 |\n+| V.2 | 10 | 2.243 | 2.275 | 2.261 |\n+| V.2 | 100 | 3.251 | 3.315 | 3.316 |\n \n \n ## Copyright\n", "order": 2, "subject": "Automatically merged updates to draft EIP(s) 2780 (#2864)", "tokens": [], "window": [] }, { "blob": "e1b2c65ba0c3481812df252ede9bc0e8d1ff3bef", "candidates": [], "commit": "31861f46d3ff85b192442665b411bef67e9359e7", "constants": [], "date": "2021-03-11T12:12:47+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 3928e7d7..e1b2c65b 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -3,7 +3,7 @@ eip: 2780\n title: Reduce intrinsic transaction gas\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n-status: Draft\n+status: Withdrawn\n type: Standards Track\n category: Core\n created: 2020-07-11\n", "order": 3, "subject": "Change status of EIP-2780 from \"Draft\" to \"Withdrawn\" (#3311)", "tokens": [], "window": [] }, { "blob": "3c75c91340940d7dbb0b8088314bc663ad01b9e2", "candidates": [], "commit": "9e393a79d9937f579acbdcb234a67869259d5a96", "constants": [], "date": "2022-05-06T00:29:09-07:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex e1b2c65b..3c75c913 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -113,4 +113,4 @@ The table below captures the effect of this proposal on the savings multiplier i\n \n \n ## Copyright\n-Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\n+Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 4, "subject": "Force usage of included LICENSE file (#5055)", "tokens": [], "window": [] }, { "blob": "175d1e541c90cff06910686b3def3d3d1cfe3dad", "candidates": [], "commit": "f20b164b00ae5553f7536a6d7a83a0f254455e09", "constants": [], "date": "2024-05-28T12:19:55-05:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 3c75c913..175d1e54 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -42,7 +42,7 @@ not by imposing artificial restrictions to encourage it.\n \n Reducing the intrinsic cost of a transaction from `21,000` to `7,000` gas will make sending transactions cheaper,\n is easily achievable, and does not incur technical debt.\n-However, such a change should only be made after it is determined that it does not impose non-negligble externalities, specifically:\n+However, such a change should only be made after it is determined that it does not impose non-negligible externalities, specifically:\n \n * Increases uncle-rate.\n \n", "order": 5, "subject": "Update EIPs: Fix typos in 37 files", "tokens": [], "window": [] }, { "blob": "c78ff932207f6e5b444d3a7081f08b169bd9362a", "candidates": [], "commit": "d601ef9d12349365002863177d02af270596f607", "constants": [], "date": "2025-07-22T12:21:49-04:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 175d1e54..c78ff932 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -10,16 +10,19 @@ created: 2020-07-11\n ---\n \n ## Abstract\n+\n Reduce the intrinsic cost of a transaction from `21,000` to `7,000` gas.\n \n ## Motivation\n+\n The current `21,000` gas intrinsic cost of a transaction makes sending ETH very costly, often times prohibitively costly for small amounts (tens of USD).\n-While broad changes to the gas price and first price auction are being considerted in other EIPs (like EIP-1559),\n+While broad changes to the gas price and first price auction are being considered in other EIPs (like EIP-1559),\n substantially reducing the cost of sending ETH and enabling higher volumes of such transactions would be a net positive if done in a safe manner,\n and without imposing negative externalities, as outlined below.\n \n \n ## Specification\n+\n After `block.number >= FORK_BLOCK`, enforce an intrinsic gas cost of `7,000`.\n \n ## Rationale\n@@ -28,7 +31,7 @@ The proliferation of calls to DeFi smart-contracts had substantially increased t\n since such calls are usually both time sensitive and involve large sums of money.\n While the utilization of the chain's capacity by the most valuable transactions is by design,\n the high cost of sending transactionsz is limiting Ethereum's the use-cases,\n-create a terribel user experience,\n+create a terrible user experience,\n decreases the actual value created (and captured) by ETH,\n and pushes users to seek alternatives in other, less-congested chains.\n \n@@ -52,15 +55,17 @@ However, such a change should only be made after it is determined that it does n\n \n \n ## Backwards Compatibility\n+\n This EIP is backward compatible as well as compatible with other approaches pursued in other EIPs.\n \n ## Test Cases\n-While the benefits of reducing transactions' intrinsic cost are appearant,\n+\n+While the benefits of reducing transactions' intrinsic cost are apparent,\n such a change should be applied if it impose no negative externalities,\n or if such effects are negligible.\n \n \n-#### Increased Uncle Rate\n+### Increased Uncle Rate\n \n Historically, periods of high transaction counts has correlated with\n higher-than-average uncle blocks being mined. It must be determined that the\n@@ -72,12 +77,13 @@ details TBD.\n \n \n ## Implementation\n+\n TBD\n \n ## Security Considerations\n \n \n-#### Increased State Size Growth\n+### Increased State Size Growth\n \n The growth of Ethereum's state size continues to raise concerns among members of the community.\n However, an analysis of Ethereum accounts shows that their effect on stat size is negligible.\n@@ -91,13 +97,13 @@ Even under the very aggressive assumption that reducing the intrinsic cost of tr\n While the sate-size remains an open issue which needs solving - reducing the intrinsic cost of transactions would hardly affect the rate at which the state-size grows, and would significantly improve the chain\u2019s usability.\n \n \n-#### Enhancing Gas-Manipulation (gas-token)\n+### Enhancing Gas-Manipulation (gas-token)\n \n Gas Token (https://gastoken.io/) is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (V.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n Gas Tokens do not actually increase the state-size lon-term, as they release all the data they store in order to benefit from their gas boost.\n However, they do manipulate the gas price auction.\n \n-There had been concerns that reducing the intrinsic cost of transactions from `21,000` to `7,000` would boost the savings achiieved using gas tokens, however these concerns are unfounded.\n+There had been concerns that reducing the intrinsic cost of transactions from `21,000` to `7,000` would boost the savings achieved using gas tokens, however these concerns are unfounded.\n Due to some overhead of using the smart contract, minting and freeing a single gas-token is uneconomical, but the effect of the overhead diminishes the more tokens are minted and freed. \n This is also the reason why their efficiency is hardly affected by the intrinsic cost of transactions - the gas token is designed to spread the transaction cost among many tokens.\n \n@@ -113,4 +119,5 @@ The table below captures the effect of this proposal on the savings multiplier i\n \n \n ## Copyright\n+\n Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 6, "subject": "Update EIP-2780: Minor spelling corrections in EIP documentation (#10023)", "tokens": [ "21,000", "7,000" ], "window": [] }, { "blob": "b870ad5ec47f4ffb71c7dcd05540f58a9bde0421", "candidates": [], "commit": "2737b7c86d0dd024dd8a56545002fea732cbabf9", "constants": [], "date": "2025-09-04T19:08:03Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex c78ff932..b870ad5e 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,9 +1,10 @@\n ---\n eip: 2780\n title: Reduce intrinsic transaction gas\n-author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman)\n+description: Reduce intrinsic transaction gas from 21k to 7k\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n-status: Withdrawn\n+status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n@@ -75,11 +76,6 @@ A testnet applying this change should be deployed to test the effect of this cha\n \n details TBD.\n \n-\n-## Implementation\n-\n-TBD\n-\n ## Security Considerations\n \n \n@@ -99,7 +95,7 @@ While the sate-size remains an open issue which needs solving - reducing the int\n \n ### Enhancing Gas-Manipulation (gas-token)\n \n-Gas Token (https://gastoken.io/) is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (V.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n+Gas Token is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (V.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n Gas Tokens do not actually increase the state-size lon-term, as they release all the data they store in order to benefit from their gas boost.\n However, they do manipulate the gas price auction.\n \n", "order": 7, "subject": "Update EIP-2780: Move to Draft", "tokens": [], "window": [] }, { "blob": "b3ecb0489f4df8200fb43be3113e5f0a7bde145a", "candidates": [], "commit": "1926763c3b7e30e73ddee0e821ef3adda2bacadc", "constants": [ { "after": [ "2" ], "before": [], "name": "ACCESS_LIST_ADDRESS_COST" }, { "after": [ "3" ], "before": [], "name": "ECRECOVER_COST" }, { "after": [ "25" ], "before": [], "name": "GAS_NEW_ACCOUNT" }, { "after": [ "Uint(21000", "Uint(8000" ], "before": [], "name": "TX_BASE_COST" }, { "after": [ "100" ], "before": [], "name": "WARM_ACCOUNT_WRITE_COST" } ], "date": "2025-09-05T04:05:32Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex b870ad5e..b3ecb048 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,118 +1,128 @@\n ---\n eip: 2780\n title: Reduce intrinsic transaction gas\n-description: Reduce intrinsic transaction gas from 21k to 7k\n+description: Reduce intrinsic transaction gas from 21k to 8k and charge 25k when a value transfer creates a new account\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n+requires: 1559, 2718, 2929, 2930\n ---\n \n ## Abstract\n \n-Reduce the intrinsic cost of a transaction from `21,000` to `7,000` gas.\n+Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `8,000`.\n+\n+If a non-create transation has `value > 0` and targets a **non-existent** account add `GAS_NEW_ACCOUNT` = `25,000` to align with `CALL` account creation and price in state growth.\n+\n+This additional `GAS_NEW_ACCOUNT` cost is not applied in the case of a `CREATE` transaction as it is already applied in its cost structure.\n+\n+Calldata and access\u2011list metering are unchanged.\n \n ## Motivation\n \n-The current `21,000` gas intrinsic cost of a transaction makes sending ETH very costly, often times prohibitively costly for small amounts (tens of USD).\n-While broad changes to the gas price and first price auction are being considered in other EIPs (like EIP-1559),\n-substantially reducing the cost of sending ETH and enabling higher volumes of such transactions would be a net positive if done in a safe manner,\n-and without imposing negative externalities, as outlined below.\n+The current `21,000` intrinsic gas is a legacy constant. It no longer matches the work all transactions must perform under warm/cold accounting. When decomposed into signature recovery, warming `sender` and `to`, and two warm writes for nonce and balance, the common path totals `8,000` gas.\n \n+Top\u2011level value transfers that create new accounts do not pay an explicit new\u2011account surcharge today, while `CALL` does. This underprices state growth. Charging `GAS_NEW_ACCOUNT = 25,000` on value transfers that create an account aligns entry points and internalizes state growth.\n \n-## Specification\n+A high fixed base penalizes small ETH payments and encourages batching to dodge the base rather than for real efficiency. Lowering the base removes that distortion while leaving calldata and storage prices unchanged.\n \n-After `block.number >= FORK_BLOCK`, enforce an intrinsic gas cost of `7,000`.\n+The result is cheaper ETH transfers without subsidies: state growth costs the same whether reached by `CALL` or by a top\u2011level transfer. Access\u2011list and 1559 mechanics are unchanged.\n \n-## Rationale\n+We intentionally do **not** charge per\u2011byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty tx.data, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n \n-The proliferation of calls to DeFi smart-contracts had substantially increased the cost of making transactions,\n-since such calls are usually both time sensitive and involve large sums of money.\n-While the utilization of the chain's capacity by the most valuable transactions is by design,\n-the high cost of sending transactionsz is limiting Ethereum's the use-cases,\n-create a terrible user experience,\n-decreases the actual value created (and captured) by ETH,\n-and pushes users to seek alternatives in other, less-congested chains.\n+## Specification\n \n+After `FORK_BLOCK`, set `TX_BASE_COST` = 8,000; apply `GAS_NEW_ACCOUNT` as specified.\n \n-Note on Layer-2: It is true that the high cost might push users to try using L2 solutions,\n-however forcing users to utilize L2 by allowing the UX of using L1 to deteriorate is a losing strategy (see BTC / Lightning),\n-and the safety of many L2 solutions hinges on the ability to use L1 if needed.\n-If L2 are to gain significant traction they must achieve it by providing superior properties (e.g., finality, cost, UX),\n-not by imposing artificial restrictions to encourage it. \n+If the transaction has `value > 0` and is sending to a non-existent account (as per [EIP-161](./eip-161.md)) and not a precompile; so results in account creation, then the `GAS_NEW_ACCOUNT` cost is additionally applied as per `CALL`; resulting in an increase from `21000` to `33000` a +12,000 increase over current. This normalises account creation cost via evm CALL or TX send and addressing state growth concerns.\n \n+In `transactions.py`\n \n-Reducing the intrinsic cost of a transaction from `21,000` to `7,000` gas will make sending transactions cheaper,\n-is easily achievable, and does not incur technical debt.\n-However, such a change should only be made after it is determined that it does not impose non-negligible externalities, specifically:\n+```diff\n+-TX_BASE_COST = Uint(21000)\n++TX_BASE_COST = Uint(8000)\n+\"\"\"\n+Base cost of a transaction in gas units. This is the minimum amount of gas required to execute a transaction.\n+\"\"\"\n+```\n \n-* Increases uncle-rate.\n+EIP\u20111559/2930/7702 transactions that currently reference the `21,000` base inherit this new constant of `8,000`.\n \n-* Increases the pace at which the state-size of Ethereum grows.\n+### Derivation (non\u2011normative)\n \n-* Enhance gas-manipulation technices (gas-token).\n+Sender is recovered from signature, so is ecrecover cost. Sender and To should match Access List pricing.\n \n+```\n+ECRECOVER_COST = 3,000\n+ACCESS_LIST_ADDRESS_COST = 2,400\n+WARM_ACCOUNT_WRITE_COST = 100\n+GAS_NEW_ACCOUNT = 25,000\n+```\n \n-## Backwards Compatibility\n+```\n+TX_BASE_COST =\n+ ECRECOVER_COST\n+ + 2 * ACCESS_LIST_ADDRESS_COST\n+ + 2 * WARM_ACCOUNT_WRITE_COST\n+ = 8,000\n+```\n \n-This EIP is backward compatible as well as compatible with other approaches pursued in other EIPs.\n+## Rationale\n \n-## Test Cases\n+Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and two warm writes. That sums to `8,000` gas. Anything not universal should be metered separately.\n \n-While the benefits of reducing transactions' intrinsic cost are apparent,\n-such a change should be applied if it impose no negative externalities,\n-or if such effects are negligible.\n+Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It only updates warm account nonce and balance, so it receives the discount.\n \n+When a value transfer creates a previously empty account, charge `GAS_NEW_ACCOUNT = 25,000`, identical to `CALL` account\u2011creation pricing. `CREATE` is unchanged because its cost already includes account creation. Access\u2011list pricing is unchanged.\n \n-### Increased Uncle Rate\n+This removes cross\u2011subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n \n-Historically, periods of high transaction counts has correlated with\n-higher-than-average uncle blocks being mined. It must be determined that the\n-new intrinsic cost `7,000` will not adversely affect uncle rate.\n+Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per\u2011entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\n \n-A testnet applying this change should be deployed to test the effect of this change on uncle rate.\n+Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\n \n-details TBD.\n+Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n \n-## Security Considerations\n+## Backwards Compatibility\n \n+This EIP is backward compatible.\n \n-### Increased State Size Growth\n+Wallet default gas limits and simulations must update.\n \n-The growth of Ethereum's state size continues to raise concerns among members of the community.\n-However, an analysis of Ethereum accounts shows that their effect on stat size is negligible.\n+### Example tx gas cost changes\n \n-Looking at the first half of 2020, the number of accounts on the Ethereum chain had grown from 84,127,955 to 103,485,373 - an increase of 19,357,418. Since the *creation* of each new account adds 20 bytes to the chain state, these new accounts had added ~369 MB to the state.\n-At the same time, the chain had grown from ~117 GB to ~147 GB - an increase of 30 GB.\n-The creation of new accounts had therefore accounted for only a very small percentage (1.2%) of the chain\u2019s growth.\n+* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (-62%)\n+* ETH transfer that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n+* Simple ERC-20 Token transfer (USDT) drops from `63,200` to `50,200` (-20%)\n \n-Even under the very aggressive assumption that reducing the intrinsic cost of transactions from `21,000` to `7,000` gas would translate to x3 more new accounts being created, if this change was implemented on 1/1/2020, the state size would have only been 0.49% larger than it is today (see below)\n+## Test Cases\n+\n+While the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it impose no negative externalities, or if such effects are negligible.\n \n-While the sate-size remains an open issue which needs solving - reducing the intrinsic cost of transactions would hardly affect the rate at which the state-size grows, and would significantly improve the chain\u2019s usability.\n+Tests should be created with blocks of just ETH transfers and tested on Perfnet across all EL clients to ensure the pricing is correct.\n \n+## Security Considerations\n \n-### Enhancing Gas-Manipulation (gas-token)\n+As this increases the max tx per block by 162.5% that carries risk. \n \n-Gas Token is an Ethereum smart-contracts which leverages the storage refund mechanism by storing data (V.1) or creating accounts (V.2) using a low gas price, and then free (V.1) or self-destruct (V.2) them in a later transaction which utilizes a higher gas price. This mechanism is only economical when the high gas price redeeming the tokens is more than twice as high as the low gas price used to mint them.\n-Gas Tokens do not actually increase the state-size lon-term, as they release all the data they store in order to benefit from their gas boost.\n-However, they do manipulate the gas price auction.\n \n-There had been concerns that reducing the intrinsic cost of transactions from `21,000` to `7,000` would boost the savings achieved using gas tokens, however these concerns are unfounded.\n-Due to some overhead of using the smart contract, minting and freeing a single gas-token is uneconomical, but the effect of the overhead diminishes the more tokens are minted and freed. \n-This is also the reason why their efficiency is hardly affected by the intrinsic cost of transactions - the gas token is designed to spread the transaction cost among many tokens.\n+Block gaslimit | Old tx/bk (21k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s\n+--:| --:| --:| --:| --:| --:| --:| --:| --:|\n+45M | 2,143 | 179 | 357 | 714 | 5,625 | 469 | 938 | 1,875\n+60M | 2,857 | 238 | 476 | 952 | 7,500 | 625 | 1,250 | 2,500\n+100M | 4,762 | 397 | 794 | 1,587 | 12,500 | 1,042 | 2,083 | 4,167\n+200M | 9,524 | 794 | 1,587 | 3,175 | 25,000 | 2,083 | 4,167 | 8,333\n+400M | 19,048 | 1,587 | 3,175 | 6,349 | 50,000 | 4,167 | 8,333 | 16,667\n+800M | 38,095 | 3,175 | 6,349 | 12,698 | 100,000 | 8,333 | 16,667 | 33,333\n+1,600M | 76,190 | 6,349 | 12,698 | 25,397 | 200,000 | 16,667 | 33,333 | 66,667\n \n-The creators of gas tokens outline the maximal potential savings when minting very large number of tokens (up to x2.97 for V.1, and up to 3.49 for V.2). These numbers are *unaffected* by the proposed change. In a more realistic scenario where 100 gas tokens are minted, the proposed change increases the saving multiplier by a minuscule amount, generally smaller than the increase achieved by minting 200 tokens instead of 100.\n-The table below captures the effect of this proposal on the savings multiplier in a \n \n-| Version | free_gas_price / mint_gas_price | old savings multiplier | new savings multiplier | saving multiplier of 200 tokens |\n-|---|---|---|---|---|\n-| V.1 | 10 | 2.075 | 2.077 | 2.1 |\n-| V.1 | 100 | 2.780 | 2.781 | 2.819 |\n-| V.2 | 10 | 2.243 | 2.275 | 2.261 |\n-| V.2 | 100 | 3.251 | 3.315 | 3.316 |\n+However this pricing should be the same as performing the component changes inside the a transaction; and it factors in the additional costs from state growth which were not originally in the original transaction base price.\n \n+Current gaslimit testing mostly uses a block with a single transaction; so this should should not cause unexpected load compared to what already being tested.\n \n ## Copyright\n \n", "order": 8, "subject": "Update EIP-2780: Refresh and modernize", "tokens": [ "TX_BASE_COST", "21,000", "8,000", "value > 0", "GAS_NEW_ACCOUNT", "25,000", "CALL", "CREATE", "sender", "to", "GAS_NEW_ACCOUNT = 25,000", "nonce", "gas*", "value", "v", "r", "s", "tx.data", "FORK_BLOCK", "21000", "33000", "transactions.py", "diff\n-TX_BASE_COST = Uint(21000)\n+TX_BASE_COST = Uint(8000)\n\"\"\"\nBase cost of a transaction in gas units. This is the minimum amount of gas required to execute a transaction.\n\"\"\"\n", "\nEIP\u20111559/2930/7702 transactions that currently reference the ", " base inherit this new constant of ", ".\n### Derivation (non\u2011normative)\nSender is recovered from signature, so is ecrecover cost. Sender and To should match Access List pricing.\n", "\nECRECOVER_COST = 3,000\nACCESS_LIST_ADDRESS_COST = 2,400\nWARM_ACCOUNT_WRITE_COST = 100\nGAS_NEW_ACCOUNT = 25,000\n", "\n", "\nTX_BASE_COST =\n ECRECOVER_COST\n + 2 * ACCESS_LIST_ADDRESS_COST\n + 2 * WARM_ACCOUNT_WRITE_COST\n = 8,000\n", "\n## Rationale\nPrice only what every transaction always does: ECDSA recovery, warming ", " and ", ", and two warm writes. That sums to ", " gas. Anything not universal should be metered separately.\nCalldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It only updates warm account nonce and balance, so it receives the discount.\nWhen a value transfer creates a previously empty account, charge ", ", identical to ", " account\u2011creation pricing. ", " is unchanged because its cost already includes account creation. Access\u2011list pricing is unchanged.\nThis removes cross\u2011subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\nDo not fold any calldata allowance into the base. The envelope RLP (", ", ", ",", ") is not charged as calldata and remains unmetered per byte. Only ", " bytes are metered at the existing calldata schedule, and access lists keep their per\u2011entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\nBundling multiple transfers into a single contract call avoids repeated ", ", but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\nThus, reducing ", " not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n## Backwards Compatibility\nThis EIP is backward compatible.\nWallet default gas limits and simulations must update.\n### Example tx gas cost changes\n* Simple ETH transfer to an existing EOA: intrinsic drops from ", " to ", ". (-62%)\n* ETH transfer that creates a new EOA: intrinsic becomes ", " = ", ". (+57%)\n* Simple ERC-20 Token transfer (USDT) drops from " ], "window": [] }, { "blob": "2c350efc32effc5ebd940c63c7b14a2957d4a020", "candidates": [], "commit": "76522f4eaad6e16b1b61392645e8a58413f93d78", "constants": [ { "after": [ "25", "25,000" ], "before": [], "name": "GAS_NEW_ACCOUNT" }, { "after": [ "8", "8,000" ], "before": [], "name": "TX_BASE_COST" }, { "after": [ "100" ], "before": [], "name": "WARM_ACCOUNT_ACCESS_COST" }, { "after": [], "before": [ "100" ], "name": "WARM_ACCOUNT_WRITE_COST" } ], "date": "2025-09-05T06:11:55Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex b3ecb048..2c350efc 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -15,7 +15,7 @@ requires: 1559, 2718, 2929, 2930\n \n Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `8,000`.\n \n-If a non-create transation has `value > 0` and targets a **non-existent** account add `GAS_NEW_ACCOUNT` = `25,000` to align with `CALL` account creation and price in state growth.\n+If a non-create transaction has `value > 0` and targets a **non-existent** account add `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth.\n \n This additional `GAS_NEW_ACCOUNT` cost is not applied in the case of a `CREATE` transaction as it is already applied in its cost structure.\n \n@@ -35,11 +35,61 @@ We intentionally do **not** charge per\u2011byte gas for the transaction envelope (\n \n ## Specification\n \n-After `FORK_BLOCK`, set `TX_BASE_COST` = 8,000; apply `GAS_NEW_ACCOUNT` as specified.\n+After `FORK_BLOCK`, set the following parameters and rules.\n \n-If the transaction has `value > 0` and is sending to a non-existent account (as per [EIP-161](./eip-161.md)) and not a precompile; so results in account creation, then the `GAS_NEW_ACCOUNT` cost is additionally applied as per `CALL`; resulting in an increase from `21000` to `33000` a +12,000 increase over current. This normalises account creation cost via evm CALL or TX send and addressing state growth concerns.\n+### Parameters\n \n-In `transactions.py`\n+| Name | Value | Description |\n+| ----------------- | ------ | ------------------------------------------------------------------------- |\n+| `TX_BASE_COST` | 8,000 | Base cost of any transaction |\n+| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a **value\u2011transferring** transaction creates a new account |\n+\n+### New\u2011account surcharge\n+\n+Apply `GAS_NEW_ACCOUNT` when **all** are true:\n+\n+1. The transaction is not a `CREATE` transaction.\n+2. `value > 0`.\n+3. `to` is not a precompile.\n+4. `to` is **non\u2011existent** per [EIP\u2011161](./eip-161.md) emptiness at the start of transaction execution.\n+\n+If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account\u2011creation cost via EVM `CALL` or top\u2011level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `33,000` (+12,000 over current).\n+\n+Notes:\n+\n+* If `value = 0` and `to` is empty per EIP\u2011161, no account is created and no surcharge applies.\n+* `CREATE` transactions are unchanged; their cost already includes account creation.\n+\n+### Intrinsic gas computation\n+\n+Clients must compute intrinsic gas exactly as today for each typed transaction **except**:\n+\n+* Replace any hardcoded `21,000` with `TX_BASE_COST = 8,000`.\n+* Add `GAS_NEW_ACCOUNT` when the *New\u2011account surcharge* conditions hold.\n+\n+Pseudocode (normative):\n+\n+```text\n+function CalculateIntrinsicGas(tx, state_at_start):\n+ gasCost = TX_BASE_COST\n+\n+ // Existing rules for calldata and access lists remain unchanged by this EIP.\n+ gasCost += GasForCalldata(tx.data) // per active calldata pricing EIPs\n+ if tx.has_access_list():\n+ gasCost += GasForAccessList(tx.access_list) // per EIP-2930\n+\n+ if tx.is_create() == false\n+ and tx.value > 0\n+ and is_precompile(tx.to) == false\n+ and is_nonexistent_per_eip161(state_at_start, tx.to):\n+ gasCost += GAS_NEW_ACCOUNT\n+\n+ return gasCost\n+```\n+\n+### Code change example\n+\n+In `transactions.py`:\n \n ```diff\n -TX_BASE_COST = Uint(21000)\n@@ -49,16 +99,22 @@ Base cost of a transaction in gas units. This is the minimum amount of gas requi\n \"\"\"\n ```\n \n-EIP\u20111559/2930/7702 transactions that currently reference the `21,000` base inherit this new constant of `8,000`.\n+Typed transactions defined in EIP\u20111559/EIP\u20112930 (and EIP\u20117702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 8,000`.\n+\n+### Edits and interactions with other EIPs\n+\n+* **EIP\u20112930 (Access List Transactions).** Replace references to a fixed `21,000` intrinsic gas with `TX_BASE_COST`. The intrinsic\u2011gas formula remains otherwise unchanged.\n+* **EIP\u20117702 (Set EOA Code).** Where 7702 inherits intrinsic cost from EIP\u20112930, that value is `TX_BASE_COST` after `FORK_BLOCK`. No other changes.\n+* **EIP\u20117623 (Calldata cost changes).** This EIP does not modify calldata pricing. If EIP\u20117623 (or other calldata\u2011pricing EIPs) is active, `GasForCalldata` uses those rules unchanged.\n \n ### Derivation (non\u2011normative)\n \n-Sender is recovered from signature, so is ecrecover cost. Sender and To should match Access List pricing.\n+Sender is recovered from signature, so is ecrecover cost. Sender and `to` match **access\u2011list pricing for touches**; these are **proxies for work**, not additional charges at the top level:\n \n ```\n ECRECOVER_COST = 3,000\n ACCESS_LIST_ADDRESS_COST = 2,400\n-WARM_ACCOUNT_WRITE_COST = 100\n+WARM_ACCOUNT_ACCESS_COST = 100\n GAS_NEW_ACCOUNT = 25,000\n ```\n \n@@ -66,7 +122,7 @@ GAS_NEW_ACCOUNT = 25,000\n TX_BASE_COST =\n ECRECOVER_COST\n + 2 * ACCESS_LIST_ADDRESS_COST\n- + 2 * WARM_ACCOUNT_WRITE_COST\n+ + 2 * WARM_ACCOUNT_ACCESS_COST\n = 8,000\n ```\n \n@@ -82,47 +138,53 @@ This removes cross\u2011subsidies, aligns charges with resources, and keeps costs e\n \n Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per\u2011entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\n \n-Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\n+Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per\u2011tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution\u2011layer level.\n \n Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n \n ## Backwards Compatibility\n \n-This EIP is backward compatible.\n+This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n \n-Wallet default gas limits and simulations must update.\n+Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must update.\n \n ### Example tx gas cost changes\n \n-* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (-62%)\n+* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n * ETH transfer that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n-* Simple ERC-20 Token transfer (USDT) drops from `63,200` to `50,200` (-20%)\n+* Simple ERC\u201120 token transfer (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n \n ## Test Cases\n \n-While the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it impose no negative externalities, or if such effects are negligible.\n+While the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it imposes no negative externalities, or if such effects are negligible.\n \n Tests should be created with blocks of just ETH transfers and tested on Perfnet across all EL clients to ensure the pricing is correct.\n \n-## Security Considerations\n+Add explicit test vectors:\n \n-As this increases the max tx per block by 162.5% that carries risk. \n+1. `value > 0` to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic `33,000`.\n+2. `value > 0` to a precompile: intrinsic `8,000` (no surcharge).\n+3. `value = 0` to an empty address: intrinsic `8,000` (no creation, no surcharge).\n+4. `CREATE` transaction: unchanged from prior rules.\n+5. EIP\u20117702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access\u2011list costs.\n \n+## Security Considerations\n \n-Block gaslimit | Old tx/bk (21k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s\n---:| --:| --:| --:| --:| --:| --:| --:| --:|\n-45M | 2,143 | 179 | 357 | 714 | 5,625 | 469 | 938 | 1,875\n-60M | 2,857 | 238 | 476 | 952 | 7,500 | 625 | 1,250 | 2,500\n-100M | 4,762 | 397 | 794 | 1,587 | 12,500 | 1,042 | 2,083 | 4,167\n-200M | 9,524 | 794 | 1,587 | 3,175 | 25,000 | 2,083 | 4,167 | 8,333\n-400M | 19,048 | 1,587 | 3,175 | 6,349 | 50,000 | 4,167 | 8,333 | 16,667\n-800M | 38,095 | 3,175 | 6,349 | 12,698 | 100,000 | 8,333 | 16,667 | 33,333\n-1,600M | 76,190 | 6,349 | 12,698 | 25,397 | 200,000 | 16,667 | 33,333 | 66,667\n+As this increases the max tx per block by 162.5% that carries risk.\n \n+| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n+| -------------: | --------------: | --------: | -------: | -------: | -------------: | --------: | -------: | -------: |\n+| 45M | 2,143 | 179 | 357 | 714 | 5,625 | 469 | 938 | 1,875 |\n+| 60M | 2,857 | 238 | 476 | 952 | 7,500 | 625 | 1,250 | 2,500 |\n+| 100M | 4,762 | 397 | 794 | 1,587 | 12,500 | 1,042 | 2,083 | 4,167 |\n+| 200M | 9,524 | 794 | 1,587 | 3,175 | 25,000 | 2,083 | 4,167 | 8,333 |\n+| 400M | 19,048 | 1,587 | 3,175 | 6,349 | 50,000 | 4,167 | 8,333 | 16,667 |\n+| 800M | 38,095 | 3,175 | 6,349 | 12,698 | 100,000 | 8,333 | 16,667 | 33,333 |\n+| 1,600M | 76,190 | 6,349 | 12,698 | 25,397 | 200,000 | 16,667 | 33,333 | 66,667 |\n \n-However this pricing should be the same as performing the component changes inside the a transaction; and it factors in the additional costs from state growth which were not originally in the original transaction base price.\n+However this pricing should be the same as performing the component changes inside the transaction; and it factors in the additional costs from state growth which were not originally in the transaction base price.\n \n-Current gaslimit testing mostly uses a block with a single transaction; so this should should not cause unexpected load compared to what already being tested.\n+Current gaslimit testing mostly uses a block with a single transaction; so this should not cause unexpected load compared to what is already being tested.\n \n ## Copyright\n \n", "order": 9, "subject": "Update EIP-2780: improve wording and clarify", "tokens": [ "value > 0", "GAS_NEW_ACCOUNT = 25,000", "CALL", "FORK_BLOCK", "TX_BASE_COST", "GAS_NEW_ACCOUNT", "CREATE", "to", "21,000", "33,000", "value = 0", "TX_BASE_COST = 8,000", "text\nfunction CalculateIntrinsicGas(tx, state_at_start):\n gasCost = TX_BASE_COST\n\n // Existing rules for calldata and access lists remain unchanged by this EIP.\n gasCost += GasForCalldata(tx.data) // per active calldata pricing EIPs\n if tx.has_access_list():\n gasCost += GasForAccessList(tx.access_list) // per EIP-2930\n\n if tx.is_create() == false\n and tx.value > 0\n and is_precompile(tx.to) == false\n and is_nonexistent_per_eip161(state_at_start, tx.to):\n gasCost += GAS_NEW_ACCOUNT\n\n return gasCost\n", "\n\n### Code change example\n\nIn ", ":\nTyped transactions defined in EIP\u20111559/EIP\u20112930 (and EIP\u20117702 where applicable) that reference the ", " base now inherit ", ".\n\n### Edits and interactions with other EIPs\n\n* **EIP\u20112930 (Access List Transactions).** Replace references to a fixed ", " intrinsic gas with ", ". The intrinsic\u2011gas formula remains otherwise unchanged.\n* **EIP\u20117702 (Set EOA Code).** Where 7702 inherits intrinsic cost from EIP\u20112930, that value is ", " after ", ". No other changes.\n* **EIP\u20117623 (Calldata cost changes).** This EIP does not modify calldata pricing. If EIP\u20117623 (or other calldata\u2011pricing EIPs) is active, ", " uses those rules unchanged.\nSender is recovered from signature, so is ecrecover cost. Sender and ", " match **access\u2011list pricing for touches**; these are **proxies for work**, not additional charges at the top level:\nWARM_ACCOUNT_ACCESS_COST = 100\n + 2 * WARM_ACCOUNT_ACCESS_COST\nBundling multiple transfers into a single contract call avoids repeated ", ", but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per\u2011tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution\u2011layer level.\nThis EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at ", ".\nWallets, RPCs, gas estimators, and any logic that assumes a ", " base must update.\n* Simple ETH transfer to an existing EOA: intrinsic drops from ", " to ", ". (\u221262%)\n* Simple ERC\u201120 token transfer (e.g., USDT) drops from ", ". (\u221220%)\nWhile the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it imposes no negative externalities, or if such effects are negligible.\nAdd explicit test vectors:\n1. ", " to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic ", ".\n2. ", " to a precompile: intrinsic ", " (no surcharge).\n3. ", " to an empty address: intrinsic ", " (no creation, no surcharge).\n4. ", " transaction: unchanged from prior rules.\n5. EIP\u20117702 transaction with and without access list: intrinsic uses " ], "window": [] }, { "blob": "4006787a2673c714d3d1a0d6836453fda836a468", "candidates": [], "commit": "5282c4a15236bdda768a83ec9d4a9bd0ce15b9ff", "constants": [ { "after": [ "3" ], "before": [], "name": "ECRECOVER_COST" }, { "after": [ "6", "6,000", "6000:", "8000:", "Uint(6000" ], "before": [ "8,000", "Uint(8000" ], "name": "TX_BASE_COST" }, { "after": [ "2" ], "before": [], "name": "TX_OVERHEAD_COST" }, { "after": [ "100" ], "before": [], "name": "WARM_ACCOUNT_ACCESS_COST" } ], "date": "2025-09-05T21:24:35Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 2c350efc..4006787a 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,7 +1,7 @@\n ---\n eip: 2780\n title: Reduce intrinsic transaction gas\n-description: Reduce intrinsic transaction gas from 21k to 8k and charge 25k when a value transfer creates a new account\n+description: Reduce intrinsic transaction gas and charge 25k when a value transfer creates a new account\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n@@ -13,7 +13,7 @@ requires: 1559, 2718, 2929, 2930\n \n ## Abstract\n \n-Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `8,000`.\n+Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `6,000`.\n \n If a non-create transaction has `value > 0` and targets a **non-existent** account add `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth.\n \n@@ -23,7 +23,7 @@ Calldata and access\u2011list metering are unchanged.\n \n ## Motivation\n \n-The current `21,000` intrinsic gas is a legacy constant. It no longer matches the work all transactions must perform under warm/cold accounting. When decomposed into signature recovery, warming `sender` and `to`, and two warm writes for nonce and balance, the common path totals `8,000` gas.\n+The current `21,000` intrinsic gas is a legacy constant. It no longer matches the work all transactions must perform under warm/cold accounting. When decomposed into signature recovery, warming `sender` and `to`, and two warm writes for nonce and balance, the common path totals `6,000` gas.\n \n Top\u2011level value transfers that create new accounts do not pay an explicit new\u2011account surcharge today, while `CALL` does. This underprices state growth. Charging `GAS_NEW_ACCOUNT = 25,000` on value transfers that create an account aligns entry points and internalizes state growth.\n \n@@ -41,7 +41,7 @@ After `FORK_BLOCK`, set the following parameters and rules.\n \n | Name | Value | Description |\n | ----------------- | ------ | ------------------------------------------------------------------------- |\n-| `TX_BASE_COST` | 8,000 | Base cost of any transaction |\n+| `TX_BASE_COST` | 6,000 | Base cost of any transaction |\n | `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a **value\u2011transferring** transaction creates a new account |\n \n ### New\u2011account surcharge\n@@ -53,7 +53,7 @@ Apply `GAS_NEW_ACCOUNT` when **all** are true:\n 3. `to` is not a precompile.\n 4. `to` is **non\u2011existent** per [EIP\u2011161](./eip-161.md) emptiness at the start of transaction execution.\n \n-If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account\u2011creation cost via EVM `CALL` or top\u2011level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `33,000` (+12,000 over current).\n+If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account\u2011creation cost via EVM `CALL` or top\u2011level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `31,000` (+10,000 over current).\n \n Notes:\n \n@@ -64,7 +64,7 @@ Notes:\n \n Clients must compute intrinsic gas exactly as today for each typed transaction **except**:\n \n-* Replace any hardcoded `21,000` with `TX_BASE_COST = 8,000`.\n+* Replace any hardcoded `21,000` with `TX_BASE_COST = 6,000`.\n * Add `GAS_NEW_ACCOUNT` when the *New\u2011account surcharge* conditions hold.\n \n Pseudocode (normative):\n@@ -93,13 +93,10 @@ In `transactions.py`:\n \n ```diff\n -TX_BASE_COST = Uint(21000)\n-+TX_BASE_COST = Uint(8000)\n-\"\"\"\n-Base cost of a transaction in gas units. This is the minimum amount of gas required to execute a transaction.\n-\"\"\"\n++TX_BASE_COST = Uint(6000)\n ```\n \n-Typed transactions defined in EIP\u20111559/EIP\u20112930 (and EIP\u20117702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 8,000`.\n+Typed transactions defined in EIP\u20111559/EIP\u20112930 (and EIP\u20117702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 6,000`.\n \n ### Edits and interactions with other EIPs\n \n@@ -113,11 +110,31 @@ Sender is recovered from signature, so is ecrecover cost. Sender and `to` match\n \n ```\n ECRECOVER_COST = 3,000\n-ACCESS_LIST_ADDRESS_COST = 2,400\n WARM_ACCOUNT_ACCESS_COST = 100\n+TX_OVERHEAD_COST = 2,800\n GAS_NEW_ACCOUNT = 25,000\n ```\n \n+`TX_OVERHEAD_COST` bundles fixed per\u2011transaction work that is not separately metered by EVM opcodes: envelope RLP decode and basic validity checks (nonce, gas, chain ID), fee accounting, two warm account updates to `sender.nonce` and `sender.balance`, and minimal trie/header reads and writes for `sender` and `to`. It also includes a conservative margin to cover implementation overhead across EL clients.\n+\n+```\n+TX_BASE_COST =\n+ ECRECOVER_COST\n+ + 2 * WARM_ACCOUNT_ACCESS_COST\n+ + TX_OVERHEAD_COST\n+ = 6,000\n+```\n+\n+### Alternative approach\n+\n+An alternative derivation keeps `TX_BASE_COST = 8,000` by using conservative access\u2011list proxies for account touches:\n+\n+```\n+ECRECOVER_COST = 3,000\n+ACCESS_LIST_ADDRESS_COST = 2,400\n+WARM_ACCOUNT_ACCESS_COST = 100\n+```\n+\n ```\n TX_BASE_COST =\n ECRECOVER_COST\n@@ -126,9 +143,11 @@ TX_BASE_COST =\n = 8,000\n ```\n \n+Here `ACCESS_LIST_ADDRESS_COST` stands in for the work of touching `sender` and `to` at the top level, and `WARM_ACCOUNT_ACCESS_COST` reflects warm access bookkeeping. These values are proxies used only for derivation; they are not additional charges applied to the transaction.\n+\n ## Rationale\n \n-Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and two warm writes. That sums to `8,000` gas. Anything not universal should be metered separately.\n+Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and two warm writes. That sums to `6,000` gas. Anything not universal should be metered separately.\n \n Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It only updates warm account nonce and balance, so it receives the discount.\n \n@@ -148,11 +167,60 @@ This EIP is **not** backward compatible. It is a consensus gas repricing that mu\n \n Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must update.\n \n-### Example tx gas cost changes\n+### Effects on transactions per block\n+\n+Median ETH transfer is 110 bytes of data, so at [EIP-7934](./eip-7934.md)'s 8MiB uncompressed execution block cap:\n+\n+That creates a effective max tx count by size of: `8,388,608 / 110 \u2248 76,260 tx`\n+\n+This then leads to upper limits on gaslimit for raw tx count. Although more complex smart contracts can make use of a higher block gaslimit. However the market dynamics become more complicated when approaching the block cap and there will be distortions in gas pricing; when other approaches would need to be considered\n+\n+e.g. \n+\n+* Raising block size\n+* [EIP-7782](./eip-7782.md): Reduce Block Latency\n+* [EIP-7999](./eip-7999.md): Unified Multidimensional Fee Market\n+\n+Below TPS are additionally given for [EIP-7782](./eip-7782.md) at 6sec and 3sec blocks; as it is an easily considered effect.\n+\n+#### Transaction base fee 6000\n+\n+Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above ~457.6\u202fM gas, the 8\u202fMiB size cap dominates.\n+\n+| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n+| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n+| 45M | 2,143 | 179 | 7,500 | 625 | 1,250 | 2,500 |\n+| 60M | 2,857 | 238 | 10,000 | 833 | 1,667 | 3,333 |\n+| 100M | 4,762 | 397 | 16,667 | 1,389 | 2,778 | 5,556 |\n+| 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 |\n+| 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 |\n+\n+* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n+* ETH transfer that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n+* Simple ERC\u201120 token transfer (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n+* Average Uniswap v3 Swap drops from `184,523` to `169,523`. (\u22128%)\n+* Average Uniswap v3 Add Liquidity drops from `216,912` to `201912`. (\u22127%)\n+\n+#### Transaction base fee 8000\n+\n+Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above ~610.1M gas, the 8\u202fMiB size cap dominates.\n+\n+\n+| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n+| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n+| 45M | 2,143 | 179 | 5,625 | 469 | 938 | 1,875 |\n+| 60M | 2,857 | 238 | 7,500 | 625 | 1,250 | 2,500 |\n+| 100M | 4,762 | 397 | 12,500 | 1,042 | 2,083 | 4,167 |\n+| 200M | 9,524 | 794 | 25,000 | 2,083 | 4,167 | 8,333 |\n+| 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 |\n+| 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 |\n+\n \n * Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n * ETH transfer that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n * Simple ERC\u201120 token transfer (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n+* Average Uniswap v3 Swap drop from `184,523` to `171,523`. (-7%)\n+* Average Uniswap v3 Add Liquidity drop from `216,912` to `203,912`. (-6%)\n \n ## Test Cases\n \n@@ -162,25 +230,15 @@ Tests should be created with blocks of just ETH transfers and tested on Perfnet\n \n Add explicit test vectors:\n \n-1. `value > 0` to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic `33,000`.\n-2. `value > 0` to a precompile: intrinsic `8,000` (no surcharge).\n-3. `value = 0` to an empty address: intrinsic `8,000` (no creation, no surcharge).\n+1. `value > 0` to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic `31,000`.\n+2. `value > 0` to a precompile: intrinsic `6,000` (no surcharge).\n+3. `value = 0` to an empty address: intrinsic `6,000` (no creation, no surcharge).\n 4. `CREATE` transaction: unchanged from prior rules.\n 5. EIP\u20117702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access\u2011list costs.\n \n ## Security Considerations\n \n-As this increases the max tx per block by 162.5% that carries risk.\n-\n-| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n-| -------------: | --------------: | --------: | -------: | -------: | -------------: | --------: | -------: | -------: |\n-| 45M | 2,143 | 179 | 357 | 714 | 5,625 | 469 | 938 | 1,875 |\n-| 60M | 2,857 | 238 | 476 | 952 | 7,500 | 625 | 1,250 | 2,500 |\n-| 100M | 4,762 | 397 | 794 | 1,587 | 12,500 | 1,042 | 2,083 | 4,167 |\n-| 200M | 9,524 | 794 | 1,587 | 3,175 | 25,000 | 2,083 | 4,167 | 8,333 |\n-| 400M | 19,048 | 1,587 | 3,175 | 6,349 | 50,000 | 4,167 | 8,333 | 16,667 |\n-| 800M | 38,095 | 3,175 | 6,349 | 12,698 | 100,000 | 8,333 | 16,667 | 33,333 |\n-| 1,600M | 76,190 | 6,349 | 12,698 | 25,397 | 200,000 | 16,667 | 33,333 | 66,667 |\n+As this significantly increases the max tx per block this carries risk.\n \n However this pricing should be the same as performing the component changes inside the transaction; and it factors in the additional costs from state growth which were not originally in the transaction base price.\n \n", "order": 10, "subject": "Update EIP-2780: Change recommendation to 6k", "tokens": [ "TX_BASE_COST", "21,000", "6,000", "sender", "to", "GAS_NEW_ACCOUNT", "CALL", "31,000", "TX_BASE_COST = 6,000", "TX_OVERHEAD_COST", "sender.nonce", "sender.balance", "\nTX_BASE_COST =\n ECRECOVER_COST\n + 2 * WARM_ACCOUNT_ACCESS_COST\n + TX_OVERHEAD_COST\n = 6,000\n", "\n\n### Alternative approach\n\nAn alternative derivation keeps ", " by using conservative access\u2011list proxies for account touches:\n\n", "\nECRECOVER_COST = 3,000\nACCESS_LIST_ADDRESS_COST = 2,400\nWARM_ACCOUNT_ACCESS_COST = 100\n", "\n\nHere ", " stands in for the work of touching ", " and ", " at the top level, and ", " reflects warm access bookkeeping. These values are proxies used only for derivation; they are not additional charges applied to the transaction.\n\nPrice only what every transaction always does: ECDSA recovery, warming ", ", and two warm writes. That sums to ", " gas. Anything not universal should be metered separately.\n### Effects on transactions per block\n\nMedian ETH transfer is 110 bytes of data, so at [EIP-7934](./eip-7934.md)'s 8MiB uncompressed execution block cap:\n\nThat creates a effective max tx count by size of: ", "\n\nThis then leads to upper limits on gaslimit for raw tx count. Although more complex smart contracts can make use of a higher block gaslimit. However the market dynamics become more complicated when approaching the block cap and there will be distortions in gas pricing; when other approaches would need to be considered\n\ne.g. \n\n* Raising block size\n* [EIP-7782](./eip-7782.md): Reduce Block Latency\n* [EIP-7999](./eip-7999.md): Unified Multidimensional Fee Market\n\nBelow TPS are additionally given for [EIP-7782](./eip-7782.md) at 6sec and 3sec blocks; as it is an easily considered effect.\n\n#### Transaction base fee 6000\n\nBinding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above ~457.6\u202fM gas, the 8\u202fMiB size cap dominates.\n\n| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n| 45M | 2,143 | 179 | 7,500 | 625 | 1,250 | 2,500 |\n| 60M | 2,857 | 238 | 10,000 | 833 | 1,667 | 3,333 |\n| 100M | 4,762 | 397 | 16,667 | 1,389 | 2,778 | 5,556 |\n| 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 |\n| 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 |\n\n* Simple ETH transfer to an existing EOA: intrinsic drops from ", " to ", ". (\u221271%)\n* ETH transfer that creates a new EOA: intrinsic becomes ", " = ", ". (+48%)\n* Simple ERC\u201120 token transfer (e.g., USDT) drops from ", ". (\u221224%)\n* Average Uniswap v3 Swap drops from ", ". (\u22128%)\n* Average Uniswap v3 Add Liquidity drops from ", ". (\u22127%)\n\n#### Transaction base fee 8000\n\nBinding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above ~610.1M gas, the 8\u202fMiB size cap dominates.\n\n\n| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n| 45M | 2,143 | 179 | 5,625 | 469 | 938 | 1,875 |\n| 60M | 2,857 | 238 | 7,500 | 625 | 1,250 | 2,500 |\n| 100M | 4,762 | 397 | 12,500 | 1,042 | 2,083 | 4,167 |\n| 200M | 9,524 | 794 | 25,000 | 2,083 | 4,167 | 8,333 |\n| 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 |\n| 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 |\n\n* Average Uniswap v3 Swap drop from ", ". (-7%)\n* Average Uniswap v3 Add Liquidity drop from ", ". (-6%)\n1. ", " to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic ", ".\n2. ", " to a precompile: intrinsic ", " (no surcharge).\n3. ", " to an empty address: intrinsic " ], "window": [] }, { "blob": "ddde38005ad5819b927cf96877cd46a9caca2569", "candidates": [], "commit": "cccf3fd8b246cbbcf489bb29ff4da1a991265885", "constants": [], "date": "2025-09-05T22:20:15Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 4006787a..ddde3800 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -187,13 +187,13 @@ Below TPS are additionally given for [EIP-7782](./eip-7782.md) at 6sec and 3sec\n \n Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above ~457.6\u202fM gas, the 8\u202fMiB size cap dominates.\n \n-| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n-| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n-| 45M | 2,143 | 179 | 7,500 | 625 | 1,250 | 2,500 |\n-| 60M | 2,857 | 238 | 10,000 | 833 | 1,667 | 3,333 |\n-| 100M | 4,762 | 397 | 16,667 | 1,389 | 2,778 | 5,556 |\n-| 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 |\n-| 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 |\n+| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n+| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: | ---------: |\n+| 45M | 2,143 | 179 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n+| 60M | 2,857 | 238 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n+| 100M | 4,762 | 397 | 16,667 | 1,389 | 2,778 | 5,556 | 11,111 |\n+| 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 | 22,222 |\n+| 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n \n * Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n * ETH transfer that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n@@ -205,16 +205,14 @@ Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above\n \n Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above ~610.1M gas, the 8\u202fMiB size cap dominates.\n \n-\n-| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s |\n-| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: |\n-| 45M | 2,143 | 179 | 5,625 | 469 | 938 | 1,875 |\n-| 60M | 2,857 | 238 | 7,500 | 625 | 1,250 | 2,500 |\n-| 100M | 4,762 | 397 | 12,500 | 1,042 | 2,083 | 4,167 |\n-| 200M | 9,524 | 794 | 25,000 | 2,083 | 4,167 | 8,333 |\n-| 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 |\n-| 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 |\n-\n+| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n+| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: | ---------: |\n+| 45M | 2,143 | 179 | 5,625 | 469 | 938 | 1,875 | 3,750 |\n+| 60M | 2,857 | 238 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n+| 100M | 4,762 | 397 | 12,500 | 1,042 | 2,083 | 4,167 | 8,333 |\n+| 200M | 9,524 | 794 | 25,000 | 2,083 | 4,167 | 8,333 | 16,667 |\n+| 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 | 33,333 |\n+| 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n \n * Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n * ETH transfer that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n@@ -222,6 +220,18 @@ Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above\n * Average Uniswap v3 Swap drop from `184,523` to `171,523`. (-7%)\n * Average Uniswap v3 Add Liquidity drop from `216,912` to `203,912`. (-6%)\n \n+#### Reference MGas/s for gaslimit / slot time\n+\n+| Block gaslimit | MGas/s @ 12s | MGas/s @ 6s | MGas/s @ 3s | MGas/s @ 1.5s |\n+| -------------: | -----------: | ----------: | ----------: | ------------: |\n+| 45M | 3.75 | 7.50 | 15.00 | 30.00 |\n+| 60M | 5.00 | 10.00 | 20.00 | 40.00 |\n+| 100M | 8.33 | 16.67 | 33.33 | 66.67 |\n+| 200M | 16.67 | 33.33 | 66.67 | 133.33 |\n+| 400M | 33.33 | 66.67 | 133.33 | 266.67 |\n+| 450M | 37.50 | 75.00 | 150.00 | 300.00 |\n+| 600M | 50.00 | 100.00 | 200.00 | 400.00 |\n+\n ## Test Cases\n \n While the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it imposes no negative externalities, or if such effects are negligible.\n", "order": 11, "subject": "Update EIP-2780: Add reference table", "tokens": [], "window": [] }, { "blob": "5f4daeca54e3847216081588bf7efc099d016ddb", "candidates": [], "commit": "886c818d8b5d71a0655385fe97d1765091bfd910", "constants": [], "date": "2025-09-06T17:56:55Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex ddde3800..5f4daeca 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -195,11 +195,12 @@ Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above\n | 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 | 22,222 |\n | 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n \n-* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n-* ETH transfer that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n-* Simple ERC\u201120 token transfer (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n-* Average Uniswap v3 Swap drops from `184,523` to `169,523`. (\u22128%)\n-* Average Uniswap v3 Add Liquidity drops from `216,912` to `201912`. (\u22127%)\n+* Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n+* ETH transfer tx that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n+* Simple ERC\u201120 token transfer tx (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n+* Solady ERC-20 token transfer tx drops from `33,400` to `18,400`. (-45%)\n+* Average Uniswap v3 Swap tx drops from `184,523` to `169,523`. (\u22128%)\n+* Average Uniswap v3 Add Liquidity tx drops from `216,912` to `201912`. (\u22127%)\n \n #### Transaction base fee 8000\n \n@@ -214,11 +215,12 @@ Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above\n | 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 | 33,333 |\n | 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n \n-* Simple ETH transfer to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n-* ETH transfer that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n-* Simple ERC\u201120 token transfer (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n-* Average Uniswap v3 Swap drop from `184,523` to `171,523`. (-7%)\n-* Average Uniswap v3 Add Liquidity drop from `216,912` to `203,912`. (-6%)\n+* Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n+* ETH transfer tx that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n+* Simple ERC\u201120 token transfer tx (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n+* Solady ERC-20 token transfer tx drops from `33,400` to `20,400`. (-39%)\n+* Average Uniswap v3 Swap tx drops from `184,523` to `171,523`. (-7%)\n+* Average Uniswap v3 Add Liquidity tx drops from `216,912` to `203,912`. (-6%)\n \n #### Reference MGas/s for gaslimit / slot time\n \n", "order": 12, "subject": "Update EIP-2780: Add solady tx", "tokens": [ "21,000", "6,000", "6,000 + 25,000", "31,000", "63,200", "48,200", "33,400", "18,400", "184,523", "169,523", "216,912", "201912", "8,000", "8,000 + 25,000", "33,000", "50,200", "20,400", "171,523", "203,912" ], "window": [] }, { "blob": "73cda9f2fc84e1498b5fc263b3d98a8f44340acf", "candidates": [], "commit": "5f9c17f570e0ff8c971598fa8071b1a836eec7ee", "constants": [], "date": "2025-09-07T00:26:11Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 5f4daeca..73cda9f2 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -161,6 +161,16 @@ Bundling multiple transfers into a single contract call avoids repeated `TX_BASE\n \n Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n \n+### Why not charge full tx data as calldata?\n+\n+* **Intrinsic coupling to signed fields.** Pricing full\u2011transaction bytes would make intrinsic gas depend on `gas_limit` and variable\u2011length signature elements (`yParity`,`r`,`s` under RLP\u2019s no\u2011leading\u2011zero rule), creating fixed\u2011point estimation and incentives for signature\u2011length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n+\n+* **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens EIP\u20112718 type neutrality and future formats such as SSZ. Call data is treated as opaque bytes so doesn't have this encoding coupling.\n+\n+* **Policy targeting and market floor.** Calldata floors ([EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control\u2011plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding\u2011agnostic intrinsic base keeps the minimum inclusion price strongly coupled to the basefee market. While also not under pricing to open a DoS vector.\n+\n+* **Native settlement and unit\u2011of\u2011account** Even though all transactions receive the same absolute gas reduction, it dispropritionatly effects vanilla ETH transfers more. With an ETH transfer at ~6,000 gas versus a vanilla ERC\u201120/LST transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract\u2011based money (which carries smart contract risk, operator risk, governance risk and potential censorship risks via operator).\n+\n ## Backwards Compatibility\n \n This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n", "order": 13, "subject": "Update EIP-2780: Add rational to not price as calldata", "tokens": [ "gas_limit", "yParity", "r", "s", "tx.data", "TX_BASE_COST" ], "window": [] }, { "blob": "0555c7f09db80e16fffd8967a72a484a240cb745", "candidates": [], "commit": "5aa04ab52d4af0137d666df997d867a10bae2e51", "constants": [], "date": "2025-09-07T01:19:32Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 73cda9f2..0555c7f0 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -169,7 +169,7 @@ Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases th\n \n * **Policy targeting and market floor.** Calldata floors ([EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control\u2011plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding\u2011agnostic intrinsic base keeps the minimum inclusion price strongly coupled to the basefee market. While also not under pricing to open a DoS vector.\n \n-* **Native settlement and unit\u2011of\u2011account** Even though all transactions receive the same absolute gas reduction, it dispropritionatly effects vanilla ETH transfers more. With an ETH transfer at ~6,000 gas versus a vanilla ERC\u201120/LST transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract\u2011based money (which carries smart contract risk, operator risk, governance risk and potential censorship risks via operator).\n+* **Native settlement and unit\u2011of\u2011account** Even though all transactions receive the same absolute gas reduction, it propritionatly improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas versus a permissioned ERC\u201120/LST/stable coin transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract\u2011based money (which carries smart contract risk, operator risk, governance risk and censorship risks via operator).\n \n ## Backwards Compatibility\n \n", "order": 14, "subject": "Update EIP-2780: Rephrase", "tokens": [], "window": [] }, { "blob": "9df3401aaa0b4e27270f4eeb749d5202760dff9a", "candidates": [], "commit": "8cb05251407e963d4b27e60151e30a0511ded911", "constants": [], "date": "2025-09-07T02:39:16Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 0555c7f0..9df3401a 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -179,15 +179,13 @@ Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must u\n \n ### Effects on transactions per block\n \n-Median ETH transfer is 110 bytes of data, so at [EIP-7934](./eip-7934.md)'s 8MiB uncompressed execution block cap:\n+Median ETH transfer is 110 bytes of data, so at [EIP-7934](./eip-7934.md)'s 8MiB uncompressed execution block cap creating an effective max tx count by size of: `8,388,608 / 110 \u2248 76,260 tx`\n \n-That creates a effective max tx count by size of: `8,388,608 / 110 \u2248 76,260 tx`\n-\n-This then leads to upper limits on gaslimit for raw tx count. Although more complex smart contracts can make use of a higher block gaslimit. However the market dynamics become more complicated when approaching the block cap and there will be distortions in gas pricing; when other approaches would need to be considered\n+This leads to upper limits on gaslimit for raw tx count. Although more complex smart contracts can make use of a higher block gaslimit. However the market dynamics become more complicated when approaching the block cap and there will be distortions in gas pricing; when other approaches would need to be considered\n \n e.g. \n \n-* Raising block size\n+* Raising network max block size (currently 10MiB both in EL devp2p and CL specs)\n * [EIP-7782](./eip-7782.md): Reduce Block Latency\n * [EIP-7999](./eip-7999.md): Unified Multidimensional Fee Market\n \n", "order": 15, "subject": "Update EIP-2780: Formatting", "tokens": [ "8,388,608 / 110 \u2248 76,260 tx" ], "window": [] }, { "blob": "425ea0be293e4f9f098cc5c1454fbbe64023c1da", "candidates": [], "commit": "f4be44843d2f6ef2cd55cf01437459fdbea14c61", "constants": [], "date": "2025-09-07T03:45:38Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 9df3401a..425ea0be 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -171,6 +171,8 @@ Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases th\n \n * **Native settlement and unit\u2011of\u2011account** Even though all transactions receive the same absolute gas reduction, it propritionatly improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas versus a permissioned ERC\u201120/LST/stable coin transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract\u2011based money (which carries smart contract risk, operator risk, governance risk and censorship risks via operator).\n \n+![Figure 1](../assets/eip-2780/1.png)\n+\n ## Backwards Compatibility\n \n This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n", "order": 16, "subject": "Update EIP-2780: Add graph", "tokens": [], "window": [] }, { "blob": "13fdc6d374b14be608c78f54d02d3b042c49005a", "candidates": [], "commit": "a2dfc8f9308d1dfe3556492f7fbc76de88919f4d", "constants": [], "date": "2025-09-07T19:51:42Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 425ea0be..13fdc6d3 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -19,19 +19,34 @@ If a non-create transaction has `value > 0` and targets a **non-existent** accou\n \n This additional `GAS_NEW_ACCOUNT` cost is not applied in the case of a `CREATE` transaction as it is already applied in its cost structure.\n \n-Calldata and access\u2011list metering are unchanged.\n+Calldata and access-list metering are unchanged.\n \n ## Motivation\n \n The current `21,000` intrinsic gas is a legacy constant. It no longer matches the work all transactions must perform under warm/cold accounting. When decomposed into signature recovery, warming `sender` and `to`, and two warm writes for nonce and balance, the common path totals `6,000` gas.\n \n-Top\u2011level value transfers that create new accounts do not pay an explicit new\u2011account surcharge today, while `CALL` does. This underprices state growth. Charging `GAS_NEW_ACCOUNT = 25,000` on value transfers that create an account aligns entry points and internalizes state growth.\n+Top-level value transfers that create new accounts do not pay an explicit new-account surcharge today, while `CALL` does. This underprices state growth. Charging `GAS_NEW_ACCOUNT = 25,000` on value transfers that create an account aligns entry points and internalizes state growth.\n \n A high fixed base penalizes small ETH payments and encourages batching to dodge the base rather than for real efficiency. Lowering the base removes that distortion while leaving calldata and storage prices unchanged.\n \n-The result is cheaper ETH transfers without subsidies: state growth costs the same whether reached by `CALL` or by a top\u2011level transfer. Access\u2011list and 1559 mechanics are unchanged.\n+The result is cheaper ETH transfers without subsidies: state growth costs the same whether reached by `CALL` or by a top-level transfer. Access-list and 1559 mechanics are unchanged.\n \n-We intentionally do **not** charge per\u2011byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty tx.data, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n+We intentionally do **not** charge per-byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty tx.data, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n+\n+### Equivalent gas-limit increase\n+\n+Lowering `TX_BASE_COST` from `21,000` to `6,000` removes `15,000` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n+\n+* Avg gas/tx: `163Bn / 1.7M \u2248 95,882 gas`.\n+* New avg: `95,882 \u2212 15,000 \u2248 80,882 gas`.\n+* Throughput at fixed gaslimit: `95,882 / 80,882 \u2248 1.185` (+18.5%).\n+* Daily tx at same gas: `1.7M \u00d7 1.185 \u2248 2.015M` (+315k/day).\n+\n+Perfnet ETH transfer tests show EL clients handle `>300\u202fMGas/s` for pure ETH transfers today; expressed under a 6k base this is `300 \u00d7 (6/21) \u2248 85.7\u202fMGas/s`, i.e., `\u22481,029\u202fMGas` per 12\u202fs slot.\n+\n+This indicates the protocol-level processing headroom already exists; and that this portion of the tx is significantly overcharged, so isn't extra engineering required to improve preformance to support this change.\n+\n+Net effect equals raising a 45\u202fM gas limit to `\u224853.3\u202fM` at unchanged calldata and access-list metering. This directly advances Scaling L1.\n \n ## Specification\n \n@@ -42,22 +57,22 @@ After `FORK_BLOCK`, set the following parameters and rules.\n | Name | Value | Description |\n | ----------------- | ------ | ------------------------------------------------------------------------- |\n | `TX_BASE_COST` | 6,000 | Base cost of any transaction |\n-| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a **value\u2011transferring** transaction creates a new account |\n+| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a **value-transferring** transaction creates a new account |\n \n-### New\u2011account surcharge\n+### New-account surcharge\n \n Apply `GAS_NEW_ACCOUNT` when **all** are true:\n \n 1. The transaction is not a `CREATE` transaction.\n 2. `value > 0`.\n 3. `to` is not a precompile.\n-4. `to` is **non\u2011existent** per [EIP\u2011161](./eip-161.md) emptiness at the start of transaction execution.\n+4. `to` is **non-existent** per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n \n-If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account\u2011creation cost via EVM `CALL` or top\u2011level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `31,000` (+10,000 over current).\n+If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account-creation cost via EVM `CALL` or top-level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `31,000` (+10,000 over current).\n \n Notes:\n \n-* If `value = 0` and `to` is empty per EIP\u2011161, no account is created and no surcharge applies.\n+* If `value = 0` and `to` is empty per EIP-161, no account is created and no surcharge applies.\n * `CREATE` transactions are unchanged; their cost already includes account creation.\n \n ### Intrinsic gas computation\n@@ -65,7 +80,7 @@ Notes:\n Clients must compute intrinsic gas exactly as today for each typed transaction **except**:\n \n * Replace any hardcoded `21,000` with `TX_BASE_COST = 6,000`.\n-* Add `GAS_NEW_ACCOUNT` when the *New\u2011account surcharge* conditions hold.\n+* Add `GAS_NEW_ACCOUNT` when the *New-account surcharge* conditions hold.\n \n Pseudocode (normative):\n \n@@ -96,17 +111,17 @@ In `transactions.py`:\n +TX_BASE_COST = Uint(6000)\n ```\n \n-Typed transactions defined in EIP\u20111559/EIP\u20112930 (and EIP\u20117702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 6,000`.\n+Typed transactions defined in EIP-1559/EIP-2930 (and EIP-7702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 6,000`.\n \n ### Edits and interactions with other EIPs\n \n-* **EIP\u20112930 (Access List Transactions).** Replace references to a fixed `21,000` intrinsic gas with `TX_BASE_COST`. The intrinsic\u2011gas formula remains otherwise unchanged.\n-* **EIP\u20117702 (Set EOA Code).** Where 7702 inherits intrinsic cost from EIP\u20112930, that value is `TX_BASE_COST` after `FORK_BLOCK`. No other changes.\n-* **EIP\u20117623 (Calldata cost changes).** This EIP does not modify calldata pricing. If EIP\u20117623 (or other calldata\u2011pricing EIPs) is active, `GasForCalldata` uses those rules unchanged.\n+* **EIP-2930 (Access List Transactions).** Replace references to a fixed `21,000` intrinsic gas with `TX_BASE_COST`. The intrinsic-gas formula remains otherwise unchanged.\n+* **EIP-7702 (Set EOA Code).** Where 7702 inherits intrinsic cost from EIP-2930, that value is `TX_BASE_COST` after `FORK_BLOCK`. No other changes.\n+* **EIP-7623 (Calldata cost changes).** This EIP does not modify calldata pricing. If EIP-7623 (or other calldata-pricing EIPs) is active, `GasForCalldata` uses those rules unchanged.\n \n-### Derivation (non\u2011normative)\n+### Derivation (non-normative)\n \n-Sender is recovered from signature, so is ecrecover cost. Sender and `to` match **access\u2011list pricing for touches**; these are **proxies for work**, not additional charges at the top level:\n+Sender is recovered from signature, so is ecrecover cost. Sender and `to` match **access-list pricing for touches**; these are **proxies for work**, not additional charges at the top level:\n \n ```\n ECRECOVER_COST = 3,000\n@@ -115,7 +130,7 @@ TX_OVERHEAD_COST = 2,800\n GAS_NEW_ACCOUNT = 25,000\n ```\n \n-`TX_OVERHEAD_COST` bundles fixed per\u2011transaction work that is not separately metered by EVM opcodes: envelope RLP decode and basic validity checks (nonce, gas, chain ID), fee accounting, two warm account updates to `sender.nonce` and `sender.balance`, and minimal trie/header reads and writes for `sender` and `to`. It also includes a conservative margin to cover implementation overhead across EL clients.\n+`TX_OVERHEAD_COST` bundles fixed per-transaction work that is not separately metered by EVM opcodes: envelope RLP decode and basic validity checks (nonce, gas, chain ID), fee accounting, two warm account updates to `sender.nonce` and `sender.balance`, and minimal trie/header reads and writes for `sender` and `to`. It also includes a conservative margin to cover implementation overhead across EL clients.\n \n ```\n TX_BASE_COST =\n@@ -127,7 +142,7 @@ TX_BASE_COST =\n \n ### Alternative approach\n \n-An alternative derivation keeps `TX_BASE_COST = 8,000` by using conservative access\u2011list proxies for account touches:\n+An alternative derivation keeps `TX_BASE_COST = 8,000` by using conservative access-list proxies for account touches:\n \n ```\n ECRECOVER_COST = 3,000\n@@ -151,25 +166,25 @@ Price only what every transaction always does: ECDSA recovery, warming `sender`\n \n Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It only updates warm account nonce and balance, so it receives the discount.\n \n-When a value transfer creates a previously empty account, charge `GAS_NEW_ACCOUNT = 25,000`, identical to `CALL` account\u2011creation pricing. `CREATE` is unchanged because its cost already includes account creation. Access\u2011list pricing is unchanged.\n+When a value transfer creates a previously empty account, charge `GAS_NEW_ACCOUNT = 25,000`, identical to `CALL` account-creation pricing. `CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n \n-This removes cross\u2011subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n+This removes cross-subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n \n-Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per\u2011entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\n+Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per-entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\n \n-Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per\u2011tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution\u2011layer level.\n+Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\n \n Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n \n ### Why not charge full tx data as calldata?\n \n-* **Intrinsic coupling to signed fields.** Pricing full\u2011transaction bytes would make intrinsic gas depend on `gas_limit` and variable\u2011length signature elements (`yParity`,`r`,`s` under RLP\u2019s no\u2011leading\u2011zero rule), creating fixed\u2011point estimation and incentives for signature\u2011length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n+* **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements (`yParity`,`r`,`s` under RLP\u2019s no-leading-zero rule), creating fixed-point estimation and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n \n-* **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens EIP\u20112718 type neutrality and future formats such as SSZ. Call data is treated as opaque bytes so doesn't have this encoding coupling.\n+* **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens EIP-2718 type neutrality and future formats such as SSZ. Call data is treated as opaque bytes so doesn't have this encoding coupling.\n \n-* **Policy targeting and market floor.** Calldata floors ([EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control\u2011plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding\u2011agnostic intrinsic base keeps the minimum inclusion price strongly coupled to the basefee market. While also not under pricing to open a DoS vector.\n+* **Policy targeting and market floor.** Calldata floors ([EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control-plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding-agnostic intrinsic base keeps the minimum inclusion price strongly coupled to the basefee market. While also not under pricing to open a DoS vector.\n \n-* **Native settlement and unit\u2011of\u2011account** Even though all transactions receive the same absolute gas reduction, it propritionatly improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas versus a permissioned ERC\u201120/LST/stable coin transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract\u2011based money (which carries smart contract risk, operator risk, governance risk and censorship risks via operator).\n+* **Native settlement and unit-of-account** Even though all transactions receive the same absolute gas reduction, it propritionatly improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas versus a permissioned ERC-20/LST/stable coin transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via operator).\n \n ![Figure 1](../assets/eip-2780/1.png)\n \n@@ -207,7 +222,7 @@ Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above\n \n * Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n * ETH transfer tx that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n-* Simple ERC\u201120 token transfer tx (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n+* Simple ERC-20 token transfer tx (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n * Solady ERC-20 token transfer tx drops from `33,400` to `18,400`. (-45%)\n * Average Uniswap v3 Swap tx drops from `184,523` to `169,523`. (\u22128%)\n * Average Uniswap v3 Add Liquidity tx drops from `216,912` to `201912`. (\u22127%)\n@@ -227,7 +242,7 @@ Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above\n \n * Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n * ETH transfer tx that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n-* Simple ERC\u201120 token transfer tx (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n+* Simple ERC-20 token transfer tx (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n * Solady ERC-20 token transfer tx drops from `33,400` to `20,400`. (-39%)\n * Average Uniswap v3 Swap tx drops from `184,523` to `171,523`. (-7%)\n * Average Uniswap v3 Add Liquidity tx drops from `216,912` to `203,912`. (-6%)\n@@ -252,11 +267,12 @@ Tests should be created with blocks of just ETH transfers and tested on Perfnet\n \n Add explicit test vectors:\n \n-1. `value > 0` to an empty EOA (non\u2011existent per EIP\u2011161): intrinsic `31,000`.\n+1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `31,000`.\n 2. `value > 0` to a precompile: intrinsic `6,000` (no surcharge).\n 3. `value = 0` to an empty address: intrinsic `6,000` (no creation, no surcharge).\n 4. `CREATE` transaction: unchanged from prior rules.\n-5. EIP\u20117702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access\u2011list costs.\n+5. EIP-7702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access-list costs.\n+6. Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx)\n \n ## Security Considerations\n \n", "order": 17, "subject": "Update EIP-2780: Add equivalent gas-limit increase", "tokens": [ "CALL", "GAS_NEW_ACCOUNT = 25,000", "nonce", "gas*", "to", "value", "v", "r", "s", "tx.data", "TX_BASE_COST", "21,000", "6,000", "15,000", "163Bn / 1.7M \u2248 95,882 gas", "95,882 \u2212 15,000 \u2248 80,882 gas", "95,882 / 80,882 \u2248 1.185", "1.7M \u00d7 1.185 \u2248 2.015M", ">300\u202fMGas/s", "300 \u00d7 (6/21) \u2248 85.7\u202fMGas/s", "\u22481,029\u202fMGas", "\u224853.3\u202fM", "GAS_NEW_ACCOUNT", "31,000", "value = 0", "TX_BASE_COST = 6,000", "FORK_BLOCK", "GasForCalldata", "TX_OVERHEAD_COST", "sender.nonce", "sender.balance", "sender", "TX_BASE_COST = 8,000", "CREATE", "gas_limit", "yParity", "63,200", "48,200", "50,200", "value > 0" ], "window": [] }, { "blob": "a888f61fc39a1d103cabbd2db4d43fdbc1df7117", "candidates": [], "commit": "3b6e7019275dec1d3040c5e6b625d1a669345cd5", "constants": [ { "after": [], "before": [ "2" ], "name": "ACCESS_LIST_ADDRESS_COST" }, { "after": [], "before": [ "3" ], "name": "ECRECOVER_COST" }, { "after": [], "before": [ "8", "8000:" ], "name": "TX_BASE_COST" }, { "after": [], "before": [ "100" ], "name": "WARM_ACCOUNT_ACCESS_COST" } ], "date": "2025-09-07T22:25:57Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 13fdc6d3..a888f61f 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -140,26 +140,6 @@ TX_BASE_COST =\n = 6,000\n ```\n \n-### Alternative approach\n-\n-An alternative derivation keeps `TX_BASE_COST = 8,000` by using conservative access-list proxies for account touches:\n-\n-```\n-ECRECOVER_COST = 3,000\n-ACCESS_LIST_ADDRESS_COST = 2,400\n-WARM_ACCOUNT_ACCESS_COST = 100\n-```\n-\n-```\n-TX_BASE_COST =\n- ECRECOVER_COST\n- + 2 * ACCESS_LIST_ADDRESS_COST\n- + 2 * WARM_ACCOUNT_ACCESS_COST\n- = 8,000\n-```\n-\n-Here `ACCESS_LIST_ADDRESS_COST` stands in for the work of touching `sender` and `to` at the top level, and `WARM_ACCOUNT_ACCESS_COST` reflects warm access bookkeeping. These values are proxies used only for derivation; they are not additional charges applied to the transaction.\n-\n ## Rationale\n \n Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and two warm writes. That sums to `6,000` gas. Anything not universal should be metered separately.\n@@ -227,26 +207,6 @@ Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above\n * Average Uniswap v3 Swap tx drops from `184,523` to `169,523`. (\u22128%)\n * Average Uniswap v3 Add Liquidity tx drops from `216,912` to `201912`. (\u22127%)\n \n-#### Transaction base fee 8000\n-\n-Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above ~610.1M gas, the 8\u202fMiB size cap dominates.\n-\n-| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (8k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n-| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: | ---------: |\n-| 45M | 2,143 | 179 | 5,625 | 469 | 938 | 1,875 | 3,750 |\n-| 60M | 2,857 | 238 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n-| 100M | 4,762 | 397 | 12,500 | 1,042 | 2,083 | 4,167 | 8,333 |\n-| 200M | 9,524 | 794 | 25,000 | 2,083 | 4,167 | 8,333 | 16,667 |\n-| 400M | 19,048 | 1,587 | 50,000 | 4,167 | 8,333 | 16,667 | 33,333 |\n-| 600M | 28,571 | 2,381 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n-\n-* Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `8,000`. (\u221262%)\n-* ETH transfer tx that creates a new EOA: intrinsic becomes `8,000 + 25,000` = `33,000`. (+57%)\n-* Simple ERC-20 token transfer tx (e.g., USDT) drops from `63,200` to `50,200`. (\u221220%)\n-* Solady ERC-20 token transfer tx drops from `33,400` to `20,400`. (-39%)\n-* Average Uniswap v3 Swap tx drops from `184,523` to `171,523`. (-7%)\n-* Average Uniswap v3 Add Liquidity tx drops from `216,912` to `203,912`. (-6%)\n-\n #### Reference MGas/s for gaslimit / slot time\n \n | Block gaslimit | MGas/s @ 12s | MGas/s @ 6s | MGas/s @ 3s | MGas/s @ 1.5s |\n@@ -255,9 +215,7 @@ Binding point for TX_BASE_COST = 8000: 76,260 \u00d7 8,000 = 610,080,000 gas. Above\n | 60M | 5.00 | 10.00 | 20.00 | 40.00 |\n | 100M | 8.33 | 16.67 | 33.33 | 66.67 |\n | 200M | 16.67 | 33.33 | 66.67 | 133.33 |\n-| 400M | 33.33 | 66.67 | 133.33 | 266.67 |\n | 450M | 37.50 | 75.00 | 150.00 | 300.00 |\n-| 600M | 50.00 | 100.00 | 200.00 | 400.00 |\n \n ## Test Cases\n \n", "order": 18, "subject": "Update EIP-2780: Remove 8000", "tokens": [], "window": [] }, { "blob": "61527a7b300578d3d08a6439efd16093130eedcb", "candidates": [], "commit": "2fd1e5e98e9150750217ddd5d5f22291d5c1e2a6", "constants": [], "date": "2025-09-08T06:11:31Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex a888f61f..61527a7b 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -19,7 +19,13 @@ If a non-create transaction has `value > 0` and targets a **non-existent** accou\n \n This additional `GAS_NEW_ACCOUNT` cost is not applied in the case of a `CREATE` transaction as it is already applied in its cost structure.\n \n-Calldata and access-list metering are unchanged.\n+Calldata and access-list metering are unchanged. This is a focused change targeted at the initial stage of processing a transaction and returning the gas overpricing to do more useful work.\n+\n+Capacity Impact:\n+\n+* **Average:** +18.5% more transactions per block.\n+* **Max:** +250% more minimal transactions (i.e. pure ETH transfers).\n+* **\"Equivalent\" gaslimit:** +18.5% effectual gaslimit increase (e.g. 45\u202fM => 53.3\u202fM); though nominally would remain the same.\n \n ## Motivation\n \n", "order": 19, "subject": "Update EIP-2780: Update abstract", "tokens": [], "window": [] }, { "blob": "16d191dec35b92e84d711932100f6991826a6cc5", "candidates": [], "commit": "191353ed4ef5a64c3e4c9f8336ba590881bdb40b", "constants": [], "date": "2025-09-26T08:37:30Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 61527a7b..16d191de 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -2,7 +2,7 @@\n eip: 2780\n title: Reduce intrinsic transaction gas\n description: Reduce intrinsic transaction gas and charge 25k when a value transfer creates a new account\n-author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams)\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n", "order": 20, "subject": "Update EIP-2780: Update authors", "tokens": [], "window": [] }, { "blob": "bebf37ebed19aabcd06b3789a7431c51f5254a20", "candidates": [], "commit": "f363c3d806e0fcc483c61d49e39a2ef3dca1976f", "constants": [], "date": "2025-10-23T05:40:15Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 16d191de..bebf37eb 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -2,7 +2,7 @@\n eip: 2780\n title: Reduce intrinsic transaction gas\n description: Reduce intrinsic transaction gas and charge 25k when a value transfer creates a new account\n-author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73)\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n", "order": 21, "subject": "Update EIP-2780: Add author", "tokens": [], "window": [] }, { "blob": "94a03abdc18624deb5d5df7bdd6e2b67ad013a6a", "candidates": [], "commit": "c91dc31f164fa50bc58e8b6c68fd44774a1f1828", "constants": [ { "after": [ "2", "9", "STATE_UPDATE" ], "before": [], "name": "CALL_VALUE_COST" }, { "after": [ "2", "2,600" ], "before": [], "name": "COLD_ACCOUNT_COST_CODE" }, { "after": [ "500" ], "before": [], "name": "COLD_ACCOUNT_COST_NOCODE" }, { "after": [], "before": [ "3" ], "name": "ECRECOVER_COST" }, { "after": [ "26" ], "before": [], "name": "GAS_NEW_ACCOUNT" }, { "after": [ "1", "1,000", "2" ], "before": [], "name": "STATE_UPDATE" }, { "after": [ "4", "4,500" ], "before": [ "6", "6,000", "6000:", "Uint(21000", "Uint(6000" ], "name": "TX_BASE_COST" }, { "after": [], "before": [ "2" ], "name": "TX_OVERHEAD_COST" }, { "after": [], "before": [ "100" ], "name": "WARM_ACCOUNT_ACCESS_COST" }, { "after": [ "100" ], "before": [], "name": "WARM_STATE_READ" } ], "date": "2025-10-23T17:20:37Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex bebf37eb..94a03abd 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -13,57 +13,82 @@ requires: 1559, 2718, 2929, 2930\n \n ## Abstract\n \n-Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `6,000`.\n+Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `6,000` from additional costs related to the `to` account.\n \n-If a non-create transaction has `value > 0` and targets a **non-existent** account add `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth.\n+If a non-create transaction has `value > 0` and targets a non-existent account, charge `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth. When this surcharge applies, the recipient pays exactly one cold non-code touch; no code-load cost applies.\n \n-This additional `GAS_NEW_ACCOUNT` cost is not applied in the case of a `CREATE` transaction as it is already applied in its cost structure.\n+This EIP does not change calldata or access-list metering. It also refines related gas schedule items used in derivation and execution accounting:\n \n-Calldata and access-list metering are unchanged. This is a focused change targeted at the initial stage of processing a transaction and returning the gas overpricing to do more useful work.\n+- Split cold-account touches into `COLD_ACCOUNT_COST_CODE = 2,600` and `COLD_ACCOUNT_COST_NOCODE = 500`.\n+- Introduce `STATE_UPDATE = 1,000` as the price of a single account-leaf write.\n+- Reprice value-moving calls as account-leaf writes, replacing `CALL_VALUE_COST = 9,000` with `CALL_VALUE_COST = 2 * STATE_UPDATE = 2,000`.\n+- Specify that a `PAY`-style value-move primitive, if present, does not warm its recipient and never loads code (charged at `COLD_ACCOUNT_COST_NOCODE` if not already warmed).\n \n-Capacity Impact:\n+Capacity impact (illustrative):\n \n-* **Average:** +18.5% more transactions per block.\n-* **Max:** +250% more minimal transactions (i.e. pure ETH transfers).\n-* **\"Equivalent\" gaslimit:** +18.5% effectual gaslimit increase (e.g. 45\u202fM => 53.3\u202fM); though nominally would remain the same.\n+- Average: about +20.8% more transactions per block at unchanged gas limit.\n+- Max: up to ~320% more minimal transactions (pure ETH transfers).\n+- Equivalent gas-limit effect: roughly +20.8% (for example, 60M -> ~72.5M), with calldata and access-list metering unchanged.\n \n ## Motivation\n \n-The current `21,000` intrinsic gas is a legacy constant. It no longer matches the work all transactions must perform under warm/cold accounting. When decomposed into signature recovery, warming `sender` and `to`, and two warm writes for nonce and balance, the common path totals `6,000` gas.\n+The legacy `21,000` base no longer matches the universal work path under warm/cold accounting. Decomposed into signature recovery, one account-leaf write for the sender (nonce + balance coalesced), and one cold non-code touch (sender), the universal path totals `4,500` gas.\n \n-Top-level value transfers that create new accounts do not pay an explicit new-account surcharge today, while `CALL` does. This underprices state growth. Charging `GAS_NEW_ACCOUNT = 25,000` on value transfers that create an account aligns entry points and internalizes state growth.\n+State growth is underpriced for top-level value transfers that create accounts, while `CALL` pays explicit creation. Charging `25,000` when a transfer creates an account aligns entry points and internalizes state growth.\n \n-A high fixed base penalizes small ETH payments and encourages batching to dodge the base rather than for real efficiency. Lowering the base removes that distortion while leaving calldata and storage prices unchanged.\n+A lower base removes the distortion that over-incentivized batching solely to dodge `TX_BASE_COST`, without subsidizing calldata or storage. The refinement of value-transfer costs and cold-account pricing makes execution charges proportional to actual state work: account touches and leaf writes.\n \n-The result is cheaper ETH transfers without subsidies: state growth costs the same whether reached by `CALL` or by a top-level transfer. Access-list and 1559 mechanics are unchanged.\n-\n-We intentionally do **not** charge per-byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty tx.data, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n+We intentionally do **not** charge per-byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty `tx.data`, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n \n ### Equivalent gas-limit increase\n \n-Lowering `TX_BASE_COST` from `21,000` to `6,000` removes `15,000` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n-\n-* Avg gas/tx: `163Bn / 1.7M \u2248 95,882 gas`.\n-* New avg: `95,882 \u2212 15,000 \u2248 80,882 gas`.\n-* Throughput at fixed gaslimit: `95,882 / 80,882 \u2248 1.185` (+18.5%).\n-* Daily tx at same gas: `1.7M \u00d7 1.185 \u2248 2.015M` (+315k/day).\n+Lowering `TX_BASE_COST` from `21,000` to `4,500` removes `15,000` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n \n-Perfnet ETH transfer tests show EL clients handle `>300\u202fMGas/s` for pure ETH transfers today; expressed under a 6k base this is `300 \u00d7 (6/21) \u2248 85.7\u202fMGas/s`, i.e., `\u22481,029\u202fMGas` per 12\u202fs slot.\n+| Metric | Calculation | Result | Change |\n+| ---------------------------- | ---------------:| ---------------:| ---------:|\n+| Avg gas per tx | 163Bn / 1.7M | \u2248 95,882 gas | - |\n+| New avg gas per tx | 95,882 \u2212 16,500 | \u2248 79,382 gas | - |\n+| Throughput at fixed gaslimit | 95,882 / 79,382 | \u2248 x1.208 | +20.08% |\n+| Daily tx at same gas usage | 1.7M \u00d7 1.208 | \u2248 2.053M tx/day | +340k/day |\n \n-This indicates the protocol-level processing headroom already exists; and that this portion of the tx is significantly overcharged, so isn't extra engineering required to improve preformance to support this change.\n+Perfnet measurements show EL clients handle >300 MGas/s for pure ETH transfers. Expressed under a 4.5k base this corresponds to `300 * (4.5/21) ~ 64.3 MGas/s`, i.e. `~771 MGas` per 12 s slot. This indicates sufficient headroom and that the current base is significantly overcharged, so no extra engineering is required to improve performance to support this change.\n \n-Net effect equals raising a 45\u202fM gas limit to `\u224853.3\u202fM` at unchanged calldata and access-list metering. This directly advances Scaling L1.\n+Net effect equals raising a 45 M gas limit to ~54.4 M at unchanged calldata and access-list metering. This directly advances Scaling L1.\n \n ## Specification\n \n-After `FORK_BLOCK`, set the following parameters and rules.\n+After `FORK_BLOCK`, set the following parameters and rules:\n \n ### Parameters\n \n-| Name | Value | Description |\n-| ----------------- | ------ | ------------------------------------------------------------------------- |\n-| `TX_BASE_COST` | 6,000 | Base cost of any transaction |\n-| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a **value-transferring** transaction creates a new account |\n+| Name | Value | Description |\n+| -------------------------- | -----: | ----------------------------------------------------------------------- |\n+| `TX_BASE_COST` | 4,500 | Base cost of any transaction |\n+| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a value-transferring transaction creates a new account |\n+| `STATE_UPDATE` | 1,000 | One account-leaf write in the account trie (nonce and balance coalesce) |\n+| `COLD_ACCOUNT_COST_CODE` | 2,600 | Cold touch of an account with code |\n+| `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n+| `WARM_STATE_READ` | 100 | Touch of an already-warm account |\n+\n+Notes:\n+\n+- `STATE_UPDATE` counts writes at the account-leaf granularity. If a single account's nonce and balance both change in one transition, charge one `STATE_UPDATE`.\n+- `COLD_ACCOUNT_COST_NOCODE` reflects that non-code accounts do not load code or a storage trie, so have a lower warming cost.\n+- A regular ETH transfer additionally includes a cold touch of at least `COLD_ACCOUNT_COST_NOCODE` and a `STATE_UPDATE` of the `to` address, so the effective minimal productive tx cost is `6,000`.\n+- Not including the `to` cold warming and `STATE_UPDATE` in `TX_BASE_COST` means a contract-interaction transaction that does not transfer value does not unnecessarily pay these additional costs.\n+\n+### Derivation (non-normative)\n+\n+Decomposition of the base cost into universal primitives:\n+\n+| Component | Cost | Notes |\n+| ------------------------ | ----: | -------------------------------------------------- |\n+| ECRECOVER | 3,000 | Elliptic curve signature recovery |\n+| STATE_UPDATE | 1,000 | One account-leaf write (nonce + balance coalesced) |\n+| COLD_ACCOUNT_COST_NOCODE | 500 | Sender is cold and has no code |\n+| | | |\n+| TX_BASE_COST | 4,500 | Sum of above (3,000 + 1,000 + 500) |\n+\n \n ### New-account surcharge\n \n@@ -72,23 +97,33 @@ Apply `GAS_NEW_ACCOUNT` when **all** are true:\n 1. The transaction is not a `CREATE` transaction.\n 2. `value > 0`.\n 3. `to` is not a precompile.\n-4. `to` is **non-existent** per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n+4. `to` is non-existent per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n+\n+If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added to the **intrinsic** gas. Execution additionally pays exactly one `COLD_ACCOUNT_COST_NOCODE` for the recipient; no code-load cost applies.\n+\n+For reference, the **total** charges for such transfers change from 21,000 to 30,000.\n \n-If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added. This normalizes account-creation cost via EVM `CALL` or top-level transfer and addresses state growth concerns. For reference, this changes such transfers from `21,000` to `31,000` (+10,000 over current).\n+| Component | Cost | Notes |\n+| ------------------------ | ------:| ---------------------------------------- |\n+| TX_BASE_COST | 4,500 | Base transaction cost |\n+| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n+| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n+| | | |\n+| Total | 30,000 | Sum of above (4,500 + 500 + 25,000) |\n \n Notes:\n \n-* If `value = 0` and `to` is empty per EIP-161, no account is created and no surcharge applies.\n-* `CREATE` transactions are unchanged; their cost already includes account creation.\n+- If `value = 0` and `to` is empty per [EIP-161](./eip-161.md), no account is created and no surcharge applies.\n+- `CREATE` transactions are unchanged; their cost already includes account creation.\n \n ### Intrinsic gas computation\n \n-Clients must compute intrinsic gas exactly as today for each typed transaction **except**:\n+Clients compute intrinsic gas as today for each typed transaction **except**:\n \n-* Replace any hardcoded `21,000` with `TX_BASE_COST = 6,000`.\n-* Add `GAS_NEW_ACCOUNT` when the *New-account surcharge* conditions hold.\n+- Replace any hardcoded `21,000` with `TX_BASE_COST = 4,500`.\n+- Add `GAS_NEW_ACCOUNT` when the *New-account surcharge* conditions hold.\n \n-Pseudocode (normative):\n+### Pseudocode (normative):\n \n ```text\n function CalculateIntrinsicGas(tx, state_at_start):\n@@ -108,55 +143,61 @@ function CalculateIntrinsicGas(tx, state_at_start):\n return gasCost\n ```\n \n-### Code change example\n+### EVM gas schedule adjustments\n \n-In `transactions.py`:\n+These changes refine execution-layer accounting to align with the primitives above.\n \n-```diff\n--TX_BASE_COST = Uint(21000)\n-+TX_BASE_COST = Uint(6000)\n-```\n+- **Value-moving calls.** Replace the legacy `CALL_VALUE_COST = 9,000` with:\n \n-Typed transactions defined in EIP-1559/EIP-2930 (and EIP-7702 where applicable) that reference the `21,000` base now inherit `TX_BASE_COST = 6,000`.\n+ - If recipient exists: `CALL_VALUE_COST = 2 * STATE_UPDATE = 2,000`.\n+ - If recipient is EIP-161-empty: `CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT = 26,000`.\n+ - This charge is in addition to warm/cold account-touch costs per EIP-2929 and the existing `CALL` base cost. This EIP does not modify the `CALL` base cost.\n \n-### Edits and interactions with other EIPs\n+- **Cold-account touches.**\n \n-* **EIP-2930 (Access List Transactions).** Replace references to a fixed `21,000` intrinsic gas with `TX_BASE_COST`. The intrinsic-gas formula remains otherwise unchanged.\n-* **EIP-7702 (Set EOA Code).** Where 7702 inherits intrinsic cost from EIP-2930, that value is `TX_BASE_COST` after `FORK_BLOCK`. No other changes.\n-* **EIP-7623 (Calldata cost changes).** This EIP does not modify calldata pricing. If EIP-7623 (or other calldata-pricing EIPs) is active, `GasForCalldata` uses those rules unchanged.\n+ - Use `COLD_ACCOUNT_COST_CODE = 2,600` when touching an account with code.\n+ - Use `COLD_ACCOUNT_COST_NOCODE = 500` when touching an account known to have no code.\n \n-### Derivation (non-normative)\n+- **Warmth policy.**\n \n-Sender is recovered from signature, so is ecrecover cost. Sender and `to` match **access-list pricing for touches**; these are **proxies for work**, not additional charges at the top level:\n+ - Access-list entries (charged via [EIP-2930](./eip-2930.md)) and precompiles are warm at tx start.\n+ - `CALL` warms its `to` after charging the appropriate cold cost if cold.\n+ - A `PAY`-style pure value-move primitive, if present, does not warm its recipient and never loads code. It pays `WARM_STATE_READ = 100` if warm for unrelated reasons, else `COLD_ACCOUNT_COST_NOCODE = 500`, plus the value-write cost above.\n \n-```\n-ECRECOVER_COST = 3,000\n-WARM_ACCOUNT_ACCESS_COST = 100\n-TX_OVERHEAD_COST = 2,800\n-GAS_NEW_ACCOUNT = 25,000\n-```\n+- **Self-transfers.** If `from == to` then only one `STATE_UPDATE` occurs which is already factored into `TX_BASE_COST` as part of gas charge and nonce change, so only `TX_BASE_COST` is charged.\n \n-`TX_OVERHEAD_COST` bundles fixed per-transaction work that is not separately metered by EVM opcodes: envelope RLP decode and basic validity checks (nonce, gas, chain ID), fee accounting, two warm account updates to `sender.nonce` and `sender.balance`, and minimal trie/header reads and writes for `sender` and `to`. It also includes a conservative margin to cover implementation overhead across EL clients.\n+### Transaction reference cases\n \n-```\n-TX_BASE_COST =\n- ECRECOVER_COST\n- + 2 * WARM_ACCOUNT_ACCESS_COST\n- + TX_OVERHEAD_COST\n- = 6,000\n-```\n+| Case | Formula | Total Cost |\n+| ----------------------------------- | ---------------------------------------------------------------- | -------------------------:|\n+| (NOP) No-transfer to EOA | `TX_BASE_COST` | 4,500 |\n+| (NOP) No-transfer to empty account | `TX_BASE_COST` | 4,500 |\n+| (NOP) ETH transfer to self | `TX_BASE_COST` | 4,500 |\n+| ETH Transfer to existing EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `STATE_UPDATE` | 6,000 |\n+| No-transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + **execution** | 7,100 + **execution** |\n+| ETH Transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + **execution** | 8,100 + **execution** |\n+| ETH Transfer creating new account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `GAS_NEW_ACCOUNT` | 30,000 |\n+\n+This aligns costs with actual state work rather than legacy flat surcharges.\n+\n+### Edits and interactions with other EIPs\n+\n+- **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n+- **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n+- **[EIP-7702](./eip-7702.md) (Set EOA Code).** Intrinsic gas uses `TX_BASE_COST`. Warmth rules are unchanged; if 7702 supplies code via the tx, clients need not fetch code from disk to decide between `COLD_ACCOUNT_COST_CODE` and `COLD_ACCOUNT_COST_NONCODE` for the initial touch.\n+- **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n \n ## Rationale\n \n-Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and two warm writes. That sums to `6,000` gas. Anything not universal should be metered separately.\n+Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and one account-leaf write for the sender (nonce + balance change). That sums to `4,500` gas. Anything not universal should be metered separately.\n \n-Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It only updates warm account nonce and balance, so it receives the discount.\n+Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract) and one recipient leaf write, so its total is `6,000`.\n \n When a value transfer creates a previously empty account, charge `GAS_NEW_ACCOUNT = 25,000`, identical to `CALL` account-creation pricing. `CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n \n This removes cross-subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n \n-Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`,`r`,`s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per-entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms sender and to, and does two warm writes (nonce, balance). It therefore receives the base discount and zero calldata gas.\n+Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per-entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms the sender, and updates sender and recipient accounts. It therefore receives the base discount and pays only the additional recipient costs.\n \n Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\n \n@@ -164,64 +205,80 @@ Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases th\n \n ### Why not charge full tx data as calldata?\n \n-* **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements (`yParity`,`r`,`s` under RLP\u2019s no-leading-zero rule), creating fixed-point estimation and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n+- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n \n-* **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens EIP-2718 type neutrality and future formats such as SSZ. Call data is treated as opaque bytes so doesn't have this encoding coupling.\n+- **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens [EIP-2718](./eip-2718.md) type neutrality and future formats such as SSZ. Calldata is treated as opaque bytes so it avoids this coupling.\n \n-* **Policy targeting and market floor.** Calldata floors ([EIP-7623](./eip-7623.md)/[EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control-plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding-agnostic intrinsic base keeps the minimum inclusion price strongly coupled to the basefee market. While also not under pricing to open a DoS vector.\n+- **Policy targeting and market floor.** Calldata floors (for example [EIP-7623](./eip-7623.md) or [EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control-plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding-agnostic intrinsic base keeps the minimum inclusion price coupled to the basefee market, without opening a DoS vector.\n \n-* **Native settlement and unit-of-account** Even though all transactions receive the same absolute gas reduction, it propritionatly improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas versus a permissioned ERC-20/LST/stable coin transfer at ~48,000 gas yields an 8 x higher payment throughput per unit gas, which reinforces ETH as the settlement asset with greater money velocity potential and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via operator).\n+- **Native settlement and unit-of-account.** Even though all transactions receive the same absolute gas reduction, it proportionally improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas vs a permissioned ERC-20/LST/stablecoin transfer at ~48,000 gas, you get ~8x higher payment throughput per unit gas, which reinforces ETH as the settlement asset and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via smart contract operator).\n \n ![Figure 1](../assets/eip-2780/1.png)\n \n-## Backwards Compatibility\n+### Effects on transactions per block\n \n-This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n+For execution-payload size, use [EIP-7934](./eip-7934.md)\u2019s 8 MiB uncompressed cap: `8,388,608 bytes`. A typical EIP-1559 ETH transfer encodes at roughly `~110 bytes`, yielding a size cap of `floor(8,388,608 / 110) = 76,260 tx` per block when size, not gas, is the binding constraint.\n \n-Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must update.\n+There are two useful ceilings to consider:\n \n-### Effects on transactions per block\n+- Minimal transaction with no value and no execution: `TX_BASE_COST = 4,500` gas.\n+- Minimal ETH payment to an existing EOA: `6,000` gas (`TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE`).\n+\n+Counts below are `floor(gaslimit / per-tx-gas)`, then capped by `76,260` when the 8 MiB size limit binds. TPS figures round to the nearest integer.\n+\n+#### Scenario A: minimal txs at 4,500 gas\n \n-Median ETH transfer is 110 bytes of data, so at [EIP-7934](./eip-7934.md)'s 8MiB uncompressed execution block cap creating an effective max tx count by size of: `8,388,608 / 110 \u2248 76,260 tx`\n+Binding point for size-cap dominance: `76,260 * 4,500 = 343,170,000` gas. At gaslimits above ~343.17 M, block size, not gas, limits the tx count for 4,500-gas transactions.\n \n-This leads to upper limits on gaslimit for raw tx count. Although more complex smart contracts can make use of a higher block gaslimit. However the market dynamics become more complicated when approaching the block cap and there will be distortions in gas pricing; when other approaches would need to be considered\n+| Block gaslimit | Old tx/bk (21k) | New tx/bk (4.5k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n+| -------------: | --------------: | ---------------: | --------: | -------: | -------: | ---------: |\n+| 45 M | 2,142 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n+| 60 M | 2,857 | 13,333 | 1,111 | 2,222 | 4,444 | 8,889 |\n+| 100 M | 4,761 | 22,222 | 1,852 | 3,704 | 7,407 | 14,815 |\n+| 200 M | 9,523 | 44,444 | 3,704 | 7,407 | 14,815 | 29,629 |\n+| 450 M | 21,428 | \u202076,260 | 6,355 | 12,710 | 25,420 | 50,840 |\n \n-e.g. \n+ \u2020 Size cap binds at 450 M because 450 M > 343.17 M.\n \n-* Raising network max block size (currently 10MiB both in EL devp2p and CL specs)\n-* [EIP-7782](./eip-7782.md): Reduce Block Latency\n-* [EIP-7999](./eip-7999.md): Unified Multidimensional Fee Market\n+#### Scenario B: ETH transfers at 6,000 gas\n \n-Below TPS are additionally given for [EIP-7782](./eip-7782.md) at 6sec and 3sec blocks; as it is an easily considered effect.\n+Binding point for size-cap dominance: `76,260 * 6,000 = 457,560,000` gas. At gaslimits below ~457.56 M, gas limits tx count; above it, the 8 MiB size cap dominates.\n \n-#### Transaction base fee 6000\n+| Block gaslimit | Old tx/bk (21k) | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n+| -------------: | --------------: | -------------: | --------: | -------: | -------: | ---------: |\n+| 45 M | 2,142 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n+| 60 M | 2,857 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n+| 100 M | 4,761 | 16,666 | 1,389 | 2,778 | 5,555 | 11,111 |\n+| 200 M | 9,523 | 33,333 | 2,778 | 5,556 | 11,111 | 22,222 |\n+| 450 M | 21,428 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n \n-Binding point for TX_BASE_COST = 6000: 76,260 \u00d7 6,000 = 457,560,000 gas. Above ~457.6\u202fM gas, the 8\u202fMiB size cap dominates.\n+#### Changes for common types of txs\n \n-| Block gaslimit | Old tx/bk (21k) | TPS @ 12s | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n-| -------------: | --------------: | --------: | -------------: | --------: | -------: | -------: | ---------: |\n-| 45M | 2,143 | 179 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n-| 60M | 2,857 | 238 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n-| 100M | 4,762 | 397 | 16,667 | 1,389 | 2,778 | 5,556 | 11,111 |\n-| 200M | 9,524 | 794 | 33,333 | 2,778 | 5,556 | 11,111 | 22,222 |\n-| 450M | 21,429 | 1,786 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n+| Transaction Type | Old Cost | New Cost | Change |\n+| ---------------------------------- | -------: | -------: | -----: |\n+| Simple ETH transfer (existing EOA) | 21,000 | 6,000 | \u221271 % |\n+| ETH transfer creating new EOA | 21,000 | 30,000 | +43 % |\n+| ERC-20 transfer (typical) | 63,200 | 48,200 | \u221224 % |\n+| ERC-20 transfer (Solady) | 33,400 | 18,400 | \u221245 % |\n+| Uniswap v3 swap | 184,500 | 169,500 | \u22128 % |\n+| Uniswap v3 add-liquidity | 216,900 | 201,900 | \u22127 % |\n \n-* Simple ETH transfer tx to an existing EOA: intrinsic drops from `21,000` to `6,000`. (\u221271%)\n-* ETH transfer tx that creates a new EOA: intrinsic becomes `6,000 + 25,000` = `31,000`. (+48%)\n-* Simple ERC-20 token transfer tx (e.g., USDT) drops from `63,200` to `48,200`. (\u221224%)\n-* Solady ERC-20 token transfer tx drops from `33,400` to `18,400`. (-45%)\n-* Average Uniswap v3 Swap tx drops from `184,523` to `169,523`. (\u22128%)\n-* Average Uniswap v3 Add Liquidity tx drops from `216,912` to `201912`. (\u22127%)\n \n-#### Reference MGas/s for gaslimit / slot time\n+#### Reference MGas/s for gaslimit vs slot time\n \n | Block gaslimit | MGas/s @ 12s | MGas/s @ 6s | MGas/s @ 3s | MGas/s @ 1.5s |\n | -------------: | -----------: | ----------: | ----------: | ------------: |\n-| 45M | 3.75 | 7.50 | 15.00 | 30.00 |\n-| 60M | 5.00 | 10.00 | 20.00 | 40.00 |\n-| 100M | 8.33 | 16.67 | 33.33 | 66.67 |\n-| 200M | 16.67 | 33.33 | 66.67 | 133.33 |\n-| 450M | 37.50 | 75.00 | 150.00 | 300.00 |\n+| 45 M | 3.75 | 7.50 | 15.00 | 30.00 |\n+| 60 M | 5.00 | 10.00 | 20.00 | 40.00 |\n+| 100 M | 8.33 | 16.67 | 33.33 | 66.67 |\n+| 200 M | 16.67 | 33.33 | 66.67 | 133.33 |\n+| 450 M | 37.50 | 75.00 | 150.00 | 300.00 |\n+\n+## Backwards Compatibility\n+\n+This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n+\n+Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must update.\n \n ## Test Cases\n \n@@ -229,14 +286,14 @@ While the benefits of reducing transactions' intrinsic cost are apparent, such a\n \n Tests should be created with blocks of just ETH transfers and tested on Perfnet across all EL clients to ensure the pricing is correct.\n \n-Add explicit test vectors:\n+Add explicit test vectors (intrinsic gas only):\n \n-1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `31,000`.\n-2. `value > 0` to a precompile: intrinsic `6,000` (no surcharge).\n-3. `value = 0` to an empty address: intrinsic `6,000` (no creation, no surcharge).\n+1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `30,000` (4,500 base + 500 + 25,000 surcharge).\n+2. `value > 0` to a precompile: intrinsic `4,500` (no surcharge; precompiles are warm at tx start).\n+3. `value = 0` to an empty address: intrinsic `4,500` (no creation, no surcharge).\n 4. `CREATE` transaction: unchanged from prior rules.\n 5. EIP-7702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access-list costs.\n-6. Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx)\n+6. Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx).\n \n ## Security Considerations\n \n", "order": 22, "subject": "Update EIP-2780: Include Call changes", "tokens": [ "TX_BASE_COST", "21,000", "4,500", "6,000", "to", "value > 0", "GAS_NEW_ACCOUNT = 25,000", "CALL", "COLD_ACCOUNT_COST_CODE = 2,600", "COLD_ACCOUNT_COST_NOCODE = 500", "STATE_UPDATE = 1,000", "CALL_VALUE_COST = 9,000", "CALL_VALUE_COST = 2 * STATE_UPDATE = 2,000", "PAY", "COLD_ACCOUNT_COST_NOCODE", "25,000", "nonce", "gas*", "value", "v", "r", "s", "tx.data", "15,000", "300 * (4.5/21) ~ 64.3 MGas/s", "~771 MGas", "FORK_BLOCK", "GAS_NEW_ACCOUNT", "STATE_UPDATE", "COLD_ACCOUNT_COST_CODE", "WARM_STATE_READ", "value = 0", "CREATE", "TX_BASE_COST = 4,500", "CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT = 26,000", "WARM_STATE_READ = 100", "from == to", "500", "2,600", "COLD_ACCOUNT_COST_NONCODE", "sender", "gas_limit", "8,388,608 bytes", "~110 bytes", "floor(8,388,608 / 110) = 76,260 tx", "TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE", "floor(gaslimit / per-tx-gas)", "76,260", "76,260 * 4,500 = 343,170,000", "76,260 * 6,000 = 457,560,000", "30,000" ], "window": [] }, { "blob": "ed5e20865d52f337fa2881a32a534680496d2275", "candidates": [], "commit": "5ed360f38d7867c0f677104c10aabe657da60f11", "constants": [ { "after": [ "2" ], "before": [], "name": "COLD_ACCOUNT_COST_CODE" }, { "after": [ "500" ], "before": [], "name": "COLD_ACCOUNT_COST_NOCODE" } ], "date": "2025-10-23T22:57:38Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 94a03abd..ed5e2086 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -32,6 +32,20 @@ Capacity impact (illustrative):\n \n ## Motivation\n \n+**Monetary Context**\n+\n+ETH already anchors most liquidity. LPs pair against it, fees are paid in it - a kind of economic tax base that sets a floor under its value. Bitcoin's \"money\" case now mostly runs through BTC exchange pairings, which is why it drifted toward store-of-value rather than medium of exchange.\n+\n+ETH still clears real economic activity on-chain, but few people think in ETH terms outside NFTs. In that niche, ETH already *is* money - prices are quoted directly, trade settles natively - but the goods are expensive, so it only works for large tickets.\n+\n+For ETH to act as money, it has to work for small ones too. That was impossible when gas sat at 300 gwei, or even 90 gwei on a quiet weekend. Post-4844, with blobs absorbing data pressure from \"pay at any price\" L2s and higher gaslimits keeping congestion in check, low-value payments become plausible again.\n+\n+The 21 k minimum for a plain transfer is the leftover friction. Users can dodge it by bundling calls, which means the network overcharges straighforward use and underprices complexity. Dropping the base cost and fixing `CALL` value pricing closes that gap - not to make ETH grander, just usable as money across scales.\n+\n+Stablecoins and LSTs are welcome, but they're competitors for \"moneyness\". If all flows and LPs settle in LSTs or USD{T|C}, ETH becomes plumbing, not principle. The goal here is simple: make native ETH cheap enough to spend and pay that people think in it again.\n+\n+**Specifics**\n+\n The legacy `21,000` base no longer matches the universal work path under warm/cold accounting. Decomposed into signature recovery, one account-leaf write for the sender (nonce + balance coalesced), and one cold non-code touch (sender), the universal path totals `4,500` gas.\n \n State growth is underpriced for top-level value transfers that create accounts, while `CALL` pays explicit creation. Charging `25,000` when a transfer creates an account aligns entry points and internalizes state growth.\n@@ -70,6 +84,26 @@ After `FORK_BLOCK`, set the following parameters and rules:\n | `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n | `WARM_STATE_READ` | 100 | Touch of an already-warm account |\n \n+The intrinsic gas accounting defined here overrides [EIP-2929](./eip-2929.md)'s blanket \"all tx addresses are warm\" rule.\n+\n+A transaction\u2019s intrinsic base is decomposed into explicit primitives, so warmth must be priced explicitly.\n+\n+- `tx.sender` is charged as a cold non-code account (`COLD_ACCOUNT_COST_NOCODE = 500`), representing the first access and coalesced account-leaf update.\n+\n+- `tx.to` is charged based on its type:\n+\n+ - if a contract create, charge under those rules.\n+\n+ - if an EOA or an empty account, use `COLD_ACCOUNT_COST_NOCODE = 500`.\n+\n+ - if a contract, use `COLD_ACCOUNT_COST_CODE = 2,600`.\n+\n+ - if a precompile, it is warm at tx start and charged zero.\n+\n+- Warmth discovered through an access list still applies and overrides the cold cost.\n+\n+This decomposition replaces the implicit warmth assumptions of [EIP-2929](./eip-2929.md) and makes the per-account cost explicit in the base or the execution phase as appropriate.\n+\n Notes:\n \n - `STATE_UPDATE` counts writes at the account-leaf granularity. If a single account's nonce and balance both change in one transition, charge one `STATE_UPDATE`.\n", "order": 23, "subject": "Update EIP-2780: Add context", "tokens": [ "CALL", "tx.sender", "COLD_ACCOUNT_COST_NOCODE = 500", "tx.to", "COLD_ACCOUNT_COST_CODE = 2,600" ], "window": [] }, { "blob": "0bbea00ed4835f2d4fb3abcdfbd00c905a61f658", "candidates": [], "commit": "6585d4abd1d7f3ba42cdc3ba42078015822a2308", "constants": [], "date": "2025-10-23T23:53:22Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex ed5e2086..0bbea00e 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -34,15 +34,23 @@ Capacity impact (illustrative):\n \n **Monetary Context**\n \n-ETH already anchors most liquidity. LPs pair against it, fees are paid in it - a kind of economic tax base that sets a floor under its value. Bitcoin's \"money\" case now mostly runs through BTC exchange pairings, which is why it drifted toward store-of-value rather than medium of exchange.\n+Money has three basic functions: a unit of account, a medium of exchange, and a store of value. ETH already meets the last two by design. It carries value without an issuer and settles with finality. Where it falls short is in everyday exchange - the friction of use rather than the nature of the asset.\n \n-ETH still clears real economic activity on-chain, but few people think in ETH terms outside NFTs. In that niche, ETH already *is* money - prices are quoted directly, trade settles natively - but the goods are expensive, so it only works for large tickets.\n+ETH underpins most onchain liquidity. Pairs are denominated in it, and gas is paid in it - a de-facto tax base that anchors value. Bitcoin's monetary role now runs mainly through exchange pairs, hence its drift in focus to store-of-value rather than medium-of-exchange. ETH still clears real activity onchain, yet outside NFTs few people think in ETH terms. In that niche ETH already functions as both unit and medium, but only for high-value items.\n \n-For ETH to act as money, it has to work for small ones too. That was impossible when gas sat at 300 gwei, or even 90 gwei on a quiet weekend. Post-4844, with blobs absorbing data pressure from \"pay at any price\" L2s and higher gaslimits keeping congestion in check, low-value payments become plausible again.\n+For ETH to operate fully as money, it must also handle small transactions. That was impractical when gas sat at 300 gwei, or even 90 gwei on quiet weekends. Post-4844, blobs absorb L2's \"pay at any price\" data and higher gaslimits ease congestion; cost, not capacity, is the bottleneck.\n \n-The 21 k minimum for a plain transfer is the leftover friction. Users can dodge it by bundling calls, which means the network overcharges straighforward use and underprices complexity. Dropping the base cost and fixing `CALL` value pricing closes that gap - not to make ETH grander, just usable as money across scales.\n+EIP-2780 lowers that fixed cost. By aligning the base gas with the real work of a transaction and by correcting `CALL` value pricing, it removes the legacy penalty on simple payments. Small transfers become viable again without subsidising calldata or storage. The same logic charges properly for new-account creation, so state growth remains priced in.\n \n-Stablecoins and LSTs are welcome, but they're competitors for \"moneyness\". If all flows and LPs settle in LSTs or USD{T|C}, ETH becomes plumbing, not principle. The goal here is simple: make native ETH cheap enough to spend and pay that people think in it again.\n+- **Unit of account:** When transfers are cheap and regular, people price in ETH because they use it directly. This proposal turns that habit into equilibrium rather than idealism.\n+\n+- **Medium of exchange:** Reducing `TX_BASE_COST` eliminates the old friction that slowed native circulation. Settlement becomes frequent, not occasional.\n+\n+- **Store of value:** Honest pricing reinforces confidence that ETH's cost structure is grounded in real computation, not arbitrary constants.\n+\n+- **Velocity:** Lower friction raises the rate of final settlement; more frequent, smaller clears in native ETH, without altering calldata or storage economics.\n+\n+- **Monetary competition:** Stablecoins and LSTs are welcome, but they compete for onchain \"moneyness\". Making native ETH easy to spend keeps it central; not just the fuel, but the money of the system.\n \n **Specifics**\n \n", "order": 24, "subject": "Update EIP-2780: Bullet points", "tokens": [ "CALL", "TX_BASE_COST" ], "window": [] }, { "blob": "b88b75884c8b4d6483ed8ad6228704c229a9b1ae", "candidates": [], "commit": "8879efe2c600272a6358b037e70f54a3e4f5571c", "constants": [], "date": "2025-10-24T06:16:32Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 0bbea00e..b88b7588 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -2,7 +2,7 @@\n eip: 2780\n title: Reduce intrinsic transaction gas\n description: Reduce intrinsic transaction gas and charge 25k when a value transfer creates a new account\n-author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson)\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n@@ -52,6 +52,8 @@ EIP-2780 lowers that fixed cost. By aligning the base gas with the real work of\n \n - **Monetary competition:** Stablecoins and LSTs are welcome, but they compete for onchain \"moneyness\". Making native ETH easy to spend keeps it central; not just the fuel, but the money of the system.\n \n+**Note:** This proposal doesn't target ETH specifically, the lower base cost applies to every transaction type. However since `TX_BASE_COST` makes up nearly all of an ETH transfer's gas, while it's only a small fraction of contract calls, ETH loses the most friction and gains the most velocity.\n+\n **Specifics**\n \n The legacy `21,000` base no longer matches the universal work path under warm/cold accounting. Decomposed into signature recovery, one account-leaf write for the sender (nonce + balance coalesced), and one cold non-code touch (sender), the universal path totals `4,500` gas.\n", "order": 25, "subject": "Update EIP-2780: Feedback", "tokens": [ "TX_BASE_COST" ], "window": [] }, { "blob": "bbaaf3a04cf70ac597b9fa35635d65639403fade", "candidates": [], "commit": "b87dc57975b0f4a59edd35090ccb366a76365709", "constants": [ { "after": [ "2", "26" ], "before": [], "name": "CALL_VALUE_COST" }, { "after": [ "10" ], "before": [], "name": "MAX_RLP_BLOCK_SIZE" } ], "date": "2025-10-24T07:33:36Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex b88b7588..bbaaf3a0 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -64,9 +64,21 @@ A lower base removes the distortion that over-incentivized batching solely to do\n \n We intentionally do **not** charge per-byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty `tx.data`, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n \n+### Throughput, payload, and basefee dynamics\n+\n+This EIP affects three independent levers:\n+\n+1. **Gas-limit equivalence:** Reducing the base cost from `21,000` to `4,500` increases transaction capacity at a fixed block gaslimit by approximately +20.8%.\n+\n+2. **Payload-size bounds:** Per [EIP-7934](./eip-7934.md) the execution payload cap is `MAX_RLP_BLOCK_SIZE = 10,485,760 - 2,097,152 = 8,388,608` bytes. Payload size, not gas, may become the dominant block-size constraint at high gaslimits.\n+\n+3. **Basefee market dynamics:** Lower intrinsic gas reduces the average gas per tx, temporarily increasing utilisation and causing short-term downward adjustment in basefee. Over time, equilibrium restores as inclusion policies adapt.\n+\n+These levers are independent; this proposal changes only intrinsic gas, not calldata metering or access-list pricing.\n+\n ### Equivalent gas-limit increase\n \n-Lowering `TX_BASE_COST` from `21,000` to `4,500` removes `15,000` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n+Lowering `TX_BASE_COST` from `21,000` to `4,500` removes up to `16,500` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n \n | Metric | Calculation | Result | Change |\n | ---------------------------- | ---------------:| ---------------:| ---------:|\n@@ -92,7 +104,7 @@ After `FORK_BLOCK`, set the following parameters and rules:\n | `STATE_UPDATE` | 1,000 | One account-leaf write in the account trie (nonce and balance coalesce) |\n | `COLD_ACCOUNT_COST_CODE` | 2,600 | Cold touch of an account with code |\n | `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n-| `WARM_STATE_READ` | 100 | Touch of an already-warm account |\n+| `WARM_STATE_READ` | 100 | Touch of an already-warm account (same as `WARM_STORAGE_READ_COST`) |\n \n The intrinsic gas accounting defined here overrides [EIP-2929](./eip-2929.md)'s blanket \"all tx addresses are warm\" rule.\n \n@@ -125,13 +137,12 @@ Notes:\n \n Decomposition of the base cost into universal primitives:\n \n-| Component | Cost | Notes |\n-| ------------------------ | ----: | -------------------------------------------------- |\n-| ECRECOVER | 3,000 | Elliptic curve signature recovery |\n-| STATE_UPDATE | 1,000 | One account-leaf write (nonce + balance coalesced) |\n-| COLD_ACCOUNT_COST_NOCODE | 500 | Sender is cold and has no code |\n-| | | |\n-| TX_BASE_COST | 4,500 | Sum of above (3,000 + 1,000 + 500) |\n+| Component | Cost | Notes |\n+| ------------------------ | --------: | -------------------------------------------------- |\n+| ECRECOVER | 3,000 | Elliptic curve signature recovery |\n+| STATE_UPDATE | 1,000 | One account-leaf write (nonce + balance coalesced) |\n+| COLD_ACCOUNT_COST_NOCODE | 500 | Sender is cold and has no code |\n+| **TX_BASE_COST** | **4,500** | Sum of above (3,000 + 1,000 + 500) |\n \n \n ### New-account surcharge\n@@ -143,17 +154,19 @@ Apply `GAS_NEW_ACCOUNT` when **all** are true:\n 3. `to` is not a precompile.\n 4. `to` is non-existent per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n \n-If these conditions hold the transfer results in account creation and `GAS_NEW_ACCOUNT` is added to the **intrinsic** gas. Execution additionally pays exactly one `COLD_ACCOUNT_COST_NOCODE` for the recipient; no code-load cost applies.\n+The `GAS_NEW_ACCOUNT = 25,000`charge covers state growth (new leaf creation and one `STATE_UPDATE`).\n+An additional `COLD_ACCOUNT_COST_NOCODE = 500` applies for the initial lookup to determine that the account does not exist.\n+\n+Thus, the **total** intrinsic gas for a value-transferring transaction to a new account is `30,000` (`4,500 base + 500 lookup + 25,000 new-account surcharge`).\n \n For reference, the **total** charges for such transfers change from 21,000 to 30,000.\n \n-| Component | Cost | Notes |\n-| ------------------------ | ------:| ---------------------------------------- |\n-| TX_BASE_COST | 4,500 | Base transaction cost |\n-| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n-| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n-| | | |\n-| Total | 30,000 | Sum of above (4,500 + 500 + 25,000) |\n+| Component | Cost | Notes |\n+| ------------------------ | ----------:| ---------------------------------------- |\n+| TX_BASE_COST | 4,500 | Base transaction cost |\n+| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n+| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n+| **Total** | **30,000** | Sum of above (4,500 + 500 + 25,000) |\n \n Notes:\n \n@@ -197,6 +210,8 @@ These changes refine execution-layer accounting to align with the primitives abo\n - If recipient is EIP-161-empty: `CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT = 26,000`.\n - This charge is in addition to warm/cold account-touch costs per EIP-2929 and the existing `CALL` base cost. This EIP does not modify the `CALL` base cost.\n \n+ The `CALL_VALUE_COST = 2,000` applies for all value-carrying calls, regardless of whether the callee's account has already been updated earlier in the same transaction. This ensures the 2300-gas stipend mechanism remains safe and consistent for simple value forwarding and does not retroactively depend on account-update history.\n+\n - **Cold-account touches.**\n \n - Use `COLD_ACCOUNT_COST_CODE = 2,600` when touching an account with code.\n@@ -208,7 +223,7 @@ These changes refine execution-layer accounting to align with the primitives abo\n - `CALL` warms its `to` after charging the appropriate cold cost if cold.\n - A `PAY`-style pure value-move primitive, if present, does not warm its recipient and never loads code. It pays `WARM_STATE_READ = 100` if warm for unrelated reasons, else `COLD_ACCOUNT_COST_NOCODE = 500`, plus the value-write cost above.\n \n-- **Self-transfers.** If `from == to` then only one `STATE_UPDATE` occurs which is already factored into `TX_BASE_COST` as part of gas charge and nonce change, so only `TX_BASE_COST` is charged.\n+- **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (Is a NOP tx other than charging gas and incrementing nonce).\n \n ### Transaction reference cases\n \n@@ -228,7 +243,7 @@ This aligns costs with actual state work rather than legacy flat surcharges.\n \n - **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n - **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n-- **[EIP-7702](./eip-7702.md) (Set EOA Code).** Intrinsic gas uses `TX_BASE_COST`. Warmth rules are unchanged; if 7702 supplies code via the tx, clients need not fetch code from disk to decide between `COLD_ACCOUNT_COST_CODE` and `COLD_ACCOUNT_COST_NONCODE` for the initial touch.\n+- **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model.\n - **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n \n ## Rationale\n@@ -237,7 +252,9 @@ Price only what every transaction always does: ECDSA recovery, warming `sender`\n \n Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract) and one recipient leaf write, so its total is `6,000`.\n \n-When a value transfer creates a previously empty account, charge `GAS_NEW_ACCOUNT = 25,000`, identical to `CALL` account-creation pricing. `CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n+`CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n+\n+Legacy pricing undercharged top-level ETH transfers that created new accounts relative to internal `CALL`-based creations. This EIP corrects that by charging `GAS_NEW_ACCOUNT = 25,000`, identical to the `CALL` account-creation surcharge, ensuring consistent pricing for state growth regardless of entry path.\n \n This removes cross-subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n \n@@ -247,6 +264,8 @@ Bundling multiple transfers into a single contract call avoids repeated `TX_BASE\n \n Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n \n+This EIP composes cleanly with calldata-pricing proposals such as [EIP-7623](./eip-7623.md) and [EIP-7976](./eip-7976.md). Those EIPs affect `tx.data` metering, while this EIP adjusts only transaction-level intrinsic accounting. There is no overlapping scope.\n+\n ### Why not charge full tx data as calldata?\n \n - **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n@@ -338,6 +357,22 @@ Add explicit test vectors (intrinsic gas only):\n 4. `CREATE` transaction: unchanged from prior rules.\n 5. EIP-7702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access-list costs.\n 6. Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx).\n+7. Warmth and access list interplay\n+ - ETH transfer to existing EOA without access list: charge `COLD_ACCOUNT_COST_NOCODE = 500` for recipient lookup.\n+ - Same transaction with recipient in access list: charge `WARM_STATE_READ = 100`.\n+8. 7702 interactions\n+ - 7702 tx where sender assumes code and calls nothing: intrinsic = 4,500, no extra cold-code cost.\n+ - 7702 tx where sender assumes code and executes self-code: charge `COLD_ACCOUNT_COST_CODE` when first loaded.\n+9. Precompile transfers\n+ - `value > 0` to `0x01`\u2013`0x09`: intrinsic = 4,500, no surcharge.\n+10. Self-transfer `from == to`: total = 4,500.\n+11. Internal CALL repricing\n+ - Internal `CALL` to existing EOA with value: `CALL_VALUE_COST = 2,000` plus cold/warm costs.\n+ - Internal `CALL` to EIP-161-empty: `CALL_VALUE_COST = 26,000`.\n+12. Zero-value edge cases `value = 0` to empty address: intrinsic = `4,500`.\n+13. Perfnet stress\n+ - Fill block with minimal 4,500-gas tx and 6,000-gas ETH transfers; confirm gas vs byte-size binding per [EIP-7934](./eip-7934.md).\n+14. SELFDESTRUCT test: Create-and-destroy in one tx; confirm normal value-transfer costs apply, no deletion repricing.\n \n ## Security Considerations\n \n@@ -347,6 +382,8 @@ However this pricing should be the same as performing the component changes insi\n \n Current gaslimit testing mostly uses a block with a single transaction; so this should not cause unexpected load compared to what is already being tested.\n \n+The semantics of `SELFDESTRUCT` remain unchanged. Following [EIP-6780](./eip-6780.md), only contracts created within the same transaction may be fully deleted. This EIP does not reprice or modify any `SELFDESTRUCT` side-effects.\n+\n ## Copyright\n \n Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 26, "subject": "Update EIP-2780: Clarifications", "tokens": [ "21,000", "4,500", "MAX_RLP_BLOCK_SIZE = 10,485,760 - 2,097,152 = 8,388,608", "TX_BASE_COST", "16,500", "WARM_STATE_READ", "WARM_STORAGE_READ_COST", "GAS_NEW_ACCOUNT = 25,000", "STATE_UPDATE", "COLD_ACCOUNT_COST_NOCODE = 500", "30,000", "4,500 base + 500 lookup + 25,000 new-account surcharge", "CALL_VALUE_COST = 2,000", "from == to", "COLD_ACCOUNT_COST_CODE", "CREATE", "CALL", "tx.data", "WARM_STATE_READ = 100", "value > 0", "0x01", "0x09", "CALL_VALUE_COST = 26,000", "value = 0", "SELFDESTRUCT" ], "window": [] }, { "blob": "dc7b6176604166ec719e1f0e21408a4a2f199a1e", "candidates": [], "commit": "95b0b92a3bfded8cb2eb5a86add5972cb17b8871", "constants": [], "date": "2025-10-26T08:00:27Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex bbaaf3a0..dc7b6176 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -26,9 +26,13 @@ This EIP does not change calldata or access-list metering. It also refines relat\n \n Capacity impact (illustrative):\n \n-- Average: about +20.8% more transactions per block at unchanged gas limit.\n-- Max: up to ~320% more minimal transactions (pure ETH transfers).\n-- Equivalent gas-limit effect: roughly +20.8% (for example, 60M -> ~72.5M), with calldata and access-list metering unchanged.\n+| Metric | Result | Change | Description |\n+| --------------------------- | ----------------: | ------: |------------------------------------------------------------- |\n+| Max (minimal txs) | 13,333 tx / block | +367% | 4,500-gas minimal transactions per 60 M block |\n+| Max (ETH transfers) | 10,000 tx / block | +250% | 6,000-gas ETH transfers per 60 M block |\n+| Thoughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n+| Thoughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n+| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for ave tx usage (e.g., 60 M -> ~72.5 M) |\n \n ## Motivation\n \n", "order": 27, "subject": "Update EIP-2780: Formatting", "tokens": [], "window": [] }, { "blob": "923ab43fa8bcadb05186364bb9233a02e0efb153", "candidates": [], "commit": "bfd3e23acd07b3eac73f780313ef83413c4a0c40", "constants": [], "date": "2025-10-26T09:01:59Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex dc7b6176..923ab43f 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -32,7 +32,7 @@ Capacity impact (illustrative):\n | Max (ETH transfers) | 10,000 tx / block | +250% | 6,000-gas ETH transfers per 60 M block |\n | Thoughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n | Thoughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n-| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for ave tx usage (e.g., 60 M -> ~72.5 M) |\n+| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for ave tx usage (e.g., 60 M => ~72.5 M) |\n \n ## Motivation\n \n@@ -80,6 +80,23 @@ This EIP affects three independent levers:\n \n These levers are independent; this proposal changes only intrinsic gas, not calldata metering or access-list pricing.\n \n+### Monetary Effects\n+\n+Reducing ETH transfer cost from 21,000 => 6,000 gas (+250 % throughput for payments) increases the frequency and granularity of settlement.\n+At unchanged basefee, the minimum economical payment size on L1 falls by roughly 70 %, allowing more, smaller transactions to clear directly in ETH.\n+\n+That raises the **velocity of money** - balances turn over more often, and value circulates natively instead of being batched or routed through intermediaries.\n+\n+This improves ETH's **moneyness**:\n+\n+- **Medium of exchange:** lower friction makes direct ETH payments habitual rather than occasional.\n+- **Unit of account:** regular use for settlement encourages pricing and accounting in ETH terms.\n+- **Store of value:** explicit, workload-based gas costs build confidence in the system's fee realism.\n+\n+Price volatility may still lead users to prefer stablecoins for budgeting and short-term certainty, but removing artificial friction restores ETH's competitiveness where volatility tolerance already exists.\n+\n+The `25,000` surcharge on creating new accounts prices state growth honestly while keeping routine transfers cheaper and faster, promoting native ETH circulation without subsidising state expansion.\n+\n ### Equivalent gas-limit increase\n \n Lowering `TX_BASE_COST` from `21,000` to `4,500` removes up to `16,500` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n", "order": 28, "subject": "Update EIP-2780: Add Monetary Effects", "tokens": [ "25,000" ], "window": [] }, { "blob": "5b09bf7e29956e8037a538addf885b6ba4052ef0", "candidates": [], "commit": "d5e16901ed417747af2177275838c74075a61d38", "constants": [], "date": "2025-10-26T10:26:32Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 923ab43f..5b09bf7e 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -82,20 +82,35 @@ These levers are independent; this proposal changes only intrinsic gas, not call\n \n ### Monetary Effects\n \n-Reducing ETH transfer cost from 21,000 => 6,000 gas (+250 % throughput for payments) increases the frequency and granularity of settlement.\n-At unchanged basefee, the minimum economical payment size on L1 falls by roughly 70 %, allowing more, smaller transactions to clear directly in ETH.\n+Reducing ETH transfer cost from `21,000` => `6,000` gas increases both transaction frequency and viable payment granularity. At a fixed basefee, smaller payments become economical, raising the **velocity of money** - how often ETH changes hands on L1.\n \n-That raises the **velocity of money** - balances turn over more often, and value circulates natively instead of being batched or routed through intermediaries.\n+Let $g$ be gas per transaction, $b$ the basefee (in gwei), and $r$ the user's tolerated fee share of payment value.\n \n-This improves ETH's **moneyness**:\n+$v_{\\text{min}} = \\frac{g \\times b \\times 10^{-9}}{r}$\n \n-- **Medium of exchange:** lower friction makes direct ETH payments habitual rather than occasional.\n-- **Unit of account:** regular use for settlement encourages pricing and accounting in ETH terms.\n-- **Store of value:** explicit, workload-based gas costs build confidence in the system's fee realism.\n+Since $g$ drops from $21,000$ to $6,000$:\n \n-Price volatility may still lead users to prefer stablecoins for budgeting and short-term certainty, but removing artificial friction restores ETH's competitiveness where volatility tolerance already exists.\n+$\\frac{v_{\\text{min,new}}}{v_{\\text{min,old}}} = \\frac{6{,}000}{21{,}000} \\approx 0.29$\n \n-The `25,000` surcharge on creating new accounts prices state growth honestly while keeping routine transfers cheaper and faster, promoting native ETH circulation without subsidising state expansion.\n+The minimum economical L1 payment falls by about **71 %**, allowing more, smaller transfers to clear directly in ETH.\n+\n+From the quantity relation $M V = P Q$, with $M$ and $P$ roughly constant over short periods:\n+\n+$V_{\\text{new}} / V_{\\text{old}} \\approx Q_{\\text{new}} / Q_{\\text{old}}$\n+\n+Pure ETH-transfer capacity rises roughly **3.5x** (+250 %), and the lower $v_{\\text{min}}$ further increases $Q$ as more small-value payments become viable.\n+\n+Together these effects lift $V$, more frequent, smaller, native settlements without changing monetary supply.\n+\n+ETH thus gains moneyness:\n+\n+- **Medium of exchange:** direct use becomes routine, not exceptional.\n+- **Unit of account:** frequent native settlement encourages ETH-denominated pricing.\n+- **Store of value:** workload-based fees reinforce trust in cost realism.\n+\n+Price volatility may still lead users to prefer stablecoins for predictability, but this change removes unnecessary friction, restoring ETH\u2019s competitiveness wherever volatility is tolerable.\n+\n+The `25,000` surcharge for new-account creation continues to price state growth honestly while everyday transfers become cheaper and faster.\n \n ### Equivalent gas-limit increase\n \n", "order": 29, "subject": "Update EIP-2780: Add formula", "tokens": [ "21,000", "6,000", "25,000" ], "window": [] }, { "blob": "9541073cd50dbe8551daaa21e1ff125e0318f652", "candidates": [], "commit": "5c092808affade87ad04086b8ce0c41cb8d2b5dd", "constants": [], "date": "2026-01-21T16:22:52+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 5b09bf7e..9541073c 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -218,18 +218,18 @@ Clients compute intrinsic gas as today for each typed transaction **except**:\n \n ### Pseudocode (normative):\n \n-```text\n-function CalculateIntrinsicGas(tx, state_at_start):\n+```python\n+def CalculateIntrinsicGas(tx, state_at_start):\n gasCost = TX_BASE_COST\n \n- // Existing rules for calldata and access lists remain unchanged by this EIP.\n- gasCost += GasForCalldata(tx.data) // per active calldata pricing EIPs\n+ # Existing rules for calldata and access lists remain unchanged by this EIP.\n+ gasCost += GasForCalldata(tx.data) # per active calldata pricing EIPs\n if tx.has_access_list():\n- gasCost += GasForAccessList(tx.access_list) // per EIP-2930\n+ gasCost += GasForAccessList(tx.access_list) # per EIP-2930\n \n- if tx.is_create() == false\n+ if tx.is_create() == False\n and tx.value > 0\n- and is_precompile(tx.to) == false\n+ and is_precompile(tx.to) == False\n and is_nonexistent_per_eip161(state_at_start, tx.to):\n gasCost += GAS_NEW_ACCOUNT\n \n", "order": 30, "subject": "Update EIP-2780: fix pseudocode syntax", "tokens": [], "window": [] }, { "blob": "57cfe1dc032080eb8a9f1c76079bf6097a1969fa", "candidates": [], "commit": "c651e7c434d1a62f5b1216e819ab0d3a99f94c5d", "constants": [], "date": "2026-02-18T08:27:00Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 9541073c..57cfe1dc 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -304,7 +304,7 @@ This EIP composes cleanly with calldata-pricing proposals such as [EIP-7623](./e\n \n ### Why not charge full tx data as calldata?\n \n-- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signiture which contains `gas_limit`.\n+- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signature which contains `gas_limit`.\n \n - **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens [EIP-2718](./eip-2718.md) type neutrality and future formats such as SSZ. Calldata is treated as opaque bytes so it avoids this coupling.\n \n", "order": 31, "subject": "Update EIP-2780: Minor wording fix", "tokens": [ "gas_limit" ], "window": [] }, { "blob": "f0a7d5a4695c358ece69c1d6db4a316cdc05dd67", "candidates": [], "commit": "bfa214dc85a2a2d72d040c056cb7a33c126d2319", "constants": [], "date": "2026-03-03T20:56:13+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 57cfe1dc..f0a7d5a4 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -30,8 +30,8 @@ Capacity impact (illustrative):\n | --------------------------- | ----------------: | ------: |------------------------------------------------------------- |\n | Max (minimal txs) | 13,333 tx / block | +367% | 4,500-gas minimal transactions per 60 M block |\n | Max (ETH transfers) | 10,000 tx / block | +250% | 6,000-gas ETH transfers per 60 M block |\n-| Thoughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n-| Thoughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n+| Throughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n+| Throughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n | Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for ave tx usage (e.g., 60 M => ~72.5 M) |\n \n ## Motivation\n", "order": 32, "subject": "Update EIP-2780: fix typo", "tokens": [], "window": [] }, { "blob": "70277e9285890a04878703e7b9c63420f55658b8", "candidates": [], "commit": "bc8aef2b8f84507e6d6edd6b336ebb0c31649b7a", "constants": [], "date": "2026-03-03T12:57:00Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex f0a7d5a4..70277e92 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -190,7 +190,7 @@ Apply `GAS_NEW_ACCOUNT` when **all** are true:\n 3. `to` is not a precompile.\n 4. `to` is non-existent per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n \n-The `GAS_NEW_ACCOUNT = 25,000`charge covers state growth (new leaf creation and one `STATE_UPDATE`).\n+The `GAS_NEW_ACCOUNT = 25,000` charge covers state growth (new leaf creation and one `STATE_UPDATE`).\n An additional `COLD_ACCOUNT_COST_NOCODE = 500` applies for the initial lookup to determine that the account does not exist.\n \n Thus, the **total** intrinsic gas for a value-transferring transaction to a new account is `30,000` (`4,500 base + 500 lookup + 25,000 new-account surcharge`).\n@@ -304,7 +304,7 @@ This EIP composes cleanly with calldata-pricing proposals such as [EIP-7623](./e\n \n ### Why not charge full tx data as calldata?\n \n-- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration unstablity as `gas_limit` depends on signature which contains `gas_limit`.\n+- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration instability as `gas_limit` depends on signature which contains `gas_limit`.\n \n - **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens [EIP-2718](./eip-2718.md) type neutrality and future formats such as SSZ. Calldata is treated as opaque bytes so it avoids this coupling.\n \n", "order": 33, "subject": "Update EIP-2780: Fix minor text issues", "tokens": [ "GAS_NEW_ACCOUNT = 25,000", "STATE_UPDATE", "gas_limit" ], "window": [] }, { "blob": "2587f08c184be45ced7b3d7e94a9ef56849e0ad9", "candidates": [], "commit": "8d0c51073e3ced9edbf302e519500a586e09fcc9", "constants": [], "date": "2026-03-04T15:59:40+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 70277e92..2587f08c 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -13,7 +13,7 @@ requires: 1559, 2718, 2929, 2930\n \n ## Abstract\n \n-Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `6,000` from additional costs related to the `to` account.\n+Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `6,000` due to additional costs related to the `to` account.\n \n If a non-create transaction has `value > 0` and targets a non-existent account, charge `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth. When this surcharge applies, the recipient pays exactly one cold non-code touch; no code-load cost applies.\n \n@@ -32,7 +32,7 @@ Capacity impact (illustrative):\n | Max (ETH transfers) | 10,000 tx / block | +250% | 6,000-gas ETH transfers per 60 M block |\n | Throughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n | Throughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n-| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for ave tx usage (e.g., 60 M => ~72.5 M) |\n+| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for avg tx usage (e.g., 60 M => ~72.5 M) |\n \n ## Motivation\n \n@@ -42,7 +42,7 @@ Money has three basic functions: a unit of account, a medium of exchange, and a\n \n ETH underpins most onchain liquidity. Pairs are denominated in it, and gas is paid in it - a de-facto tax base that anchors value. Bitcoin's monetary role now runs mainly through exchange pairs, hence its drift in focus to store-of-value rather than medium-of-exchange. ETH still clears real activity onchain, yet outside NFTs few people think in ETH terms. In that niche ETH already functions as both unit and medium, but only for high-value items.\n \n-For ETH to operate fully as money, it must also handle small transactions. That was impractical when gas sat at 300 gwei, or even 90 gwei on quiet weekends. Post-4844, blobs absorb L2's \"pay at any price\" data and higher gaslimits ease congestion; cost, not capacity, is the bottleneck.\n+For ETH to operate fully as money, it must also handle small transactions. That was impractical when gas sat at 300 gwei, or even 90 gwei on quiet weekends. Post-4844, blobs absorb L2's \"pay at any price\" data and higher gas limits ease congestion; cost, not capacity, is the bottleneck.\n \n EIP-2780 lowers that fixed cost. By aligning the base gas with the real work of a transaction and by correcting `CALL` value pricing, it removes the legacy penalty on simple payments. Small transfers become viable again without subsidising calldata or storage. The same logic charges properly for new-account creation, so state growth remains priced in.\n \n@@ -259,7 +259,7 @@ These changes refine execution-layer accounting to align with the primitives abo\n - `CALL` warms its `to` after charging the appropriate cold cost if cold.\n - A `PAY`-style pure value-move primitive, if present, does not warm its recipient and never loads code. It pays `WARM_STATE_READ = 100` if warm for unrelated reasons, else `COLD_ACCOUNT_COST_NOCODE = 500`, plus the value-write cost above.\n \n-- **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (Is a NOP tx other than charging gas and incrementing nonce).\n+- **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (It is a NOP tx other than charging gas and incrementing nonce).\n \n ### Transaction reference cases\n \n@@ -412,9 +412,9 @@ Add explicit test vectors (intrinsic gas only):\n \n ## Security Considerations\n \n-As this significantly increases the max tx per block this carries risk.\n+As this significantly increases the max tx per block, this carries risk.\n \n-However this pricing should be the same as performing the component changes inside the transaction; and it factors in the additional costs from state growth which were not originally in the transaction base price.\n+However, this pricing should be the same as performing the component changes inside the transaction; and it factors in the additional costs from state growth which were not originally in the transaction base price.\n \n Current gaslimit testing mostly uses a block with a single transaction; so this should not cause unexpected load compared to what is already being tested.\n \n", "order": 34, "subject": "Update EIP-2780: fix typos and improve wording", "tokens": [ "TX_BASE_COST", "21,000", "4,500", "6,000", "to", "from == to", "STATE_UPDATE" ], "window": [] }, { "blob": "b3435a8472aa31be09fd6ffe124f43ab516e39d1", "candidates": [], "commit": "75e3e82c22f30dc8465ced0bbbf984b4f03e8667", "constants": [ { "after": [ "27", "3" ], "before": [ "26" ], "name": "CALL_VALUE_COST" }, { "after": [], "before": [ "26" ], "name": "GAS_NEW_ACCOUNT" }, { "after": [], "before": [ "2" ], "name": "STATE_UPDATE" }, { "after": [ "1", "1,756", "27", "3" ], "before": [], "name": "TRANSFER_LOG_COST" }, { "after": [], "before": [ "100" ], "name": "WARM_STATE_READ" } ], "date": "2026-04-08T10:15:07Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 2587f08c..b3435a84 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -8,12 +8,12 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 1559, 2718, 2929, 2930\n+requires: 1559, 2718, 2929, 2930, 7708\n ---\n \n ## Abstract\n \n-Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `6,000` due to additional costs related to the `to` account.\n+Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `7,756` due to additional costs related to the `to` account and the [EIP-7708](./eip-7708.md) transfer log.\n \n If a non-create transaction has `value > 0` and targets a non-existent account, charge `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth. When this surcharge applies, the recipient pays exactly one cold non-code touch; no code-load cost applies.\n \n@@ -21,17 +21,17 @@ This EIP does not change calldata or access-list metering. It also refines relat\n \n - Split cold-account touches into `COLD_ACCOUNT_COST_CODE = 2,600` and `COLD_ACCOUNT_COST_NOCODE = 500`.\n - Introduce `STATE_UPDATE = 1,000` as the price of a single account-leaf write.\n-- Reprice value-moving calls as account-leaf writes, replacing `CALL_VALUE_COST = 9,000` with `CALL_VALUE_COST = 2 * STATE_UPDATE = 2,000`.\n-- Specify that a `PAY`-style value-move primitive, if present, does not warm its recipient and never loads code (charged at `COLD_ACCOUNT_COST_NOCODE` if not already warmed).\n+- Reprice value-moving calls as account-leaf writes, replacing `CALL_VALUE_COST = 9,000` with `CALL_VALUE_COST = 2 * STATE_UPDATE + TRANSFER_LOG_COST = 3,756`.\n+- Charge `TRANSFER_LOG_COST = 1,756` for the [EIP-7708](./eip-7708.md) transfer log emitted on every nonzero-value transfer to a different account.\n \n Capacity impact (illustrative):\n \n | Metric | Result | Change | Description |\n | --------------------------- | ----------------: | ------: |------------------------------------------------------------- |\n | Max (minimal txs) | 13,333 tx / block | +367% | 4,500-gas minimal transactions per 60 M block |\n-| Max (ETH transfers) | 10,000 tx / block | +250% | 6,000-gas ETH transfers per 60 M block |\n+| Max (ETH transfers) | 7,735 tx / block | +171% | 7,756-gas ETH transfers per 60 M block |\n | Throughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n-| Throughput (ETH transfers) | ~833 TPS | +250% | 6,000-gas ETH transfers per 60 M block per 12sec |\n+| Throughput (ETH transfers) | ~645 TPS | +171% | 7,756-gas ETH transfers per 60 M block per 12sec |\n | Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for avg tx usage (e.g., 60 M => ~72.5 M) |\n \n ## Motivation\n@@ -82,23 +82,23 @@ These levers are independent; this proposal changes only intrinsic gas, not call\n \n ### Monetary Effects\n \n-Reducing ETH transfer cost from `21,000` => `6,000` gas increases both transaction frequency and viable payment granularity. At a fixed basefee, smaller payments become economical, raising the **velocity of money** - how often ETH changes hands on L1.\n+Reducing ETH transfer cost from `21,000` => `7,756` gas increases both transaction frequency and viable payment granularity. At a fixed basefee, smaller payments become economical, raising the **velocity of money** - how often ETH changes hands on L1.\n \n Let $g$ be gas per transaction, $b$ the basefee (in gwei), and $r$ the user's tolerated fee share of payment value.\n \n $v_{\\text{min}} = \\frac{g \\times b \\times 10^{-9}}{r}$\n \n-Since $g$ drops from $21,000$ to $6,000$:\n+Since $g$ drops from $21,000$ to $7,756$:\n \n-$\\frac{v_{\\text{min,new}}}{v_{\\text{min,old}}} = \\frac{6{,}000}{21{,}000} \\approx 0.29$\n+$\\frac{v_{\\text{min,new}}}{v_{\\text{min,old}}} = \\frac{7{,}756}{21{,}000} \\approx 0.37$\n \n-The minimum economical L1 payment falls by about **71 %**, allowing more, smaller transfers to clear directly in ETH.\n+The minimum economical L1 payment falls by about **63 %**, allowing more, smaller transfers to clear directly in ETH.\n \n From the quantity relation $M V = P Q$, with $M$ and $P$ roughly constant over short periods:\n \n $V_{\\text{new}} / V_{\\text{old}} \\approx Q_{\\text{new}} / Q_{\\text{old}}$\n \n-Pure ETH-transfer capacity rises roughly **3.5x** (+250 %), and the lower $v_{\\text{min}}$ further increases $Q$ as more small-value payments become viable.\n+Pure ETH-transfer capacity rises roughly **2.7x** (+171 %), and the lower $v_{\\text{min}}$ further increases $Q$ as more small-value payments become viable.\n \n Together these effects lift $V$, more frequent, smaller, native settlements without changing monetary supply.\n \n@@ -141,6 +141,7 @@ After `FORK_BLOCK`, set the following parameters and rules:\n | `COLD_ACCOUNT_COST_CODE` | 2,600 | Cold touch of an account with code |\n | `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n | `WARM_STATE_READ` | 100 | Touch of an already-warm account (same as `WARM_STORAGE_READ_COST`) |\n+| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) LOG3 transfer event (375 + 3\u00d7375 + 32\u00d78) |\n \n The intrinsic gas accounting defined here overrides [EIP-2929](./eip-2929.md)'s blanket \"all tx addresses are warm\" rule.\n \n@@ -166,7 +167,7 @@ Notes:\n \n - `STATE_UPDATE` counts writes at the account-leaf granularity. If a single account's nonce and balance both change in one transition, charge one `STATE_UPDATE`.\n - `COLD_ACCOUNT_COST_NOCODE` reflects that non-code accounts do not load code or a storage trie, so have a lower warming cost.\n-- A regular ETH transfer additionally includes a cold touch of at least `COLD_ACCOUNT_COST_NOCODE` and a `STATE_UPDATE` of the `to` address, so the effective minimal productive tx cost is `6,000`.\n+- A regular ETH transfer additionally includes a cold touch of at least `COLD_ACCOUNT_COST_NOCODE`, a `STATE_UPDATE` of the `to` address, and a `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log, so the effective minimal productive tx cost is `7,756`.\n - Not including the `to` cold warming and `STATE_UPDATE` in `TX_BASE_COST` means a contract-interaction transaction that does not transfer value does not unnecessarily pay these additional costs.\n \n ### Derivation (non-normative)\n@@ -193,16 +194,17 @@ Apply `GAS_NEW_ACCOUNT` when **all** are true:\n The `GAS_NEW_ACCOUNT = 25,000` charge covers state growth (new leaf creation and one `STATE_UPDATE`).\n An additional `COLD_ACCOUNT_COST_NOCODE = 500` applies for the initial lookup to determine that the account does not exist.\n \n-Thus, the **total** intrinsic gas for a value-transferring transaction to a new account is `30,000` (`4,500 base + 500 lookup + 25,000 new-account surcharge`).\n+Thus, the **total** intrinsic gas for a value-transferring transaction to a new account is `31,756` (`4,500 base + 500 lookup + 25,000 new-account surcharge + 1,756 transfer log`).\n \n-For reference, the **total** charges for such transfers change from 21,000 to 30,000.\n+For reference, the **total** charges for such transfers change from 21,000 to 31,756.\n \n | Component | Cost | Notes |\n | ------------------------ | ----------:| ---------------------------------------- |\n | TX_BASE_COST | 4,500 | Base transaction cost |\n-| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n-| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n-| **Total** | **30,000** | Sum of above (4,500 + 500 + 25,000) |\n+| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n+| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n+| TRANSFER_LOG_COST | 1,756 | EIP-7708 transfer log |\n+| **Total** | **31,756** | Sum of above (4,500 + 500 + 25,000 + 1,756) |\n \n Notes:\n \n@@ -227,6 +229,9 @@ def CalculateIntrinsicGas(tx, state_at_start):\n if tx.has_access_list():\n gasCost += GasForAccessList(tx.access_list) # per EIP-2930\n \n+ if tx.is_create() == False and tx.value > 0 and tx.sender != tx.to:\n+ gasCost += TRANSFER_LOG_COST # EIP-7708 transfer log\n+\n if tx.is_create() == False\n and tx.value > 0\n and is_precompile(tx.to) == False\n@@ -242,11 +247,13 @@ These changes refine execution-layer accounting to align with the primitives abo\n \n - **Value-moving calls.** Replace the legacy `CALL_VALUE_COST = 9,000` with:\n \n- - If recipient exists: `CALL_VALUE_COST = 2 * STATE_UPDATE = 2,000`.\n- - If recipient is EIP-161-empty: `CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT = 26,000`.\n+ - If `caller == to` (self-call): `CALL_VALUE_COST = STATE_UPDATE = 1,000`. No `TRANSFER_LOG_COST` is charged because [EIP-7708](./eip-7708.md) does not emit a transfer log for self-transfers.\n+ - If recipient exists and `caller != to`: `CALL_VALUE_COST = 2 * STATE_UPDATE + TRANSFER_LOG_COST = 3,756`.\n+ - If recipient is EIP-161-empty and `caller != to`: `CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT + TRANSFER_LOG_COST = 27,756`.\n - This charge is in addition to warm/cold account-touch costs per EIP-2929 and the existing `CALL` base cost. This EIP does not modify the `CALL` base cost.\n+ - `TRANSFER_LOG_COST` covers the [EIP-7708](./eip-7708.md) transfer log emitted for every nonzero-value transfer to a different account.\n \n- The `CALL_VALUE_COST = 2,000` applies for all value-carrying calls, regardless of whether the callee's account has already been updated earlier in the same transaction. This ensures the 2300-gas stipend mechanism remains safe and consistent for simple value forwarding and does not retroactively depend on account-update history.\n+ The `CALL_VALUE_COST` applies for all value-carrying calls, regardless of whether the callee's account has already been updated earlier in the same transaction. This ensures the 2300-gas stipend mechanism remains safe and consistent for simple value forwarding and does not retroactively depend on account-update history.\n \n - **Cold-account touches.**\n \n@@ -257,7 +264,6 @@ These changes refine execution-layer accounting to align with the primitives abo\n \n - Access-list entries (charged via [EIP-2930](./eip-2930.md)) and precompiles are warm at tx start.\n - `CALL` warms its `to` after charging the appropriate cold cost if cold.\n- - A `PAY`-style pure value-move primitive, if present, does not warm its recipient and never loads code. It pays `WARM_STATE_READ = 100` if warm for unrelated reasons, else `COLD_ACCOUNT_COST_NOCODE = 500`, plus the value-write cost above.\n \n - **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (It is a NOP tx other than charging gas and incrementing nonce).\n \n@@ -268,10 +274,10 @@ These changes refine execution-layer accounting to align with the primitives abo\n | (NOP) No-transfer to EOA | `TX_BASE_COST` | 4,500 |\n | (NOP) No-transfer to empty account | `TX_BASE_COST` | 4,500 |\n | (NOP) ETH transfer to self | `TX_BASE_COST` | 4,500 |\n-| ETH Transfer to existing EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `STATE_UPDATE` | 6,000 |\n+| ETH Transfer to existing EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` | 7,756 |\n | No-transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + **execution** | 7,100 + **execution** |\n-| ETH Transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + **execution** | 8,100 + **execution** |\n-| ETH Transfer creating new account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `GAS_NEW_ACCOUNT` | 30,000 |\n+| ETH Transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` + **execution** | 9,856 + **execution** |\n+| ETH Transfer creating new account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `GAS_NEW_ACCOUNT` + `TRANSFER_LOG_COST` | 31,756 |\n \n This aligns costs with actual state work rather than legacy flat surcharges.\n \n@@ -280,13 +286,14 @@ This aligns costs with actual state work rather than legacy flat surcharges.\n - **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n - **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n - **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model.\n+- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** EIP-7708 emits a LOG3 transfer event for every nonzero-value ETH transfer. Under the legacy `21,000` base this cost was absorbed; with a reduced base it must be charged explicitly. This EIP introduces `TRANSFER_LOG_COST = 1,756` (LOG3 equivalent: `375 + 3\u00d7375 + 32\u00d78`) applied to top-level value transfers, value-moving `CALL`s, and nonzero-value `SELFDESTRUCT` when it transfers value to a different account; for `SELFDESTRUCT`, the charge is applied at the point that transfer is processed.\n - **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n \n ## Rationale\n \n Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and one account-leaf write for the sender (nonce + balance change). That sums to `4,500` gas. Anything not universal should be metered separately.\n \n-Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract) and one recipient leaf write, so its total is `6,000`.\n+Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract), one recipient leaf write, and one [EIP-7708](./eip-7708.md) transfer log, so its total is `7,756`.\n \n `CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n \n@@ -310,7 +317,7 @@ This EIP composes cleanly with calldata-pricing proposals such as [EIP-7623](./e\n \n - **Policy targeting and market floor.** Calldata floors (for example [EIP-7623](./eip-7623.md) or [EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control-plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding-agnostic intrinsic base keeps the minimum inclusion price coupled to the basefee market, without opening a DoS vector.\n \n-- **Native settlement and unit-of-account.** Even though all transactions receive the same absolute gas reduction, it proportionally improves pristine ETH transfers more. With an ETH transfer at ~6,000 gas vs a permissioned ERC-20/LST/stablecoin transfer at ~48,000 gas, you get ~8x higher payment throughput per unit gas, which reinforces ETH as the settlement asset and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via smart contract operator).\n+- **Native settlement and unit-of-account.** Even though all transactions receive the same absolute gas reduction, it proportionally improves pristine ETH transfers more. With an ETH transfer at ~7,756 gas vs a permissioned ERC-20/LST/stablecoin transfer at ~48,000 gas, you get ~6x higher payment throughput per unit gas, which reinforces ETH as the settlement asset and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via smart contract operator).\n \n ![Figure 1](../assets/eip-2780/1.png)\n \n@@ -321,7 +328,7 @@ For execution-payload size, use [EIP-7934](./eip-7934.md)\u2019s 8 MiB uncompressed\n There are two useful ceilings to consider:\n \n - Minimal transaction with no value and no execution: `TX_BASE_COST = 4,500` gas.\n-- Minimal ETH payment to an existing EOA: `6,000` gas (`TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE`).\n+- Minimal ETH payment to an existing EOA: `7,756` gas (`TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE + TRANSFER_LOG_COST`).\n \n Counts below are `floor(gaslimit / per-tx-gas)`, then capped by `76,260` when the 8 MiB size limit binds. TPS figures round to the nearest integer.\n \n@@ -339,24 +346,24 @@ Binding point for size-cap dominance: `76,260 * 4,500 = 343,170,000` gas. At gas\n \n \u2020 Size cap binds at 450 M because 450 M > 343.17 M.\n \n-#### Scenario B: ETH transfers at 6,000 gas\n+#### Scenario B: ETH transfers at 7,756 gas\n \n-Binding point for size-cap dominance: `76,260 * 6,000 = 457,560,000` gas. At gaslimits below ~457.56 M, gas limits tx count; above it, the 8 MiB size cap dominates.\n+Binding point for size-cap dominance: `76,260 * 7,756 = 591,472,560` gas. At gaslimits below ~591.47 M, gas limits tx count; above it, the 8 MiB size cap dominates.\n \n-| Block gaslimit | Old tx/bk (21k) | New tx/bk (6k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n-| -------------: | --------------: | -------------: | --------: | -------: | -------: | ---------: |\n-| 45 M | 2,142 | 7,500 | 625 | 1,250 | 2,500 | 5,000 |\n-| 60 M | 2,857 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n-| 100 M | 4,761 | 16,666 | 1,389 | 2,778 | 5,555 | 11,111 |\n-| 200 M | 9,523 | 33,333 | 2,778 | 5,556 | 11,111 | 22,222 |\n-| 450 M | 21,428 | 75,000 | 6,250 | 12,500 | 25,000 | 50,000 |\n+| Block gaslimit | Old tx/bk (21k) | New tx/bk (7,756) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n+| -------------: | --------------: | ----------------: | --------: | -------: | -------: | ---------: |\n+| 45 M | 2,142 | 5,801 | 483 | 967 | 1,934 | 3,867 |\n+| 60 M | 2,857 | 7,735 | 644 | 1,289 | 2,578 | 5,157 |\n+| 100 M | 4,761 | 12,893 | 1,074 | 2,149 | 4,298 | 8,595 |\n+| 200 M | 9,523 | 25,786 | 2,149 | 4,298 | 8,595 | 17,191 |\n+| 450 M | 21,428 | 58,019 | 4,835 | 9,670 | 19,340 | 38,680 |\n \n #### Changes for common types of txs\n \n | Transaction Type | Old Cost | New Cost | Change |\n | ---------------------------------- | -------: | -------: | -----: |\n-| Simple ETH transfer (existing EOA) | 21,000 | 6,000 | \u221271 % |\n-| ETH transfer creating new EOA | 21,000 | 30,000 | +43 % |\n+| Simple ETH transfer (existing EOA) | 21,000 | 7,756 | \u221263 % |\n+| ETH transfer creating new EOA | 21,000 | 31,756 | +51 % |\n | ERC-20 transfer (typical) | 63,200 | 48,200 | \u221224 % |\n | ERC-20 transfer (Solady) | 33,400 | 18,400 | \u221245 % |\n | Uniswap v3 swap | 184,500 | 169,500 | \u22128 % |\n@@ -387,8 +394,8 @@ Tests should be created with blocks of just ETH transfers and tested on Perfnet\n \n Add explicit test vectors (intrinsic gas only):\n \n-1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `30,000` (4,500 base + 500 + 25,000 surcharge).\n-2. `value > 0` to a precompile: intrinsic `4,500` (no surcharge; precompiles are warm at tx start).\n+1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `31,756` (4,500 base + 500 + 25,000 surcharge + 1,756 transfer log).\n+2. `value > 0` to a precompile: intrinsic `6,256` (4,500 base + 1,756 transfer log; no surcharge; precompiles are warm at tx start).\n 3. `value = 0` to an empty address: intrinsic `4,500` (no creation, no surcharge).\n 4. `CREATE` transaction: unchanged from prior rules.\n 5. EIP-7702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access-list costs.\n@@ -400,14 +407,14 @@ Add explicit test vectors (intrinsic gas only):\n - 7702 tx where sender assumes code and calls nothing: intrinsic = 4,500, no extra cold-code cost.\n - 7702 tx where sender assumes code and executes self-code: charge `COLD_ACCOUNT_COST_CODE` when first loaded.\n 9. Precompile transfers\n- - `value > 0` to `0x01`\u2013`0x09`: intrinsic = 4,500, no surcharge.\n+ - `value > 0` to `0x01`\u2013`0x09`: intrinsic = 6,256 (4,500 base + 1,756 transfer log), no surcharge.\n 10. Self-transfer `from == to`: total = 4,500.\n 11. Internal CALL repricing\n- - Internal `CALL` to existing EOA with value: `CALL_VALUE_COST = 2,000` plus cold/warm costs.\n- - Internal `CALL` to EIP-161-empty: `CALL_VALUE_COST = 26,000`.\n+ - Internal `CALL` to existing EOA with value: `CALL_VALUE_COST = 3,756` plus cold/warm costs.\n+ - Internal `CALL` to EIP-161-empty: `CALL_VALUE_COST = 27,756`.\n 12. Zero-value edge cases `value = 0` to empty address: intrinsic = `4,500`.\n 13. Perfnet stress\n- - Fill block with minimal 4,500-gas tx and 6,000-gas ETH transfers; confirm gas vs byte-size binding per [EIP-7934](./eip-7934.md).\n+ - Fill block with minimal 4,500-gas tx and 7,756-gas ETH transfers; confirm gas vs byte-size binding per [EIP-7934](./eip-7934.md).\n 14. SELFDESTRUCT test: Create-and-destroy in one tx; confirm normal value-transfer costs apply, no deletion repricing.\n \n ## Security Considerations\n", "order": 35, "subject": "Update EIP-2780: Add transfer log cost, remove PAY", "tokens": [ "TX_BASE_COST", "21,000", "4,500", "7,756", "to", "CALL_VALUE_COST = 9,000", "CALL_VALUE_COST = 2 * STATE_UPDATE + TRANSFER_LOG_COST = 3,756", "TRANSFER_LOG_COST = 1,756", "TRANSFER_LOG_COST", "COLD_ACCOUNT_COST_NOCODE", "STATE_UPDATE", "31,756", "4,500 base + 500 lookup + 25,000 new-account surcharge + 1,756 transfer log", "caller == to", "CALL_VALUE_COST = STATE_UPDATE = 1,000", "caller != to", "CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT + TRANSFER_LOG_COST = 27,756", "CALL_VALUE_COST", "COLD_ACCOUNT_COST_CODE", "GAS_NEW_ACCOUNT", "375 + 3\u00d7375 + 32\u00d78", "CALL", "SELFDESTRUCT", "TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE + TRANSFER_LOG_COST", "76,260 * 7,756 = 591,472,560", "value > 0", "6,256", "0x01", "0x09", "CALL_VALUE_COST = 3,756", "CALL_VALUE_COST = 27,756" ], "window": [] }, { "blob": "c9af8b883f4a53e4e8f87a37decb015fe4964d30", "candidates": [], "commit": "c550387e917485af69a6999aea45270a555e2eb7", "constants": [ { "after": [ "2" ], "before": [], "name": "COLD_ACCOUNT_COST_CODE" }, { "after": [ "100" ], "before": [], "name": "WARM_STATE_READ" } ], "date": "2026-04-22T16:02:20+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex b3435a84..c9af8b88 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -157,6 +157,8 @@ A transaction\u2019s intrinsic base is decomposed into explicit primitives, so warm\n \n - if a contract, use `COLD_ACCOUNT_COST_CODE = 2,600`.\n \n+ - if a [EIP-7702](./eip-7702.md) delegated account, use `COLD_ACCOUNT_COST_CODE = 2,600`. The delegation target incurs an additional `COLD_ACCOUNT_COST_CODE = 2,600` if cold, or `WARM_STATE_READ = 100` if already warm.\n+\n - if a precompile, it is warm at tx start and charged zero.\n \n - Warmth discovered through an access list still applies and overrides the cold cost.\n@@ -271,12 +273,14 @@ These changes refine execution-layer accounting to align with the primitives abo\n \n | Case | Formula | Total Cost |\n | ----------------------------------- | ---------------------------------------------------------------- | -------------------------:|\n-| (NOP) No-transfer to EOA | `TX_BASE_COST` | 4,500 |\n-| (NOP) No-transfer to empty account | `TX_BASE_COST` | 4,500 |\n+| (NOP) No-transfer to EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` | 5,000 |\n+| (NOP) No-transfer to empty account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` | 5,000 |\n | (NOP) ETH transfer to self | `TX_BASE_COST` | 4,500 |\n | ETH Transfer to existing EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` | 7,756 |\n | No-transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + **execution** | 7,100 + **execution** |\n | ETH Transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` + **execution** | 9,856 + **execution** |\n+| No-transfer to 7702 delegated | `TX_BASE_COST` + `2 * COLD_ACCOUNT_COST_CODE` + **execution** | 9,700 + **execution** |\n+| ETH Transfer to 7702 delegated | `TX_BASE_COST` + `2 * COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` + **execution** | 12,456 + **execution** |\n | ETH Transfer creating new account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `GAS_NEW_ACCOUNT` + `TRANSFER_LOG_COST` | 31,756 |\n \n This aligns costs with actual state work rather than legacy flat surcharges.\n@@ -285,8 +289,9 @@ This aligns costs with actual state work rather than legacy flat surcharges.\n \n - **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n - **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n-- **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model.\n+- **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model. When `tx.to` is a 7702-delegated account, it is charged `COLD_ACCOUNT_COST_CODE = 2,600` at the intrinsic level. Resolving the delegation requires loading code from the delegation target, which incurs its own `COLD_ACCOUNT_COST_CODE = 2,600` if the target is cold, or `WARM_STATE_READ = 100` if already warm. This also applies to calls made to delegated accounts.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** EIP-7708 emits a LOG3 transfer event for every nonzero-value ETH transfer. Under the legacy `21,000` base this cost was absorbed; with a reduced base it must be charged explicitly. This EIP introduces `TRANSFER_LOG_COST = 1,756` (LOG3 equivalent: `375 + 3\u00d7375 + 32\u00d78`) applied to top-level value transfers, value-moving `CALL`s, and nonzero-value `SELFDESTRUCT` when it transfers value to a different account; for `SELFDESTRUCT`, the charge is applied at the point that transfer is processed.\n+- **[EIP-7928](./eip-7928.md) (Block-Level Access Lists).** The two-tier cold-access model (`COLD_ACCOUNT_COST_NOCODE` vs `COLD_ACCOUNT_COST_CODE`) requires loading the account from disk before the correct charge can be determined. For cold accounts, at least `COLD_ACCOUNT_COST_NOCODE` gas must be available before account access is attempted; if unavailable, the operation fails with out-of-gas without accessing the account. Once an account access is attempted, the account is added to the transaction's accessed set for the BAL. Thereafter, if the account is found to have code, the account read remains in the BAL even if the available gas is less than `COLD_ACCOUNT_COST_CODE` and the call frame fails with out-of-gas.\n - **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n \n ## Rationale\n", "order": 36, "subject": "Update EIP-2780: Clarify interactions with other EIPs", "tokens": [ "COLD_ACCOUNT_COST_CODE = 2,600", "WARM_STATE_READ = 100", "TX_BASE_COST", "COLD_ACCOUNT_COST_NOCODE", "2 * COLD_ACCOUNT_COST_CODE", "STATE_UPDATE", "TRANSFER_LOG_COST", "4,500", "COLD_ACCOUNT_COST_CODE", "WARM_STATE_READ", "tx.to" ], "window": [] }, { "blob": "0c5c3cc39a1a910e58add23df4d333142e342993", "candidates": [], "commit": "4b612eec2ef70611bba3e0819d137dcfb9b6cd81", "constants": [ { "after": [ "32" ], "before": [], "name": "GAS_CREATE" } ], "date": "2026-05-08T20:06:13+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex c9af8b88..0c5c3cc3 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -141,7 +141,7 @@ After `FORK_BLOCK`, set the following parameters and rules:\n | `COLD_ACCOUNT_COST_CODE` | 2,600 | Cold touch of an account with code |\n | `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n | `WARM_STATE_READ` | 100 | Touch of an already-warm account (same as `WARM_STORAGE_READ_COST`) |\n-| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) LOG3 transfer event (375 + 3\u00d7375 + 32\u00d78) |\n+| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) LOG3 transfer event (375 + 3\u00d7375 + 32\u00d78). See [EIP-7708](./eip-7708.md) for the full set of emission sites and their charging points. |\n \n The intrinsic gas accounting defined here overrides [EIP-2929](./eip-2929.md)'s blanket \"all tx addresses are warm\" rule.\n \n@@ -211,7 +211,7 @@ For reference, the **total** charges for such transfers change from 21,000 to 31\n Notes:\n \n - If `value = 0` and `to` is empty per [EIP-161](./eip-161.md), no account is created and no surcharge applies.\n-- `CREATE` transactions are unchanged; their cost already includes account creation.\n+- Top-level `CREATE` transactions with `value > 0` (see *Pseudocode*) pay `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log emitted on the endowment transfer.\n \n ### Intrinsic gas computation\n \n@@ -231,7 +231,11 @@ def CalculateIntrinsicGas(tx, state_at_start):\n if tx.has_access_list():\n gasCost += GasForAccessList(tx.access_list) # per EIP-2930\n \n- if tx.is_create() == False and tx.value > 0 and tx.sender != tx.to:\n+ # Charge for the EIP-7708 transfer log emitted on the tx-level value\n+ # transfer. CREATE transactions endow a freshly computed contract\n+ # address that is, by construction, distinct from the sender, so the\n+ # log applies whenever value > 0.\n+ if tx.value > 0 and (tx.is_create() or tx.sender != tx.to):\n gasCost += TRANSFER_LOG_COST # EIP-7708 transfer log\n \n if tx.is_create() == False\n@@ -269,6 +273,7 @@ These changes refine execution-layer accounting to align with the primitives abo\n \n - **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (It is a NOP tx other than charging gas and incrementing nonce).\n \n+\n ### Transaction reference cases\n \n | Case | Formula | Total Cost |\n@@ -290,7 +295,7 @@ This aligns costs with actual state work rather than legacy flat surcharges.\n - **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n - **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n - **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model. When `tx.to` is a 7702-delegated account, it is charged `COLD_ACCOUNT_COST_CODE = 2,600` at the intrinsic level. Resolving the delegation requires loading code from the delegation target, which incurs its own `COLD_ACCOUNT_COST_CODE = 2,600` if the target is cold, or `WARM_STATE_READ = 100` if already warm. This also applies to calls made to delegated accounts.\n-- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** EIP-7708 emits a LOG3 transfer event for every nonzero-value ETH transfer. Under the legacy `21,000` base this cost was absorbed; with a reduced base it must be charged explicitly. This EIP introduces `TRANSFER_LOG_COST = 1,756` (LOG3 equivalent: `375 + 3\u00d7375 + 32\u00d78`) applied to top-level value transfers, value-moving `CALL`s, and nonzero-value `SELFDESTRUCT` when it transfers value to a different account; for `SELFDESTRUCT`, the charge is applied at the point that transfer is processed.\n+- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** EIP-7708 emits a LOG3-shaped transfer event on every non-zero-value ETH transfer to a different account, and a LOG2-shaped burn event when ETH leaves circulation. Under the legacy `21,000` intrinsic base, the LOG3 cost of a transfer event was implicitly absorbed; with `TX_BASE_COST` reduced to `4,500`, that subsidy disappears and each emission must be priced explicitly. This EIP charges `TRANSFER_LOG_COST = 1,756` (LOG3 equivalent: `375 + 3\u00d7375 + 32\u00d78`) at intrinsic gas computation (see *Pseudocode*) for top-level value-transferring transactions, including `CREATE` transactions with `value > 0`. The corresponding in-EVM transfer-log and burn-log charges (`CALL`, `SELFDESTRUCT`, `CREATE` / `CREATE2`) are specified in [EIP-7708](./eip-7708.md).\n - **[EIP-7928](./eip-7928.md) (Block-Level Access Lists).** The two-tier cold-access model (`COLD_ACCOUNT_COST_NOCODE` vs `COLD_ACCOUNT_COST_CODE`) requires loading the account from disk before the correct charge can be determined. For cold accounts, at least `COLD_ACCOUNT_COST_NOCODE` gas must be available before account access is attempted; if unavailable, the operation fails with out-of-gas without accessing the account. Once an account access is attempted, the account is added to the transaction's accessed set for the BAL. Thereafter, if the account is found to have code, the account read remains in the BAL even if the available gas is less than `COLD_ACCOUNT_COST_CODE` and the call frame fails with out-of-gas.\n - **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n \n@@ -300,7 +305,7 @@ Price only what every transaction always does: ECDSA recovery, warming `sender`\n \n Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract), one recipient leaf write, and one [EIP-7708](./eip-7708.md) transfer log, so its total is `7,756`.\n \n-`CREATE` is unchanged because its cost already includes account creation. Access-list pricing is unchanged.\n+The `GAS_NEW_ACCOUNT` surcharge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE = 32,000` opcode base already prices account creation, and top-level `CREATE` transactions are not charged `GAS_CREATE` at all. Top-level `CREATE` transactions with `value > 0` do pay `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log. Access-list pricing is unchanged.\n \n Legacy pricing undercharged top-level ETH transfers that created new accounts relative to internal `CALL`-based creations. This EIP corrects that by charging `GAS_NEW_ACCOUNT = 25,000`, identical to the `CALL` account-creation surcharge, ensuring consistent pricing for state growth regardless of entry path.\n \n", "order": 37, "subject": "Update EIP-2780: Add missing 7708 log costs for CREATE with endowment", "tokens": [ "TRANSFER_LOG_COST", "CREATE", "value > 0", "21,000", "TX_BASE_COST", "4,500", "TRANSFER_LOG_COST = 1,756", "375 + 3\u00d7375 + 32\u00d78", "CALL", "SELFDESTRUCT", "CREATE2", "GAS_NEW_ACCOUNT", "GAS_CREATE = 32,000", "GAS_CREATE" ], "window": [] }, { "blob": "5ab97db18bb08e48331d1053c3620f25cfe4eb0c", "candidates": [], "commit": "55fda8316009b4eb33648bbea03e19aff1e0d472", "constants": [ { "after": [], "before": [ "2", "27", "3", "9", "STATE_UPDATE" ], "name": "CALL_VALUE_COST" }, { "after": [ "3" ], "before": [], "name": "COLD_ACCOUNT_ACCESS" }, { "after": [], "before": [ "2", "2,600" ], "name": "COLD_ACCOUNT_COST_CODE" }, { "after": [], "before": [ "500" ], "name": "COLD_ACCOUNT_COST_NOCODE" }, { "after": [ "11" ], "before": [], "name": "CREATE_ACCESS" }, { "after": [], "before": [ "32" ], "name": "GAS_CREATE" }, { "after": [ "375" ], "before": [], "name": "GAS_LOG_DATA_PER_BYTE" }, { "after": [], "before": [ "25", "25,000" ], "name": "GAS_NEW_ACCOUNT" }, { "after": [], "before": [ "10" ], "name": "MAX_RLP_BLOCK_SIZE" }, { "after": [], "before": [ "1", "1,000" ], "name": "STATE_UPDATE" }, { "after": [ "GAS_LOG" ], "before": [ "27", "3" ], "name": "TRANSFER_LOG_COST" }, { "after": [ "12", "12,000" ], "before": [ "4", "4,500" ], "name": "TX_BASE_COST" }, { "after": [ "4", "4,244" ], "before": [], "name": "TX_VALUE_COST" }, { "after": [], "before": [ "100" ], "name": "WARM_STATE_READ" } ], "date": "2026-06-18T14:40:52Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 0c5c3cc3..5ab97db1 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,441 +1,185 @@\n ---\n eip: 2780\n-title: Reduce intrinsic transaction gas\n-description: Reduce intrinsic transaction gas and charge 25k when a value transfer creates a new account\n+title: Resource-based intrinsic transaction gas\n+description: Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 1559, 2718, 2929, 2930, 7708\n+requires: 161, 2718, 2929, 2930, 6780, 7702, 7708, 7904, 7928, 8037, 8038\n ---\n \n ## Abstract\n \n-Reduce the intrinsic cost `TX_BASE_COST` from `21,000` to `4,500` and define a consistent gas accounting model based on actual state operations. This more granular approach makes a simple ETH transfer `7,756` due to additional costs related to the `to` account and the [EIP-7708](./eip-7708.md) transfer log.\n+This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes:\n \n-If a non-create transaction has `value > 0` and targets a non-existent account, charge `GAS_NEW_ACCOUNT = 25,000` to align with `CALL` account creation and price in state growth. When this surcharge applies, the recipient pays exactly one cold non-code touch; no code-load cost applies.\n+- `TX_BASE_COST = 12,000` \u2014 ECDSA recovery plus the sender account's access and write.\n+- `COLD_ACCOUNT_ACCESS = 3,000` \u2014 the recipient account touch, per [EIP-8038](./eip-8038.md).\n+- `TX_VALUE_COST = 4,244` \u2014 the recipient balance write performed by a value transfer.\n+- `TRANSFER_LOG_COST = 1,756` \u2014 the [EIP-7708](./eip-7708.md) transfer log.\n \n-This EIP does not change calldata or access-list metering. It also refines related gas schedule items used in derivation and execution accounting:\n+A plain ETH transfer to an existing account still costs `12,000 + 3,000 + 4,244 + 1,756 = 21,000` gas. The headline number is unchanged, but it is now built from measured components rather than a single legacy constant, so each transaction pays for the work it does and nothing it does not.\n \n-- Split cold-account touches into `COLD_ACCOUNT_COST_CODE = 2,600` and `COLD_ACCOUNT_COST_NOCODE = 500`.\n-- Introduce `STATE_UPDATE = 1,000` as the price of a single account-leaf write.\n-- Reprice value-moving calls as account-leaf writes, replacing `CALL_VALUE_COST = 9,000` with `CALL_VALUE_COST = 2 * STATE_UPDATE + TRANSFER_LOG_COST = 3,756`.\n-- Charge `TRANSFER_LOG_COST = 1,756` for the [EIP-7708](./eip-7708.md) transfer log emitted on every nonzero-value transfer to a different account.\n+Transactions that grow the state \u2014 value transfers that create a new account and contract-creation transactions \u2014 additionally pay `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas, per [EIP-8037](./eip-8037.md). These transactions therefore cost more than `21,000`, internalizing the cost of state growth that the flat base previously left unpriced.\n \n-Capacity impact (illustrative):\n-\n-| Metric | Result | Change | Description |\n-| --------------------------- | ----------------: | ------: |------------------------------------------------------------- |\n-| Max (minimal txs) | 13,333 tx / block | +367% | 4,500-gas minimal transactions per 60 M block |\n-| Max (ETH transfers) | 7,735 tx / block | +171% | 7,756-gas ETH transfers per 60 M block |\n-| Throughput (minimal txs) | ~1,111 TPS | +367% | 4,500-gas minimal transactions per 60 M block per 12sec |\n-| Throughput (ETH transfers) | ~645 TPS | +171% | 7,756-gas ETH transfers per 60 M block per 12sec |\n-| Equivalent gas-limit uplift | \u2248 +20.8% | - | Effective throughput gain for avg tx usage (e.g., 60 M => ~72.5 M) |\n+This EIP does not change calldata, access-list, or authorization metering.\n \n ## Motivation\n \n-**Monetary Context**\n-\n-Money has three basic functions: a unit of account, a medium of exchange, and a store of value. ETH already meets the last two by design. It carries value without an issuer and settles with finality. Where it falls short is in everyday exchange - the friction of use rather than the nature of the asset.\n-\n-ETH underpins most onchain liquidity. Pairs are denominated in it, and gas is paid in it - a de-facto tax base that anchors value. Bitcoin's monetary role now runs mainly through exchange pairs, hence its drift in focus to store-of-value rather than medium-of-exchange. ETH still clears real activity onchain, yet outside NFTs few people think in ETH terms. In that niche ETH already functions as both unit and medium, but only for high-value items.\n-\n-For ETH to operate fully as money, it must also handle small transactions. That was impractical when gas sat at 300 gwei, or even 90 gwei on quiet weekends. Post-4844, blobs absorb L2's \"pay at any price\" data and higher gas limits ease congestion; cost, not capacity, is the bottleneck.\n-\n-EIP-2780 lowers that fixed cost. By aligning the base gas with the real work of a transaction and by correcting `CALL` value pricing, it removes the legacy penalty on simple payments. Small transfers become viable again without subsidising calldata or storage. The same logic charges properly for new-account creation, so state growth remains priced in.\n-\n-- **Unit of account:** When transfers are cheap and regular, people price in ETH because they use it directly. This proposal turns that habit into equilibrium rather than idealism.\n-\n-- **Medium of exchange:** Reducing `TX_BASE_COST` eliminates the old friction that slowed native circulation. Settlement becomes frequent, not occasional.\n-\n-- **Store of value:** Honest pricing reinforces confidence that ETH's cost structure is grounded in real computation, not arbitrary constants.\n-\n-- **Velocity:** Lower friction raises the rate of final settlement; more frequent, smaller clears in native ETH, without altering calldata or storage economics.\n-\n-- **Monetary competition:** Stablecoins and LSTs are welcome, but they compete for onchain \"moneyness\". Making native ETH easy to spend keeps it central; not just the fuel, but the money of the system.\n-\n-**Note:** This proposal doesn't target ETH specifically, the lower base cost applies to every transaction type. However since `TX_BASE_COST` makes up nearly all of an ETH transfer's gas, while it's only a small fraction of contract calls, ETH loses the most friction and gains the most velocity.\n-\n-**Specifics**\n-\n-The legacy `21,000` base no longer matches the universal work path under warm/cold accounting. Decomposed into signature recovery, one account-leaf write for the sender (nonce + balance coalesced), and one cold non-code touch (sender), the universal path totals `4,500` gas.\n-\n-State growth is underpriced for top-level value transfers that create accounts, while `CALL` pays explicit creation. Charging `25,000` when a transfer creates an account aligns entry points and internalizes state growth.\n-\n-A lower base removes the distortion that over-incentivized batching solely to dodge `TX_BASE_COST`, without subsidizing calldata or storage. The refinement of value-transfer costs and cold-account pricing makes execution charges proportional to actual state work: account touches and leaf writes.\n-\n-We intentionally do **not** charge per-byte gas for the transaction envelope (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`). Calldata pricing applies only to `tx.data`. A plain ETH payment has empty `tx.data`, so it pays zero calldata gas. Lowering `TX_BASE_COST` to the universal work path makes ETH payments cheaper without subsidizing arbitrary calldata.\n-\n-### Throughput, payload, and basefee dynamics\n-\n-This EIP affects three independent levers:\n-\n-1. **Gas-limit equivalence:** Reducing the base cost from `21,000` to `4,500` increases transaction capacity at a fixed block gaslimit by approximately +20.8%.\n-\n-2. **Payload-size bounds:** Per [EIP-7934](./eip-7934.md) the execution payload cap is `MAX_RLP_BLOCK_SIZE = 10,485,760 - 2,097,152 = 8,388,608` bytes. Payload size, not gas, may become the dominant block-size constraint at high gaslimits.\n-\n-3. **Basefee market dynamics:** Lower intrinsic gas reduces the average gas per tx, temporarily increasing utilisation and causing short-term downward adjustment in basefee. Over time, equilibrium restores as inclusion policies adapt.\n-\n-These levers are independent; this proposal changes only intrinsic gas, not calldata metering or access-list pricing.\n-\n-### Monetary Effects\n+The flat `21,000` intrinsic cost charges every transaction the same amount regardless of what it does. A zero-value transaction to an existing account and a value transfer that creates a new account both pay `21,000`, even though the latter touches an extra account, writes an extra balance, emits a log, and permanently grows the state. The single constant both over-prices the simplest paths and under-prices the ones that consume real, lasting resources.\n \n-Reducing ETH transfer cost from `21,000` => `7,756` gas increases both transaction frequency and viable payment granularity. At a fixed basefee, smaller payments become economical, raising the **velocity of money** - how often ETH changes hands on L1.\n+This EIP replaces the constant with a decomposition into named primitives, each priced to the resource it represents. The goal is to make every transaction's intrinsic cost reflect its actual work:\n \n-Let $g$ be gas per transaction, $b$ the basefee (in gwei), and $r$ the user's tolerated fee share of payment value.\n-\n-$v_{\\text{min}} = \\frac{g \\times b \\times 10^{-9}}{r}$\n-\n-Since $g$ drops from $21,000$ to $7,756$:\n-\n-$\\frac{v_{\\text{min,new}}}{v_{\\text{min,old}}} = \\frac{7{,}756}{21{,}000} \\approx 0.37$\n-\n-The minimum economical L1 payment falls by about **63 %**, allowing more, smaller transfers to clear directly in ETH.\n-\n-From the quantity relation $M V = P Q$, with $M$ and $P$ roughly constant over short periods:\n-\n-$V_{\\text{new}} / V_{\\text{old}} \\approx Q_{\\text{new}} / Q_{\\text{old}}$\n-\n-Pure ETH-transfer capacity rises roughly **2.7x** (+171 %), and the lower $v_{\\text{min}}$ further increases $Q$ as more small-value payments become viable.\n-\n-Together these effects lift $V$, more frequent, smaller, native settlements without changing monetary supply.\n-\n-ETH thus gains moneyness:\n-\n-- **Medium of exchange:** direct use becomes routine, not exceptional.\n-- **Unit of account:** frequent native settlement encourages ETH-denominated pricing.\n-- **Store of value:** workload-based fees reinforce trust in cost realism.\n-\n-Price volatility may still lead users to prefer stablecoins for predictability, but this change removes unnecessary friction, restoring ETH\u2019s competitiveness wherever volatility is tolerable.\n-\n-The `25,000` surcharge for new-account creation continues to price state growth honestly while everyday transfers become cheaper and faster.\n-\n-### Equivalent gas-limit increase\n-\n-Lowering `TX_BASE_COST` from `21,000` to `4,500` removes up to `16,500` gas per transaction. Using recent totals of 163\u202fGgas/day and 1.7\u202fM tx/day:\n-\n-| Metric | Calculation | Result | Change |\n-| ---------------------------- | ---------------:| ---------------:| ---------:|\n-| Avg gas per tx | 163Bn / 1.7M | \u2248 95,882 gas | - |\n-| New avg gas per tx | 95,882 \u2212 16,500 | \u2248 79,382 gas | - |\n-| Throughput at fixed gaslimit | 95,882 / 79,382 | \u2248 x1.208 | +20.08% |\n-| Daily tx at same gas usage | 1.7M \u00d7 1.208 | \u2248 2.053M tx/day | +340k/day |\n-\n-Perfnet measurements show EL clients handle >300 MGas/s for pure ETH transfers. Expressed under a 4.5k base this corresponds to `300 * (4.5/21) ~ 64.3 MGas/s`, i.e. `~771 MGas` per 12 s slot. This indicates sufficient headroom and that the current base is significantly overcharged, so no extra engineering is required to improve performance to support this change.\n-\n-Net effect equals raising a 45 M gas limit to ~54.4 M at unchanged calldata and access-list metering. This directly advances Scaling L1.\n+- **Accuracy.** Signature recovery, account accesses, account writes, the transfer log, and state creation are billed separately, so cost tracks usage.\n+- **State growth is internalized.** A value transfer that creates an account, like a contract-creation transaction, pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. This aligns top-level value transfers with internal `CALL`-based account creation, which already pays for the new leaf, and prices the durable state cost the flat base ignored.\n+- **Composability.** Pricing intrinsic cost as a sum of the same primitives used elsewhere in the gas schedule lets future repricings (e.g. of cold-account access in [EIP-8038](./eip-8038.md), or of state bytes in [EIP-8037](./eip-8037.md)) flow through automatically, without re-deriving a bespoke constant.\n \n ## Specification\n \n-After `FORK_BLOCK`, set the following parameters and rules:\n-\n ### Parameters\n \n-| Name | Value | Description |\n-| -------------------------- | -----: | ----------------------------------------------------------------------- |\n-| `TX_BASE_COST` | 4,500 | Base cost of any transaction |\n-| `GAS_NEW_ACCOUNT` | 25,000 | Surcharge when a value-transferring transaction creates a new account |\n-| `STATE_UPDATE` | 1,000 | One account-leaf write in the account trie (nonce and balance coalesce) |\n-| `COLD_ACCOUNT_COST_CODE` | 2,600 | Cold touch of an account with code |\n-| `COLD_ACCOUNT_COST_NOCODE` | 500 | Cold touch of an account known to have no code |\n-| `WARM_STATE_READ` | 100 | Touch of an already-warm account (same as `WARM_STORAGE_READ_COST`) |\n-| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) LOG3 transfer event (375 + 3\u00d7375 + 32\u00d78). See [EIP-7708](./eip-7708.md) for the full set of emission sites and their charging points. |\n-\n-The intrinsic gas accounting defined here overrides [EIP-2929](./eip-2929.md)'s blanket \"all tx addresses are warm\" rule.\n-\n-A transaction\u2019s intrinsic base is decomposed into explicit primitives, so warmth must be priced explicitly.\n-\n-- `tx.sender` is charged as a cold non-code account (`COLD_ACCOUNT_COST_NOCODE = 500`), representing the first access and coalesced account-leaf update.\n-\n-- `tx.to` is charged based on its type:\n+| Name | Value | Definition |\n+| :----: | :----: | :---- |\n+| `TX_BASE_COST` | 12,000 | Sender cost: ECDSA recovery, the sender's account access, and the sender's account write |\n+| `TX_VALUE_COST` | 4,244 | Recipient balance write performed by a value transfer |\n+| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) transfer log: `GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE` |\n \n- - if a contract create, charge under those rules.\n+The following values are referenced from other EIPs and are not final:\n \n- - if an EOA or an empty account, use `COLD_ACCOUNT_COST_NOCODE = 500`.\n+- `COLD_ACCOUNT_ACCESS = 3,000` and `CREATE_ACCESS = 11,000`, per [EIP-8038](./eip-8038.md).\n+- `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB = 183,600`, per [EIP-8037](./eip-8037.md). This value changes whenever a fork changes `CPSB`.\n \n- - if a contract, use `COLD_ACCOUNT_COST_CODE = 2,600`.\n+Regular-gas and state-gas semantics are defined by [EIP-8037](./eip-8037.md).\n \n- - if a [EIP-7702](./eip-7702.md) delegated account, use `COLD_ACCOUNT_COST_CODE = 2,600`. The delegation target incurs an additional `COLD_ACCOUNT_COST_CODE = 2,600` if cold, or `WARM_STATE_READ = 100` if already warm.\n+### Intrinsic gas costs\n \n- - if a precompile, it is warm at tx start and charged zero.\n+A transaction's intrinsic base cost is decomposed into the following explicit primitives:\n \n-- Warmth discovered through an access list still applies and overrides the cold cost.\n-\n-This decomposition replaces the implicit warmth assumptions of [EIP-2929](./eip-2929.md) and makes the per-account cost explicit in the base or the execution phase as appropriate.\n-\n-Notes:\n-\n-- `STATE_UPDATE` counts writes at the account-leaf granularity. If a single account's nonce and balance both change in one transition, charge one `STATE_UPDATE`.\n-- `COLD_ACCOUNT_COST_NOCODE` reflects that non-code accounts do not load code or a storage trie, so have a lower warming cost.\n-- A regular ETH transfer additionally includes a cold touch of at least `COLD_ACCOUNT_COST_NOCODE`, a `STATE_UPDATE` of the `to` address, and a `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log, so the effective minimal productive tx cost is `7,756`.\n-- Not including the `to` cold warming and `STATE_UPDATE` in `TX_BASE_COST` means a contract-interaction transaction that does not transfer value does not unnecessarily pay these additional costs.\n-\n-### Derivation (non-normative)\n-\n-Decomposition of the base cost into universal primitives:\n-\n-| Component | Cost | Notes |\n-| ------------------------ | --------: | -------------------------------------------------- |\n-| ECRECOVER | 3,000 | Elliptic curve signature recovery |\n-| STATE_UPDATE | 1,000 | One account-leaf write (nonce + balance coalesced) |\n-| COLD_ACCOUNT_COST_NOCODE | 500 | Sender is cold and has no code |\n-| **TX_BASE_COST** | **4,500** | Sum of above (3,000 + 1,000 + 500) |\n-\n-\n-### New-account surcharge\n-\n-Apply `GAS_NEW_ACCOUNT` when **all** are true:\n-\n-1. The transaction is not a `CREATE` transaction.\n-2. `value > 0`.\n-3. `to` is not a precompile.\n-4. `to` is non-existent per [EIP-161](./eip-161.md) emptiness at the start of transaction execution.\n-\n-The `GAS_NEW_ACCOUNT = 25,000` charge covers state growth (new leaf creation and one `STATE_UPDATE`).\n-An additional `COLD_ACCOUNT_COST_NOCODE = 500` applies for the initial lookup to determine that the account does not exist.\n-\n-Thus, the **total** intrinsic gas for a value-transferring transaction to a new account is `31,756` (`4,500 base + 500 lookup + 25,000 new-account surcharge + 1,756 transfer log`).\n-\n-For reference, the **total** charges for such transfers change from 21,000 to 31,756.\n-\n-| Component | Cost | Notes |\n-| ------------------------ | ----------:| ---------------------------------------- |\n-| TX_BASE_COST | 4,500 | Base transaction cost |\n-| COLD_ACCOUNT_COST_NOCODE | 500 | Recipient cold lookup (execution charge) |\n-| GAS_NEW_ACCOUNT | 25,000 | Account creation, includes leaf write |\n-| TRANSFER_LOG_COST | 1,756 | EIP-7708 transfer log |\n-| **Total** | **31,756** | Sum of above (4,500 + 500 + 25,000 + 1,756) |\n-\n-Notes:\n-\n-- If `value = 0` and `to` is empty per [EIP-161](./eip-161.md), no account is created and no surcharge applies.\n-- Top-level `CREATE` transactions with `value > 0` (see *Pseudocode*) pay `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log emitted on the endowment transfer.\n-\n-### Intrinsic gas computation\n-\n-Clients compute intrinsic gas as today for each typed transaction **except**:\n-\n-- Replace any hardcoded `21,000` with `TX_BASE_COST = 4,500`.\n-- Add `GAS_NEW_ACCOUNT` when the *New-account surcharge* conditions hold.\n-\n-### Pseudocode (normative):\n-\n-```python\n-def CalculateIntrinsicGas(tx, state_at_start):\n- gasCost = TX_BASE_COST\n-\n- # Existing rules for calldata and access lists remain unchanged by this EIP.\n- gasCost += GasForCalldata(tx.data) # per active calldata pricing EIPs\n- if tx.has_access_list():\n- gasCost += GasForAccessList(tx.access_list) # per EIP-2930\n-\n- # Charge for the EIP-7708 transfer log emitted on the tx-level value\n- # transfer. CREATE transactions endow a freshly computed contract\n- # address that is, by construction, distinct from the sender, so the\n- # log applies whenever value > 0.\n- if tx.value > 0 and (tx.is_create() or tx.sender != tx.to):\n- gasCost += TRANSFER_LOG_COST # EIP-7708 transfer log\n-\n- if tx.is_create() == False\n- and tx.value > 0\n- and is_precompile(tx.to) == False\n- and is_nonexistent_per_eip161(state_at_start, tx.to):\n- gasCost += GAS_NEW_ACCOUNT\n-\n- return gasCost\n-```\n-\n-### EVM gas schedule adjustments\n-\n-These changes refine execution-layer accounting to align with the primitives above.\n-\n-- **Value-moving calls.** Replace the legacy `CALL_VALUE_COST = 9,000` with:\n-\n- - If `caller == to` (self-call): `CALL_VALUE_COST = STATE_UPDATE = 1,000`. No `TRANSFER_LOG_COST` is charged because [EIP-7708](./eip-7708.md) does not emit a transfer log for self-transfers.\n- - If recipient exists and `caller != to`: `CALL_VALUE_COST = 2 * STATE_UPDATE + TRANSFER_LOG_COST = 3,756`.\n- - If recipient is EIP-161-empty and `caller != to`: `CALL_VALUE_COST = STATE_UPDATE + GAS_NEW_ACCOUNT + TRANSFER_LOG_COST = 27,756`.\n- - This charge is in addition to warm/cold account-touch costs per EIP-2929 and the existing `CALL` base cost. This EIP does not modify the `CALL` base cost.\n- - `TRANSFER_LOG_COST` covers the [EIP-7708](./eip-7708.md) transfer log emitted for every nonzero-value transfer to a different account.\n+- `tx.sender` is charged `TX_BASE_COST` in regular gas, accounting for one ECDSA recovery and the sender's account access and write.\n+- `tx.to` is charged based on its type:\n+ - if self-transfer (`tx.sender == tx.to`), there are no charges;\n+ - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in regular gas and `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n+ - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas.\n+- `tx.value` is charged based on its value:\n+ - if zero, there are no charges;\n+ - if non-zero and self-transfer, there are no charges;\n+ - if non-zero and contract creation, charge `TRANSFER_LOG_COST` in regular gas;\n+ - otherwise, charge `TRANSFER_LOG_COST + TX_VALUE_COST` in regular gas.\n \n- The `CALL_VALUE_COST` applies for all value-carrying calls, regardless of whether the callee's account has already been updated earlier in the same transaction. This ensures the 2300-gas stipend mechanism remains safe and consistent for simple value forwarding and does not retroactively depend on account-update history.\n+The `tx.sender`, `tx.to`, and (where applicable) delegation-target charges above are always at the cold rate. Access lists do not warm these transaction-level accounts; access-list warming applies only to subsequent execution-level touches.\n \n-- **Cold-account touches.**\n+These charges replace the contract-creation transaction charges. All other intrinsic costs (calldata, access list, and authorizations) remain unchanged.\n \n- - Use `COLD_ACCOUNT_COST_CODE = 2,600` when touching an account with code.\n- - Use `COLD_ACCOUNT_COST_NOCODE = 500` when touching an account known to have no code.\n+### Transaction's top-level gas costs\n \n-- **Warmth policy.**\n+During execution, before any opcode is executed, the recipient account is loaded and the following gas costs are charged:\n \n- - Access-list entries (charged via [EIP-2930](./eip-2930.md)) and precompiles are warm at tx start.\n- - `CALL` warms its `to` after charging the appropriate cold cost if cold.\n+- if the recipient is empty per [EIP-161](./eip-161.md) and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n+- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, charge an additional `COLD_ACCOUNT_ACCESS` in regular gas;\n+- otherwise, there are no charges.\n \n-- **Self-transfers.** If `from == to`, only one `STATE_UPDATE` occurs. The sender's nonce and balance update are coalesced into the same leaf write. No recipient lookup or separate write is charged. (It is a NOP tx other than charging gas and incrementing nonce).\n+These charges are evaluated **after** [EIP-7702](./eip-7702.md) authorizations are applied. A `tx.to` whose account is materialized by an authorization in the same transaction is therefore no longer EIP-161-empty when this phase runs, so the new-account state charge does not fire; that account's creation is already priced by the authorization's `PER_EMPTY_ACCOUNT_COST`.\n \n+If a contract-creation transaction's initcode reverts, the transaction remains valid. In that case `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` is not charged and is refilled to the `state_gas_reservoir`, per [EIP-8037](./eip-8037.md). A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way.\n \n ### Transaction reference cases\n \n-| Case | Formula | Total Cost |\n-| ----------------------------------- | ---------------------------------------------------------------- | -------------------------:|\n-| (NOP) No-transfer to EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` | 5,000 |\n-| (NOP) No-transfer to empty account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` | 5,000 |\n-| (NOP) ETH transfer to self | `TX_BASE_COST` | 4,500 |\n-| ETH Transfer to existing EOA | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` | 7,756 |\n-| No-transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + **execution** | 7,100 + **execution** |\n-| ETH Transfer to contract | `TX_BASE_COST` + `COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` + **execution** | 9,856 + **execution** |\n-| No-transfer to 7702 delegated | `TX_BASE_COST` + `2 * COLD_ACCOUNT_COST_CODE` + **execution** | 9,700 + **execution** |\n-| ETH Transfer to 7702 delegated | `TX_BASE_COST` + `2 * COLD_ACCOUNT_COST_CODE` + `STATE_UPDATE` + `TRANSFER_LOG_COST` + **execution** | 12,456 + **execution** |\n-| ETH Transfer creating new account | `TX_BASE_COST` + `COLD_ACCOUNT_COST_NOCODE` + `GAS_NEW_ACCOUNT` + `TRANSFER_LOG_COST` | 31,756 |\n-\n-This aligns costs with actual state work rather than legacy flat surcharges.\n-\n-### Edits and interactions with other EIPs\n-\n-- **[EIP-2930](./eip-2930.md) (Access List).** Intrinsic gas is `TX_BASE_COST` after `FORK_BLOCK`. Access lists keep their existing per-entry charges and warming semantics.\n-- **[EIP-2929](./eip-2929.md) (Gas cost increases for state access).** Refined by this EIP to price non-code cold touches at `500` and code-account cold touches at `2,600`.\n-- **[EIP-7702](./eip-7702.md) (Set EOA Code).** `TX_BASE_COST` remains `4,500` even if the sender temporarily assumes code for the transaction. Clients must not perform any disk code-load to determine sender type, since 7702 provides code inline. If the transaction executes code that reads or executes its own code, normal `COLD_ACCOUNT_COST_CODE` or `WARM_STATE_READ` costs apply at execution time as per the standard cold/warm model. When `tx.to` is a 7702-delegated account, it is charged `COLD_ACCOUNT_COST_CODE = 2,600` at the intrinsic level. Resolving the delegation requires loading code from the delegation target, which incurs its own `COLD_ACCOUNT_COST_CODE = 2,600` if the target is cold, or `WARM_STATE_READ = 100` if already warm. This also applies to calls made to delegated accounts.\n-- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** EIP-7708 emits a LOG3-shaped transfer event on every non-zero-value ETH transfer to a different account, and a LOG2-shaped burn event when ETH leaves circulation. Under the legacy `21,000` intrinsic base, the LOG3 cost of a transfer event was implicitly absorbed; with `TX_BASE_COST` reduced to `4,500`, that subsidy disappears and each emission must be priced explicitly. This EIP charges `TRANSFER_LOG_COST = 1,756` (LOG3 equivalent: `375 + 3\u00d7375 + 32\u00d78`) at intrinsic gas computation (see *Pseudocode*) for top-level value-transferring transactions, including `CREATE` transactions with `value > 0`. The corresponding in-EVM transfer-log and burn-log charges (`CALL`, `SELFDESTRUCT`, `CREATE` / `CREATE2`) are specified in [EIP-7708](./eip-7708.md).\n-- **[EIP-7928](./eip-7928.md) (Block-Level Access Lists).** The two-tier cold-access model (`COLD_ACCOUNT_COST_NOCODE` vs `COLD_ACCOUNT_COST_CODE`) requires loading the account from disk before the correct charge can be determined. For cold accounts, at least `COLD_ACCOUNT_COST_NOCODE` gas must be available before account access is attempted; if unavailable, the operation fails with out-of-gas without accessing the account. Once an account access is attempted, the account is added to the transaction's accessed set for the BAL. Thereafter, if the account is found to have code, the account read remains in the BAL even if the available gas is less than `COLD_ACCOUNT_COST_CODE` and the call frame fails with out-of-gas.\n-- **Calldata-pricing EIPs (e.g. [EIP-7623](./eip-7623.md)).** Unchanged. This EIP does not alter calldata pricing.\n+Costs are split into regular gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule.\n+\n+| Case | Regular gas | State gas | Regular gas value | State gas value |\n+| :---- | :---- | :---- | :----: | :----: |\n+| ETH transfer to self | `TX_BASE_COST` | 0 | 12,000 | 0 |\n+| No-transfer to EOA / empty account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` | 0 | 15,000 | 0 |\n+| No-transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` + execution | 0 | 15,000 + execution | 0 |\n+| ETH transfer to existing EOA | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` | 0 | 21,000 | 0 |\n+| ETH transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` + execution | 0 | 21,000 + execution | 0 |\n+| No-transfer to 7702 delegated | `TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS` + execution | 0 | 18,000 + execution | 0 |\n+| ETH transfer to 7702 delegated | `TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` + execution | 0 | 24,000 + execution | 0 |\n+| ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 | 183,600 |\n+| Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 | 183,600 |\n+| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,756 | 183,600 |\n+\n+### Interactions with other EIPs\n+\n+- **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The transaction-level `tx.sender`, `tx.to`, and delegation-target charges are always cold and are not reduced by an access list. The standard EIP-2929 warm/cold model still applies to execution-level account touches, including internal `CALL`s.\n+- **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches.\n+- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization.\n+- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log, priced explicitly as `TRANSFER_LOG_COST` rather than absorbed into the base.\n+- **[EIP-7928](./eip-7928.md) (block-level access lists).** Intrinsic costs already account for accessing `tx.sender` and `tx.to`, so these accounts are included in the BAL even when the transaction reverts.\n \n ## Rationale\n \n-Price only what every transaction always does: ECDSA recovery, warming `sender` and `to`, and one account-leaf write for the sender (nonce + balance change). That sums to `4,500` gas. Anything not universal should be metered separately.\n-\n-Calldata remains metered per byte. No calldata allowance is folded into the base. This reinforces ETH as money and payments: a plain ETH transfer carries no calldata, executes no bytecode, and touches no contract storage slots. It adds exactly one recipient touch (when not a smart contract), one recipient leaf write, and one [EIP-7708](./eip-7708.md) transfer log, so its total is `7,756`.\n-\n-The `GAS_NEW_ACCOUNT` surcharge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE = 32,000` opcode base already prices account creation, and top-level `CREATE` transactions are not charged `GAS_CREATE` at all. Top-level `CREATE` transactions with `value > 0` do pay `TRANSFER_LOG_COST` for the [EIP-7708](./eip-7708.md) transfer log. Access-list pricing is unchanged.\n-\n-Legacy pricing undercharged top-level ETH transfers that created new accounts relative to internal `CALL`-based creations. This EIP corrects that by charging `GAS_NEW_ACCOUNT = 25,000`, identical to the `CALL` account-creation surcharge, ensuring consistent pricing for state growth regardless of entry path.\n-\n-This removes cross-subsidies, aligns charges with resources, and keeps costs equal across paths that perform the same state growth.\n+### Pricing only the work each transaction does\n \n-Do not fold any calldata allowance into the base. The envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`) is not charged as calldata and remains unmetered per byte. Only `tx.data` bytes are metered at the existing calldata schedule, and access lists keep their per-entry costs. A vanilla ETH transfer executes no bytecode and touches no contract storage slots; it performs signature recovery, warms the sender, and updates sender and recipient accounts. It therefore receives the base discount and pays only the additional recipient costs.\n+The decomposition charges each primitive once, where the resource is consumed: signature recovery and the sender's access and write in `TX_BASE_COST`; the recipient touch in `COLD_ACCOUNT_ACCESS`; the recipient balance write in `TX_VALUE_COST`; the transfer log in `TRANSFER_LOG_COST`; and durable state creation in `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB`. A zero-value transaction pays only for the touches it makes, while a value transfer that creates an account pays for the new leaf it adds. This removes the cross-subsidy in the flat base, where simple transactions overpaid and state-creating ones underpaid.\n \n-Bundling multiple transfers into a single contract call avoids repeated `TX_BASE_COST`, but those transfers then execute serially inside one EVM context. That blocks parallel execution. With a lower per-tx base cost, users have less incentive to bundle, so more transfers remain independent transactions. Independent transactions can be scheduled across threads, which improves parallelism at the client and execution-layer level.\n+The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE` opcode base already prices internal account creation, and top-level contract-creation transactions pay `CREATE_ACCESS` plus the same state-gas charge directly. Charging the state-growth cost on top-level value transfers that create accounts aligns them with the `CALL`-based creation path, which has always paid for the new leaf.\n \n-Thus, reducing `TX_BASE_COST` not only corrects mispricing but also increases the share of transactions that are naturally parallelizable.\n+### Deriving the decomposition from client runtimes\n \n-This EIP composes cleanly with calldata-pricing proposals such as [EIP-7623](./eip-7623.md) and [EIP-7976](./eip-7976.md). Those EIPs affect `tx.data` metering, while this EIP adjusts only transaction-level intrinsic accounting. There is no overlapping scope.\n+The values of `TX_BASE_COST` and `TX_VALUE_COST` are not set by intuition; they are derived from measured client execution times, using the same approach as [EIP-8038](./eip-8038.md).\n \n-### Why not charge full tx data as calldata?\n+The derivation uses the EELS `test_ether_transfers_onchain_receivers` benchmark, executed across all major execution-layer clients (Besu, Erigon, Geth, Nethermind, Reth). The benchmark fills blocks with ether transfers to four kinds of receiver, each exercising a different work path:\n \n-- **Intrinsic coupling to signed fields.** Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements, creating fixed-point estimation issues and incentives for signature-length selection as well as iteration instability as `gas_limit` depends on signature which contains `gas_limit`.\n+- transfers to a contract with shared code, where the code lookup is cached across transactions;\n+- transfers to a contract with unique 24 KiB code, forcing a fresh code read and JUMPDEST analysis on every transaction (the heaviest path);\n+- transfers to an existing EOA;\n+- transfers to a non-existent EOA, where the client must create a new account.\n \n-- **Serialization neutrality.** A fee rule keyed to RLP size couples costs to one encoding and weakens [EIP-2718](./eip-2718.md) type neutrality and future formats such as SSZ. Calldata is treated as opaque bytes so it avoids this coupling.\n+For each `(client, receiver)` pair, a non-negative least-squares (NNLS) model fits measured block runtime as a linear function of the number of transfers and the number of value-bearing transfers. The two fitted coefficients are the per-transfer base runtime and the additional runtime of moving value. Each coefficient is converted to gas at a fixed throughput anchor of 100 Mgas/s (`gas = ceil(100,000 \u00d7 runtime_ms)`).\n \n-- **Policy targeting and market floor.** Calldata floors (for example [EIP-7623](./eip-7623.md) or [EIP-7976](./eip-7976.md)) price bytes in `tx.data` to bound EL payload and steer data to blobs; envelope bytes are control-plane. The `TX_BASE_COST` is the smallest tx size, and having a low encoding-agnostic intrinsic base keeps the minimum inclusion price coupled to the basefee market, without opening a DoS vector.\n+For any candidate target, the analysis surfaces each client's worst case across receiver types, separating clients that already meet the target from those that must optimize to reach it. The proposed `TX_BASE_COST` and `TX_VALUE_COST` are set as such targets: they align intrinsic cost with the resource usage of well-optimized clients while leaving slower clients a defined optimization goal.\n \n-- **Native settlement and unit-of-account.** Even though all transactions receive the same absolute gas reduction, it proportionally improves pristine ETH transfers more. With an ETH transfer at ~7,756 gas vs a permissioned ERC-20/LST/stablecoin transfer at ~48,000 gas, you get ~6x higher payment throughput per unit gas, which reinforces ETH as the settlement asset and reduces reliance on contract-based money (which carries smart contract risk, operator risk, governance risk and censorship risks via smart contract operator).\n+The two empirical coefficients map onto the decomposition as follows:\n \n-![Figure 1](../assets/eip-2780/1.png)\n+- the per-transfer base runtime covers signature recovery, the sender's access and write, and the recipient touch \u2192 `TX_BASE_COST + COLD_ACCOUNT_ACCESS`;\n+- the value increment covers the recipient balance write and the transfer log \u2192 `TX_VALUE_COST + TRANSFER_LOG_COST`.\n \n-### Effects on transactions per block\n+`COLD_ACCOUNT_ACCESS` is taken directly from [EIP-8038](./eip-8038.md), since the recipient touch is the same cold-account access priced there, and `TRANSFER_LOG_COST` is fixed by the [EIP-7708](./eip-7708.md) log shape (see [Transfer log cost](#transfer-log-cost)). `TX_BASE_COST` and `TX_VALUE_COST` are the residual parameters this EIP introduces.\n \n-For execution-payload size, use [EIP-7934](./eip-7934.md)\u2019s 8 MiB uncompressed cap: `8,388,608 bytes`. A typical EIP-1559 ETH transfer encodes at roughly `~110 bytes`, yielding a size cap of `floor(8,388,608 / 110) = 76,260 tx` per block when size, not gas, is the binding constraint.\n+As in [EIP-8038](./eip-8038.md), these numbers are provisional. At the 100 Mgas/s anchor some clients are currently slower than the target on the heaviest paths and must optimize to meet it; the values will be refined as client optimizations land and the benchmarks mature.\n \n-There are two useful ceilings to consider:\n+### Transfer log cost\n \n-- Minimal transaction with no value and no execution: `TX_BASE_COST = 4,500` gas.\n-- Minimal ETH payment to an existing EOA: `7,756` gas (`TX_BASE_COST + COLD_ACCOUNT_COST_NOCODE + STATE_UPDATE + TRANSFER_LOG_COST`).\n+`TRANSFER_LOG_COST` assumes a 32-byte log data payload because that is exactly the [EIP-7708](./eip-7708.md) transfer-log shape, not an arbitrary choice. The log is `LOG3`-shaped: three indexed topics (`keccak256(\"Transfer(address,address,uint256)\")`, `from`, `to`) and a `data` field carrying a single `uint256` wei amount. Indexed topics do not count as data bytes, so the only data payload is the 32-byte amount \u2014 always a full word, never variable length. Hence:\n \n-Counts below are `floor(gaslimit / per-tx-gas)`, then capped by `76,260` when the 8 MiB size limit binds. TPS figures round to the nearest integer.\n+`TRANSFER_LOG_COST = GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE = 375 + 3 \u00d7 375 + 32 \u00d7 8 = 1,756`\n \n-#### Scenario A: minimal txs at 4,500 gas\n+### Not metering the transaction envelope as calldata\n \n-Binding point for size-cap dominance: `76,260 * 4,500 = 343,170,000` gas. At gaslimits above ~343.17 M, block size, not gas, limits the tx count for 4,500-gas transactions.\n+Only `tx.data` bytes are metered at the calldata schedule; the envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`) is not. Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements \u2014 creating a fixed-point estimation problem, since `gas_limit` would depend on the signature, which itself encodes `gas_limit` \u2014 and would couple the fee to one serialization, weakening [EIP-2718](./eip-2718.md) type neutrality and future encodings. Treating calldata as opaque bytes avoids both issues. A plain ETH transfer carries empty `tx.data` and so pays zero calldata gas regardless.\n \n-| Block gaslimit | Old tx/bk (21k) | New tx/bk (4.5k) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n-| -------------: | --------------: | ---------------: | --------: | -------: | -------: | ---------: |\n-| 45 M | 2,142 | 10,000 | 833 | 1,667 | 3,333 | 6,667 |\n-| 60 M | 2,857 | 13,333 | 1,111 | 2,222 | 4,444 | 8,889 |\n-| 100 M | 4,761 | 22,222 | 1,852 | 3,704 | 7,407 | 14,815 |\n-| 200 M | 9,523 | 44,444 | 3,704 | 7,407 | 14,815 | 29,629 |\n-| 450 M | 21,428 | \u202076,260 | 6,355 | 12,710 | 25,420 | 50,840 |\n+### Self-transfers\n \n- \u2020 Size cap binds at 450 M because 450 M > 343.17 M.\n-\n-#### Scenario B: ETH transfers at 7,756 gas\n-\n-Binding point for size-cap dominance: `76,260 * 7,756 = 591,472,560` gas. At gaslimits below ~591.47 M, gas limits tx count; above it, the 8 MiB size cap dominates.\n-\n-| Block gaslimit | Old tx/bk (21k) | New tx/bk (7,756) | TPS @ 12s | TPS @ 6s | TPS @ 3s | TPS @ 1.5s |\n-| -------------: | --------------: | ----------------: | --------: | -------: | -------: | ---------: |\n-| 45 M | 2,142 | 5,801 | 483 | 967 | 1,934 | 3,867 |\n-| 60 M | 2,857 | 7,735 | 644 | 1,289 | 2,578 | 5,157 |\n-| 100 M | 4,761 | 12,893 | 1,074 | 2,149 | 4,298 | 8,595 |\n-| 200 M | 9,523 | 25,786 | 2,149 | 4,298 | 8,595 | 17,191 |\n-| 450 M | 21,428 | 58,019 | 4,835 | 9,670 | 19,340 | 38,680 |\n-\n-#### Changes for common types of txs\n-\n-| Transaction Type | Old Cost | New Cost | Change |\n-| ---------------------------------- | -------: | -------: | -----: |\n-| Simple ETH transfer (existing EOA) | 21,000 | 7,756 | \u221263 % |\n-| ETH transfer creating new EOA | 21,000 | 31,756 | +51 % |\n-| ERC-20 transfer (typical) | 63,200 | 48,200 | \u221224 % |\n-| ERC-20 transfer (Solady) | 33,400 | 18,400 | \u221245 % |\n-| Uniswap v3 swap | 184,500 | 169,500 | \u22128 % |\n-| Uniswap v3 add-liquidity | 216,900 | 201,900 | \u22127 % |\n-\n-\n-#### Reference MGas/s for gaslimit vs slot time\n-\n-| Block gaslimit | MGas/s @ 12s | MGas/s @ 6s | MGas/s @ 3s | MGas/s @ 1.5s |\n-| -------------: | -----------: | ----------: | ----------: | ------------: |\n-| 45 M | 3.75 | 7.50 | 15.00 | 30.00 |\n-| 60 M | 5.00 | 10.00 | 20.00 | 40.00 |\n-| 100 M | 8.33 | 16.67 | 33.33 | 66.67 |\n-| 200 M | 16.67 | 33.33 | 66.67 | 133.33 |\n-| 450 M | 37.50 | 75.00 | 150.00 | 300.00 |\n+A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor the value cost: the account is already accessed and written as the sender, and EIP-7708 emits no transfer log when sender and recipient coincide. Only `TX_BASE_COST` applies.\n \n ## Backwards Compatibility\n \n-This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at `FORK_BLOCK`.\n-\n-Wallets, RPCs, gas estimators, and any logic that assumes a `21,000` base must update.\n+This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at a network upgrade. Wallets, RPCs, gas estimators, and any logic that assumes a flat `21,000` intrinsic base must update, particularly to account for the state-gas charge on transactions that create new accounts.\n \n ## Test Cases\n \n-While the benefits of reducing transactions' intrinsic cost are apparent, such a change should be applied if it imposes no negative externalities, or if such effects are negligible.\n-\n-Tests should be created with blocks of just ETH transfers and tested on Perfnet across all EL clients to ensure the pricing is correct.\n-\n-Add explicit test vectors (intrinsic gas only):\n-\n-1. `value > 0` to an empty EOA (non-existent per EIP-161): intrinsic `31,756` (4,500 base + 500 + 25,000 surcharge + 1,756 transfer log).\n-2. `value > 0` to a precompile: intrinsic `6,256` (4,500 base + 1,756 transfer log; no surcharge; precompiles are warm at tx start).\n-3. `value = 0` to an empty address: intrinsic `4,500` (no creation, no surcharge).\n-4. `CREATE` transaction: unchanged from prior rules.\n-5. EIP-7702 transaction with and without access list: intrinsic uses `TX_BASE_COST` plus unchanged access-list costs.\n-6. Block of txs calling minimal gas contract execution with maximal contract size addresses (so VM is activated for every tx).\n-7. Warmth and access list interplay\n- - ETH transfer to existing EOA without access list: charge `COLD_ACCOUNT_COST_NOCODE = 500` for recipient lookup.\n- - Same transaction with recipient in access list: charge `WARM_STATE_READ = 100`.\n-8. 7702 interactions\n- - 7702 tx where sender assumes code and calls nothing: intrinsic = 4,500, no extra cold-code cost.\n- - 7702 tx where sender assumes code and executes self-code: charge `COLD_ACCOUNT_COST_CODE` when first loaded.\n-9. Precompile transfers\n- - `value > 0` to `0x01`\u2013`0x09`: intrinsic = 6,256 (4,500 base + 1,756 transfer log), no surcharge.\n-10. Self-transfer `from == to`: total = 4,500.\n-11. Internal CALL repricing\n- - Internal `CALL` to existing EOA with value: `CALL_VALUE_COST = 3,756` plus cold/warm costs.\n- - Internal `CALL` to EIP-161-empty: `CALL_VALUE_COST = 27,756`.\n-12. Zero-value edge cases `value = 0` to empty address: intrinsic = `4,500`.\n-13. Perfnet stress\n- - Fill block with minimal 4,500-gas tx and 7,756-gas ETH transfers; confirm gas vs byte-size binding per [EIP-7934](./eip-7934.md).\n-14. SELFDESTRUCT test: Create-and-destroy in one tx; confirm normal value-transfer costs apply, no deletion repricing.\n+Intrinsic and top-level gas, by case:\n \n-## Security Considerations\n+1. Self-transfer (`from == to`): `12,000`.\n+2. Zero-value transaction to any address (existing, empty, or contract): `15,000` regular (`12,000 + COLD_ACCOUNT_ACCESS`), `0` state. A self-target is `12,000`.\n+3. Value transfer to an existing EOA: `21,000` regular, `0` state.\n+4. Value transfer creating a new account (empty per EIP-161): `21,000` regular, `183,600` state.\n+5. Value transfer to a 7702-delegated account: `24,000` regular plus execution.\n+6. Contract-creation transaction, `value = 0`: `23,000` regular, `183,600` state.\n+7. Contract-creation transaction, `value > 0`: `24,756` regular, `183,600` state.\n+8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code; access-list and authorization costs are unchanged.\n+9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled to the reservoir.\n \n-As this significantly increases the max tx per block, this carries risk.\n+Blocks of pure ETH transfers should be tested across all EL clients (e.g. on Perfnet) to confirm the pricing matches measured runtimes at the chosen throughput anchor.\n \n-However, this pricing should be the same as performing the component changes inside the transaction; and it factors in the additional costs from state growth which were not originally in the transaction base price.\n+## Security Considerations\n \n-Current gaslimit testing mostly uses a block with a single transaction; so this should not cause unexpected load compared to what is already being tested.\n+The decomposed charges sum to at least the legacy `21,000` for any transaction that moves value to a distinct account, and add state gas for transactions that grow the state. No path is cheaper than under the flat base in a way that increases per-block resource consumption; the change reallocates cost to match resources and prices state growth that was previously unpriced.\n \n-The semantics of `SELFDESTRUCT` remain unchanged. Following [EIP-6780](./eip-6780.md), only contracts created within the same transaction may be fully deleted. This EIP does not reprice or modify any `SELFDESTRUCT` side-effects.\n+The semantics of `SELFDESTRUCT` are unchanged. Per [EIP-6780](./eip-6780.md), only contracts created within the same transaction may be fully deleted; this EIP does not reprice or modify any `SELFDESTRUCT` side effects.\n \n ## Copyright\n \n", "order": 38, "subject": "Update EIP-2780: Rework as resource-based intrinsic transaction gas", "tokens": [ "21,000", "TX_BASE_COST = 12,000", "COLD_ACCOUNT_ACCESS = 3,000", "TX_VALUE_COST = 4,244", "TRANSFER_LOG_COST = 1,756", "12,000 + 3,000 + 4,244 + 1,756 = 21,000", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "CALL", "TX_BASE_COST", "TX_VALUE_COST", "TRANSFER_LOG_COST", "GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE", "CREATE_ACCESS = 11,000", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB = 183,600", "CPSB", "tx.sender", "tx.to", "tx.sender == tx.to", "None", "CREATE_ACCESS", "COLD_ACCOUNT_ACCESS", "tx.value", "TRANSFER_LOG_COST + TX_VALUE_COST", "tx.value > 0", "PER_EMPTY_ACCOUNT_COST", "state_gas_reservoir", "TX_BASE_COST + COLD_ACCOUNT_ACCESS", "TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST", "TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS", "TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST", "TX_BASE_COST + CREATE_ACCESS", "TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST", "accessed_addresses", "CREATE", "CREATE2", "GAS_CREATE", "test_ether_transfers_onchain_receivers", "(client, receiver)", "gas = ceil(100,000 \u00d7 runtime_ms)", "TX_VALUE_COST + TRANSFER_LOG_COST", "LOG3", "keccak256(\"Transfer(address,address,uint256)\")", "from", "to", "data", "uint256", "TRANSFER_LOG_COST = GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE = 375 + 3 \u00d7 375 + 32 \u00d7 8 = 1,756", "tx.data", "nonce", "gas*", "value", "v", "r", "s", "gas_limit", "from == to", "12,000", "15,000", "12,000 + COLD_ACCOUNT_ACCESS", "0", "183,600", "24,000", "value = 0", "23,000", "value > 0", "24,756", "SELFDESTRUCT" ], "window": [] }, { "blob": "d70d2748bcd22f2906599fca1682e8e1b20335c3", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 1, "test": "test_top_frame_charges.py::test_initcode_selfdestruct_keeps_top_frame_state_charge", "tokens": [ "183,600" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 1, "test": "test_top_frame_charges.py::test_top_frame_new_account_skipped_for_create_target_funded_same_block", "tokens": [ "183,600" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 1, "test": "test_top_frame_charges.py::test_top_frame_new_account_skipped_for_prefunded_create_target", "tokens": [ "183,600" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_empty_recipient", "tokens": [ "tx.to" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_funded_recipient", "tokens": [ "tx.to" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "tx.to" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 1, "test": "test_warmth_invariants.py::test_top_frame_charges_self_delegation_oog", "tokens": [ "tx.to" ] } ], "commit": "0c8a9ade8934364448850bb1ff02851f85bc5efa", "constants": [], "date": "2026-06-25T20:27:06+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 5ab97db1..d70d2748 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -8,7 +8,7 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 161, 2718, 2929, 2930, 6780, 7702, 7708, 7904, 7928, 8037, 8038\n+requires: 2718, 2929, 2930, 6780, 7523, 7702, 7708, 7904, 7928, 8037, 8038\n ---\n \n ## Abstract\n@@ -76,11 +76,11 @@ These charges replace the contract-creation transaction charges. All other intri\n \n During execution, before any opcode is executed, the recipient account is loaded and the following gas costs are charged:\n \n-- if the recipient is empty per [EIP-161](./eip-161.md) and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n+- if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n - if the recipient is an [EIP-7702](./eip-7702.md) delegated account, charge an additional `COLD_ACCOUNT_ACCESS` in regular gas;\n - otherwise, there are no charges.\n \n-These charges are evaluated **after** [EIP-7702](./eip-7702.md) authorizations are applied. A `tx.to` whose account is materialized by an authorization in the same transaction is therefore no longer EIP-161-empty when this phase runs, so the new-account state charge does not fire; that account's creation is already priced by the authorization's `PER_EMPTY_ACCOUNT_COST`.\n+Per [EIP-7523](./eip-7523.md), a post-merge state contains no empty accounts, so only a non-existent recipient creates a new account. These charges are evaluated **after** [EIP-7702](./eip-7702.md) authorizations are applied. A `tx.to` whose account is materialized by an authorization in the same transaction is therefore no longer non-existent when this phase runs, so the new-account state charge does not fire; that account's creation is already priced by the authorization's `PER_EMPTY_ACCOUNT_COST`.\n \n If a contract-creation transaction's initcode reverts, the transaction remains valid. In that case `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` is not charged and is refilled to the `state_gas_reservoir`, per [EIP-8037](./eip-8037.md). A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way.\n \n@@ -166,7 +166,7 @@ Intrinsic and top-level gas, by case:\n 1. Self-transfer (`from == to`): `12,000`.\n 2. Zero-value transaction to any address (existing, empty, or contract): `15,000` regular (`12,000 + COLD_ACCOUNT_ACCESS`), `0` state. A self-target is `12,000`.\n 3. Value transfer to an existing EOA: `21,000` regular, `0` state.\n-4. Value transfer creating a new account (empty per EIP-161): `21,000` regular, `183,600` state.\n+4. Value transfer creating a new account (recipient non-existent): `21,000` regular, `183,600` state.\n 5. Value transfer to a 7702-delegated account: `24,000` regular plus execution.\n 6. Contract-creation transaction, `value = 0`: `23,000` regular, `183,600` state.\n 7. Contract-creation transaction, `value > 0`: `24,756` regular, `183,600` state.\n", "order": 39, "subject": "Update EIP-2780: require EIP-7523 instead of EIP-161", "tokens": [ "tx.value > 0", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "tx.to", "PER_EMPTY_ACCOUNT_COST", "21,000", "183,600" ], "window": [ { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "346d5f79d683ddafc0f5af54d995acf96bc865fa", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py", "score": 1, "test": "test_fork_transition.py::test_intrinsic_reduction_across_amsterdam_transition", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py", "score": 1, "test": "test_fork_transition.py::test_intrinsic_validity_across_amsterdam_transition", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py", "score": 1, "test": "test_fork_transition.py::test_setcode_tx_across_amsterdam_transition", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 1, "test": "test_top_frame_charges.py::test_receipt_status_top_frame_oog_between_successful_txs", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 1, "test": "test_top_frame_charges.py::test_top_frame_execution_charge", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_transactions.py", "score": 1, "test": "test_value_moving_transactions.py::test_value_move_to_precompiles", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_transactions.py", "score": 1, "test": "test_value_moving_transactions.py::test_value_moving_transactions", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_empty_recipient", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_funded_recipient", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 1, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 1, "test": "test_warmth_invariants.py::test_intrinsic_accounts_warm_for_execution", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 1, "test": "test_warmth_invariants.py::test_intrinsic_charges_recipient_in_access_list", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 1, "test": "test_warmth_invariants.py::test_intrinsic_charges_recipient_is_coinbase", "tokens": [ "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 1, "test": "test_warmth_invariants.py::test_top_frame_charges_delegation_in_access_list", "tokens": [ "COLD_ACCOUNT_ACCESS" ] } ], "commit": "cfca917b621d1a14a759377529a63d28a7832c8c", "constants": [], "date": "2026-06-25T12:54:07Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex d70d2748..346d5f79 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -82,6 +82,8 @@ During execution, before any opcode is executed, the recipient account is loaded\n \n Per [EIP-7523](./eip-7523.md), a post-merge state contains no empty accounts, so only a non-existent recipient creates a new account. These charges are evaluated **after** [EIP-7702](./eip-7702.md) authorizations are applied. A `tx.to` whose account is materialized by an authorization in the same transaction is therefore no longer non-existent when this phase runs, so the new-account state charge does not fire; that account's creation is already priced by the authorization's `PER_EMPTY_ACCOUNT_COST`.\n \n+These top-level charges are applied during execution, after the transaction has already been validated and its [EIP-7702](./eip-7702.md) authorizations applied. If the remaining gas is insufficient to cover them \u2014 the new-account state-gas charge when the recipient is non-existent and `tx.value > 0`, or the additional `COLD_ACCOUNT_ACCESS` when the recipient is delegated \u2014 the transaction is **not** invalidated. It is instead treated as an exceptional halt (out-of-gas): the transaction is included, the sender pays for all gas consumed, and its state changes are reverted, exactly as for any out-of-gas condition during execution. Transaction validity is decided entirely by the intrinsic gas check, which requires no state access; these charges, which do require state access (resolving recipient existence and delegation only after authorizations are applied), can therefore never retroactively invalidate an already-validated transaction.\n+\n If a contract-creation transaction's initcode reverts, the transaction remains valid. In that case `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` is not charged and is refilled to the `state_gas_reservoir`, per [EIP-8037](./eip-8037.md). A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way.\n \n ### Transaction reference cases\n@@ -172,6 +174,7 @@ Intrinsic and top-level gas, by case:\n 7. Contract-creation transaction, `value > 0`: `24,756` regular, `183,600` state.\n 8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code; access-list and authorization costs are unchanged.\n 9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled to the reservoir.\n+10. Transaction whose gas suffices for intrinsic cost but not for the top-level charge (a value transfer to a non-existent recipient lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the extra `COLD_ACCOUNT_ACCESS`): the transaction is valid and included, halts out-of-gas, and its state changes are reverted; it is **not** invalidated.\n \n Blocks of pure ETH transfers should be tested across all EL clients (e.g. on Perfnet) to confirm the pricing matches measured runtimes at the chosen throughput anchor.\n \n", "order": 40, "subject": "Update EIP-2780: clarify OOG handling for top-level gas charges", "tokens": [ "tx.value > 0", "COLD_ACCOUNT_ACCESS" ], "window": [ { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "af05ed7e8a41eb75b9f180b92bb3871929f36f23", "candidates": [], "commit": "992074053f12f24fed9e6d6bf6099d3a44707dca", "constants": [], "date": "2026-06-25T15:05:59Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 346d5f79..af05ed7e 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -8,7 +8,7 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 2718, 2929, 2930, 6780, 7523, 7702, 7708, 7904, 7928, 8037, 8038\n+requires: 2718, 2929, 2930, 6780, 7523, 7623, 7702, 7708, 7904, 7928, 8037, 8038\n ---\n \n ## Abstract\n@@ -107,6 +107,7 @@ Costs are split into regular gas and state gas, per [EIP-8037](./eip-8037.md). \"\n \n - **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The transaction-level `tx.sender`, `tx.to`, and delegation-target charges are always cold and are not reduced by an access list. The standard EIP-2929 warm/cold model still applies to execution-level account touches, including internal `CALL`s.\n - **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches.\n+- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas primitives charged above (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and the floor's validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. The calldata schedule itself is unchanged; only the base the floor sits on moves. The new-account state-gas charge is metered in the separate `state_gas_reservoir` per [EIP-8037](./eip-8037.md) and does not enter the calldata floor.\n - **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log, priced explicitly as `TRANSFER_LOG_COST` rather than absorbed into the base.\n - **[EIP-7928](./eip-7928.md) (block-level access lists).** Intrinsic costs already account for accessing `tx.sender` and `tx.to`, so these accounts are included in the BAL even when the transaction reverts.\n", "order": 41, "subject": "Update EIP-2780: account for EIP-7623 calldata floor base", "tokens": [ "21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata", "21,000", "TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST", "TX_BASE_COST + CREATE_ACCESS", "state_gas_reservoir" ], "window": [ { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "e1e6cd9ce27647781faeb93b5d5f07b49457c629", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 8, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "COLD_ACCOUNT_ACCESS", "ACCOUNT_WRITE", "None", "CALL", "tx.to", "CREATE", "0", "value > 0" ] } ], "commit": "e6d8f589d355e891c37ff479d3ce668352e5b1be", "constants": [ { "after": [ "8,000" ], "before": [], "name": "ACCOUNT_WRITE" }, { "after": [ "3,000" ], "before": [ "3" ], "name": "COLD_ACCOUNT_ACCESS" }, { "after": [ "11,000" ], "before": [ "11" ], "name": "CREATE_ACCESS" }, { "after": [ "7,816" ], "before": [], "name": "REGULAR_PER_AUTH_BASE_COST" }, { "after": [ "100" ], "before": [], "name": "WARM_ACCESS" } ], "date": "2026-07-07T16:35:48+02:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex af05ed7e..e1e6cd9c 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -2,7 +2,7 @@\n eip: 2780\n title: Resource-based intrinsic transaction gas\n description: Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes\n-author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal)\n+author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal), Dragan Rakita (@rakita)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n status: Draft\n type: Standards Track\n@@ -15,110 +15,139 @@ requires: 2718, 2929, 2930, 6780, 7523, 7623, 7702, 7708, 7904, 7928, 8037, 8038\n \n This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes:\n \n-- `TX_BASE_COST = 12,000` \u2014 ECDSA recovery plus the sender account's access and write.\n+- `TX_BASE_COST = 12,000` \u2014 ECDSA recovery, the sender account's access and write, and the inclusion of the transaction in the block (which is transient and expires with history).\n - `COLD_ACCOUNT_ACCESS = 3,000` \u2014 the recipient account touch, per [EIP-8038](./eip-8038.md).\n - `TX_VALUE_COST = 4,244` \u2014 the recipient balance write performed by a value transfer.\n - `TRANSFER_LOG_COST = 1,756` \u2014 the [EIP-7708](./eip-7708.md) transfer log.\n \n A plain ETH transfer to an existing account still costs `12,000 + 3,000 + 4,244 + 1,756 = 21,000` gas. The headline number is unchanged, but it is now built from measured components rather than a single legacy constant, so each transaction pays for the work it does and nothing it does not.\n \n-Transactions that grow the state \u2014 value transfers that create a new account and contract-creation transactions \u2014 additionally pay `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas, per [EIP-8037](./eip-8037.md). These transactions therefore cost more than `21,000`, internalizing the cost of state growth that the flat base previously left unpriced.\n+The gas charging is split across two phases. **Intrinsic gas** is the state-independent cost of including the transaction in a block and is the sole input to the transaction-validity check; top-level account accesses whose warmth cannot be known without state \u2014 the recipient touch and the [EIP-7702](./eip-7702.md) authority access \u2014 are charged here at the cold rate unconditionally. **Runtime gas** covers the state-dependent charges \u2014 new-account creation and delegation resolution \u2014 charged as the first frame is entered, metered in same way as inside the frame. Running out of gas in runtime does not invalidate the transaction. Instead, the transaction is included, execution is skipped, and all state changes are reverted, as for any out-of-gas halt inside a frame.\n \n-This EIP does not change calldata, access-list, or authorization metering.\n+This EIP does not change calldata or access-list metering.\n \n ## Motivation\n \n The flat `21,000` intrinsic cost charges every transaction the same amount regardless of what it does. A zero-value transaction to an existing account and a value transfer that creates a new account both pay `21,000`, even though the latter touches an extra account, writes an extra balance, emits a log, and permanently grows the state. The single constant both over-prices the simplest paths and under-prices the ones that consume real, lasting resources.\n \n-This EIP replaces the constant with a decomposition into named primitives, each priced to the resource it represents. The goal is to make every transaction's intrinsic cost reflect its actual work:\n+This EIP replaces the constant with a decomposition into named primitives, each priced to the resource it represents. The goal is to make every transaction's cost reflect its actual work:\n \n - **Accuracy.** Signature recovery, account accesses, account writes, the transfer log, and state creation are billed separately, so cost tracks usage.\n - **State growth is internalized.** A value transfer that creates an account, like a contract-creation transaction, pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. This aligns top-level value transfers with internal `CALL`-based account creation, which already pays for the new leaf, and prices the durable state cost the flat base ignored.\n - **Composability.** Pricing intrinsic cost as a sum of the same primitives used elsewhere in the gas schedule lets future repricings (e.g. of cold-account access in [EIP-8038](./eip-8038.md), or of state bytes in [EIP-8037](./eip-8037.md)) flow through automatically, without re-deriving a bespoke constant.\n \n+Transaction costs fall into two groups. Some can be computed from the transaction's fields alone, such as signature recovery, the sender's account access and write, the transaction's bytes in the block, and the recipient and authority touches \u2014 charged at the cold rate, since a top-level account is loaded from cold state once per transaction. Others require reading state, such as creating a new account or resolving a delegation. This EIP splits the two: intrinsic gas is reduced to the minimum needed to include the transaction in a block and remains the sole input to the validity check, while state-dependent costs are charged at runtime, using the same metering as inside a frame. This removes the overcharging of the flat worst-case reservation, since a transaction pays a state-dependent cost only when it actually incurs it. It also allows halting in the pre-execution phase: a transaction whose gas covers inclusion but not a state-dependent charge is included, charged for the gas consumed, and reverted, exactly like an out-of-gas inside a call frame.\n+\n+\n ## Specification\n \n ### Parameters\n \n | Name | Value | Definition |\n | :----: | :----: | :---- |\n-| `TX_BASE_COST` | 12,000 | Sender cost: ECDSA recovery, the sender's account access, and the sender's account write |\n+| `TX_BASE_COST` | 12,000 | Sender cost: ECDSA recovery, the sender's account access, the sender's account write and inclusion in block |\n | `TX_VALUE_COST` | 4,244 | Recipient balance write performed by a value transfer |\n | `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) transfer log: `GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE` |\n \n-The following values are referenced from other EIPs and are not final:\n+The remaining values are defined in other EIPs and referenced here:\n \n-- `COLD_ACCOUNT_ACCESS = 3,000` and `CREATE_ACCESS = 11,000`, per [EIP-8038](./eip-8038.md).\n-- `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB = 183,600`, per [EIP-8037](./eip-8037.md). This value changes whenever a fork changes `CPSB`.\n+| Name | Value | Source | Definition |\n+| :---- | :----: | :----: | :---- |\n+| `COLD_ACCOUNT_ACCESS` | 3,000 | [EIP-8038](./eip-8038.md) | Cold account touch |\n+| `WARM_ACCESS` | 100 | [EIP-8038](./eip-8038.md) | Warm account touch |\n+| `ACCOUNT_WRITE` | 8,000 | [EIP-8038](./eip-8038.md) | First write to an account leaf |\n+| `CREATE_ACCESS` | 11,000 | [EIP-8038](./eip-8038.md) | Contract-deployment account access and write |\n+| `REGULAR_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery (per [EIP-7904](./eip-7904.md)), cold authority access, and warm writes |\n+| `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 183,600 | [EIP-8037](./eip-8037.md) | State gas for one new account leaf |\n+| `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` | 35,190 | [EIP-8037](./eip-8037.md) | State gas for one 23-byte delegation indicator |\n \n-Regular-gas and state-gas semantics are defined by [EIP-8037](./eip-8037.md).\n+The two state-gas products change whenever `CPSB` changes. Regular-gas and state-gas semantics are defined by [EIP-8037](./eip-8037.md).\n \n ### Intrinsic gas costs\n \n A transaction's intrinsic base cost is decomposed into the following explicit primitives:\n \n-- `tx.sender` is charged `TX_BASE_COST` in regular gas, accounting for one ECDSA recovery and the sender's account access and write.\n+- `tx.sender` is charged `TX_BASE_COST` in regular gas, accounting for one ECDSA recovery, the sender's account access and write, and the inclusion of the transaction's bytes in the block.\n - `tx.to` is charged based on its type:\n - if self-transfer (`tx.sender == tx.to`), there are no charges;\n- - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in regular gas and `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n- - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas.\n+ - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in regular gas; the new-account state charge depends on whether the deployment target exists and is charged at runtime;\n+ - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas \u2014 the recipient touch, charged at the cold rate unconditionally.\n - `tx.value` is charged based on its value:\n - if zero, there are no charges;\n - if non-zero and self-transfer, there are no charges;\n - if non-zero and contract creation, charge `TRANSFER_LOG_COST` in regular gas;\n - otherwise, charge `TRANSFER_LOG_COST + TX_VALUE_COST` in regular gas.\n+- each [EIP-7702](./eip-7702.md) authorization is charged `REGULAR_PER_AUTH_BASE_COST` in regular gas.\n+- calldata and access-list costs are unchanged.\n+\n+The recipient touch and the authority access (inside `REGULAR_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm \u2014 for example via an access list \u2014 keeping intrinsic gas computable without any state read. These charges replace the legacy contract-creation transaction charges and EIP-7702's flat `PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length` intrinsic charge. Calldata and access-list metering remain unchanged.\n \n-The `tx.sender`, `tx.to`, and (where applicable) delegation-target charges above are always at the cold rate. Access lists do not warm these transaction-level accounts; access-list warming applies only to subsequent execution-level touches.\n+### Runtime gas costs\n \n-These charges replace the contract-creation transaction charges. All other intrinsic costs (calldata, access list, and authorizations) remain unchanged.\n+Once the transaction passes the intrinsic gas check, the state-dependent charges are applied at runtime \u2014 as the first frame is entered \u2014 drawing from the same gas the transaction supplies. Like every charge in this EIP, each runtime charge is split into regular gas and state gas per [EIP-8037](./eip-8037.md): account accesses and writes are regular gas, while durable state growth (new account leaves and net-new delegation bytes) is state gas. This mirrors how a `CALL` frame is metered: accesses, account creation, and writes are charged as state is touched, not up front. Because these charges require state access, they are evaluated only after [EIP-7702](./eip-7702.md) authorizations are applied.\n \n-### Transaction's top-level gas costs\n+While processing each valid authorization \u2014 the per-authority rules of [EIP-8037](./eip-8037.md) ensure each charge below is applied at most once per authority:\n \n-During execution, before any opcode is executed, the recipient account is loaded and the following gas costs are charged:\n+- if the authority account does not already exist, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas for the new account leaf;\n+- if this is the first write to the authority within the transaction (i.e. the authority differs from `tx.to`), charge `ACCOUNT_WRITE` in regular gas;\n+- if the authorization writes the 23-byte delegation indicator into a previously empty slot (net-new delegation bytes), charge `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` in state gas.\n+\n+`REGULAR_PER_AUTH_BASE_COST` already prices the authority access at the cold rate at the intrinsic phase, so no account-access charge is added at runtime for the authority; the authority is added to `accessed_addresses`, per [EIP-7702](./eip-7702.md).\n+\n+Then the recipient account is loaded and added to `accessed_addresses` \u2014 its access was already charged at the cold rate at the intrinsic phase \u2014 and unless the transaction is a self-transfer or a contract creation:\n \n - if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n-- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, charge an additional `COLD_ACCOUNT_ACCESS` in regular gas;\n-- otherwise, there are no charges.\n+- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in regular gas \u2014 `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n+\n+For a contract-creation transaction, the account at the deployment address is loaded instead; if it does not already exist, per the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. Whether the target exists can only be determined by reading state, so the check is part of the runtime phase.\n \n-Per [EIP-7523](./eip-7523.md), a post-merge state contains no empty accounts, so only a non-existent recipient creates a new account. These charges are evaluated **after** [EIP-7702](./eip-7702.md) authorizations are applied. A `tx.to` whose account is materialized by an authorization in the same transaction is therefore no longer non-existent when this phase runs, so the new-account state charge does not fire; that account's creation is already priced by the authorization's `PER_EMPTY_ACCOUNT_COST`.\n+The first frame is then entered with the gas remaining after these runtime charges.\n \n-These top-level charges are applied during execution, after the transaction has already been validated and its [EIP-7702](./eip-7702.md) authorizations applied. If the remaining gas is insufficient to cover them \u2014 the new-account state-gas charge when the recipient is non-existent and `tx.value > 0`, or the additional `COLD_ACCOUNT_ACCESS` when the recipient is delegated \u2014 the transaction is **not** invalidated. It is instead treated as an exceptional halt (out-of-gas): the transaction is included, the sender pays for all gas consumed, and its state changes are reverted, exactly as for any out-of-gas condition during execution. Transaction validity is decided entirely by the intrinsic gas check, which requires no state access; these charges, which do require state access (resolving recipient existence and delegation only after authorizations are applied), can therefore never retroactively invalidate an already-validated transaction.\n+Running out of runtime gas does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check, which needs no state access; the runtime charges, which do, can never retroactively invalidate an already-validated transaction. On out-of-gas in this pre-execution phase the transaction is included, halts before the first frame is entered, the sender pays for all gas consumed, and all state changes are reverted \u2014 including any [EIP-7702](./eip-7702.md) delegations, which an out-of-gas *inside* the frame would leave in place, per [EIP-7702](./eip-7702.md).\n \n-If a contract-creation transaction's initcode reverts, the transaction remains valid. In that case `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` is not charged and is refilled to the `state_gas_reservoir`, per [EIP-8037](./eip-8037.md). A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way.\n+If a contract-creation transaction's initcode reverts, the transaction remains valid and any `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`. On an exceptional halt the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail \u2014 though on mainnet all precompiles are already prefunded.\n \n ### Transaction reference cases\n \n-Costs are split into regular gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule.\n-\n-| Case | Regular gas | State gas | Regular gas value | State gas value |\n-| :---- | :---- | :---- | :----: | :----: |\n-| ETH transfer to self | `TX_BASE_COST` | 0 | 12,000 | 0 |\n-| No-transfer to EOA / empty account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` | 0 | 15,000 | 0 |\n-| No-transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` + execution | 0 | 15,000 + execution | 0 |\n-| ETH transfer to existing EOA | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` | 0 | 21,000 | 0 |\n-| ETH transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` + execution | 0 | 21,000 + execution | 0 |\n-| No-transfer to 7702 delegated | `TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS` + execution | 0 | 18,000 + execution | 0 |\n-| ETH transfer to 7702 delegated | `TX_BASE_COST + 2 \u00d7 COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` + execution | 0 | 24,000 + execution | 0 |\n-| ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 | 183,600 |\n-| Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 | 183,600 |\n-| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,756 | 183,600 |\n+Costs are split between the intrinsic phase and the runtime phase, each in regular gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule; it, and every runtime charge, is drawn from the gas passed into the first frame, so that frame is entered with the gas remaining after the runtime regular and state charges. The recipient touch is charged at the cold rate at the intrinsic phase; the only runtime account access is the delegation-target load, shown at the cold rate \u2014 a target warmed beforehand pays `WARM_ACCESS` rather than `COLD_ACCOUNT_ACCESS`. Create rows assume the deployment target does not already exist; a pre-existing target pays no new-account state charge. The intrinsic + runtime totals match the legacy headline numbers.\n+\n+| Case | Intrinsic (regular / state) | Runtime (regular / state) | Total (regular / state) |\n+| :---- | :---- | :---- | :----: |\n+| ETH transfer to self | `TX_BASE_COST` / 0 | 0 / 0 | 12,000 / 0 |\n+| No-transfer to EOA / empty account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | 0 / 0 | 15,000 / 0 |\n+| No-transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | execution / 0 | 15,000 + execution / 0 |\n+| ETH transfer to existing EOA | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | 0 / 0 | 21,000 / 0 |\n+| ETH transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | execution / 0 | 21,000 + execution / 0 |\n+| No-transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 18,000 + execution / 0 |\n+| ETH transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 24,000 + execution / 0 |\n+| ETH transfer to self, sender 7702 delegated | `TX_BASE_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 15,000 + execution / 0 |\n+| ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 / 183,600 |\n+| Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 / 183,600 |\n+| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,756 / 183,600 |\n+| Create transaction, `tx.value` > 0, `created_address.balance` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` / 0 | 0 / 0 | 24,756 / 0 |\n \n ### Interactions with other EIPs\n \n-- **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The transaction-level `tx.sender`, `tx.to`, and delegation-target charges are always cold and are not reduced by an access list. The standard EIP-2929 warm/cold model still applies to execution-level account touches, including internal `CALL`s.\n-- **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches.\n-- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas primitives charged above (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and the floor's validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. The calldata schedule itself is unchanged; only the base the floor sits on moves. The new-account state-gas charge is metered in the separate `state_gas_reservoir` per [EIP-8037](./eip-8037.md) and does not enter the calldata floor.\n-- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization.\n+- **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `REGULAR_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n+- **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches. Listing the recipient or an authority does not reduce the intrinsic cold-rate charges; it only pre-warms the address for execution.\n+- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n+- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `REGULAR_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` plus `ACCOUNT_WRITE` for a non-existent authority, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log, priced explicitly as `TRANSFER_LOG_COST` rather than absorbed into the base.\n-- **[EIP-7928](./eip-7928.md) (block-level access lists).** Intrinsic costs already account for accessing `tx.sender` and `tx.to`, so these accounts are included in the BAL even when the transaction reverts.\n+- **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the BAL even when the transaction reverts.\n \n ## Rationale\n \n+### Intrinsic versus runtime gas\n+\n+The split follows a single line: can the charge be computed without reading state? Signature recovery, the sender's access and write, the transaction's block bytes, the value charges, and the per-authorization base are all fixed by the transaction's fields alone, so they are intrinsic and decide validity. The recipient touch and the authority access are also intrinsic, charged unconditionally at the cold rate: a top-level account is loaded from cold state once per transaction, and pricing that load at a fixed cold rate \u2014 rather than discounting the rare case where an access list pre-warmed it \u2014 keeps the charge state-independent without underpricing the work. The state-touching remainder is runtime, billed as each account is actually loaded: whether the recipient, an authority, or a deployment target exists, and whether a delegation must be resolved.\n+\n+Charging the runtime part as the first frame is entered makes the top-level transaction behave like an ordinary `CALL`: a frame is metered against the gas handed to it, and exhausting that gas halts the frame without unwinding the caller's decision to make the call. Here the \"caller\" is block inclusion, and the intrinsic check is its decision; a runtime out-of-gas therefore cannot retract validity. Keeping validity on a state-independent quantity is also what lets a block builder decide inclusion without executing the transaction, and lets later EIPs price new state-dependent work at runtime without ever touching the validity boundary.\n+\n ### Pricing only the work each transaction does\n \n The decomposition charges each primitive once, where the resource is consumed: signature recovery and the sender's access and write in `TX_BASE_COST`; the recipient touch in `COLD_ACCOUNT_ACCESS`; the recipient balance write in `TX_VALUE_COST`; the transfer log in `TRANSFER_LOG_COST`; and durable state creation in `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB`. A zero-value transaction pays only for the touches it makes, while a value transfer that creates an account pays for the new leaf it adds. This removes the cross-subsidy in the flat base, where simple transactions overpaid and state-creating ones underpaid.\n \n-The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE` opcode base already prices internal account creation, and top-level contract-creation transactions pay `CREATE_ACCESS` plus the same state-gas charge directly. Charging the state-growth cost on top-level value transfers that create accounts aligns them with the `CALL`-based creation path, which has always paid for the new leaf.\n+The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE` opcode base already prices internal account creation, and top-level contract-creation transactions pay `CREATE_ACCESS` intrinsically plus the same state-gas charge at runtime when the deployment target does not already exist. Charging the state-growth cost on top-level value transfers that create accounts aligns them with the `CALL`-based creation path, which has always paid for the new leaf.\n \n ### Deriving the decomposition from client runtimes\n \n@@ -158,30 +187,36 @@ Only `tx.data` bytes are metered at the calldata schedule; the envelope RLP (`no\n \n A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor the value cost: the account is already accessed and written as the sender, and EIP-7708 emits no transfer log when sender and recipient coincide. Only `TX_BASE_COST` applies.\n \n+### Decomposing authorization cost\n+\n+[EIP-7702](./eip-7702.md) charges `PER_EMPTY_ACCOUNT_COST` per authorization at the intrinsic phase and refunds it when the authority already exists, over-reserving gas the transaction may never use. Splitting the cost removes the over-charge: only `REGULAR_PER_AUTH_BASE_COST` \u2014 the calldata, signature recovery, cold authority access, and warm writes every authorization performs \u2014 is knowable without state access and stays intrinsic. The new-account leaf and its `ACCOUNT_WRITE`, and the delegation-indicator bytes, depend on state and are charged at runtime during authorization processing, billed only for the authorities that incur them.\n+\n ## Backwards Compatibility\n \n This EIP is **not** backward compatible. It is a consensus gas repricing that must be activated at a network upgrade. Wallets, RPCs, gas estimators, and any logic that assumes a flat `21,000` intrinsic base must update, particularly to account for the state-gas charge on transactions that create new accounts.\n \n ## Test Cases\n \n-Intrinsic and top-level gas, by case:\n+Costs are given as intrinsic + runtime, by case:\n \n-1. Self-transfer (`from == to`): `12,000`.\n-2. Zero-value transaction to any address (existing, empty, or contract): `15,000` regular (`12,000 + COLD_ACCOUNT_ACCESS`), `0` state. A self-target is `12,000`.\n-3. Value transfer to an existing EOA: `21,000` regular, `0` state.\n-4. Value transfer creating a new account (recipient non-existent): `21,000` regular, `183,600` state.\n-5. Value transfer to a 7702-delegated account: `24,000` regular plus execution.\n-6. Contract-creation transaction, `value = 0`: `23,000` regular, `183,600` state.\n-7. Contract-creation transaction, `value > 0`: `24,756` regular, `183,600` state.\n-8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code; access-list and authorization costs are unchanged.\n-9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled to the reservoir.\n-10. Transaction whose gas suffices for intrinsic cost but not for the top-level charge (a value transfer to a non-existent recipient lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the extra `COLD_ACCOUNT_ACCESS`): the transaction is valid and included, halts out-of-gas, and its state changes are reverted; it is **not** invalidated.\n+1. Self-transfer (`from == to`): `12,000` intrinsic, `0` runtime.\n+2. Zero-value transaction to any address (existing, empty, or contract): `15,000` intrinsic (`TX_BASE_COST + COLD_ACCOUNT_ACCESS`), `0` runtime, `0` state. A self-target is `12,000`.\n+3. Value transfer to an existing EOA: `21,000` intrinsic, `0` runtime, `0` state.\n+4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic regular; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n+5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` regular plus execution.\n+6. Contract-creation transaction, `value = 0`: `23,000` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+7. Contract-creation transaction, `value > 0`: `24,756` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `REGULAR_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state and `ACCOUNT_WRITE` regular, an existing authority pays neither, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled in LIFO order per [EIP-8037](./eip-8037.md) \u2014 credited to `gas_left` up to the portion the charge drew from it, with the remainder returning to the `state_gas_reservoir`.\n+10. Transaction whose gas covers intrinsic cost but not a runtime charge \u2014 e.g. a value transfer to a non-existent recipient or a contract creation to a non-existent target lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the delegation-target access: the transaction is valid and included, halts out-of-gas, and all runtime state changes \u2014 including any applied EIP-7702 delegations \u2014 are reverted; it is **not** invalidated.\n \n Blocks of pure ETH transfers should be tested across all EL clients (e.g. on Perfnet) to confirm the pricing matches measured runtimes at the chosen throughput anchor.\n \n ## Security Considerations\n \n-The decomposed charges sum to at least the legacy `21,000` for any transaction that moves value to a distinct account, and add state gas for transactions that grow the state. No path is cheaper than under the flat base in a way that increases per-block resource consumption; the change reallocates cost to match resources and prices state growth that was previously unpriced.\n+The decomposed charges, intrinsic plus runtime, sum to at least the legacy `21,000` for any transaction that moves value to a distinct, cold account, and add state gas for transactions that grow the state. No path is cheaper than under the flat base in a way that increases per-block resource consumption; the change reallocates cost to match resources and prices state growth that was previously unpriced.\n+\n+Moving the state-dependent charges to runtime lowers the validity threshold (a simple call is valid at `TX_BASE_COST + COLD_ACCOUNT_ACCESS` rather than `21,000`), but does not enable underpriced work. A transaction that passes the intrinsic check yet runs out of runtime gas is still included and the sender still pays for every gas unit consumed, with all state changes reverted \u2014 exactly the cost profile of an out-of-gas inside a call frame. The runtime mechanism thus charges the same resources as before; it only relocates where, in the lifecycle, the gas is metered.\n \n The semantics of `SELFDESTRUCT` are unchanged. Per [EIP-6780](./eip-6780.md), only contracts created within the same transaction may be fully deleted; this EIP does not reprice or modify any `SELFDESTRUCT` side effects.\n \n", "order": 42, "subject": "Update EIP-2780: move state-dependent charges to runtime (cold surcharge, new-account state gas)", "tokens": [ "TX_BASE_COST = 12,000", "TX_BASE_COST", "COLD_ACCOUNT_ACCESS", "WARM_ACCESS", "ACCOUNT_WRITE", "CREATE_ACCESS", "REGULAR_PER_AUTH_BASE_COST", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB", "CPSB", "tx.sender", "None", "PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length", "CALL", "tx.to", "accessed_addresses", "gas_left", "state_gas_reservoir", "TX_BASE_COST + COLD_ACCOUNT_ACCESS", "TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST", "tx.value", "TX_BASE_COST + CREATE_ACCESS", "TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST", "created_address.balance", "21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata", "21,000", "PER_EMPTY_ACCOUNT_COST", "CREATE", "CREATE2", "GAS_CREATE", "from == to", "12,000", "0", "15,000", "183,600", "24,000", "value = 0", "23,000", "value > 0", "24,756" ], "window": [ { "author_date": "2026-07-13T13:36:50+02:00", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)" }, { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "24c159de27bc2953a9c0d2c5362fe4afcfee8bfe", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 3, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_empty_recipient", "tokens": [ "ACCOUNT_WRITE", "tx.to", "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 3, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_funded_recipient", "tokens": [ "ACCOUNT_WRITE", "tx.to", "COLD_ACCOUNT_ACCESS" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 3, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "ACCOUNT_WRITE", "tx.to", "COLD_ACCOUNT_ACCESS" ] } ], "commit": "7271ee9ae254f772f4fce08d89d3671b3874f314", "constants": [], "date": "2026-07-09T21:24:43+08:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex e1e6cd9c..24c159de 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -89,12 +89,15 @@ Once the transaction passes the intrinsic gas check, the state-dependent charges\n While processing each valid authorization \u2014 the per-authority rules of [EIP-8037](./eip-8037.md) ensure each charge below is applied at most once per authority:\n \n - if the authority account does not already exist, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas for the new account leaf;\n-- if this is the first write to the authority within the transaction (i.e. the authority differs from `tx.to`), charge `ACCOUNT_WRITE` in regular gas;\n+- if this is the first write to the authority within the transaction, charge `ACCOUNT_WRITE` in regular gas; the charge is skipped when the write is already paid for, namely when the authority:\n+ - is `tx.sender`, covered by `TX_BASE_COST`;\n+ - was written by a preceding valid authorization;\n+ - is `tx.to` of a value-bearing transaction, covered by `TX_VALUE_COST`;\n - if the authorization writes the 23-byte delegation indicator into a previously empty slot (net-new delegation bytes), charge `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` in state gas.\n \n `REGULAR_PER_AUTH_BASE_COST` already prices the authority access at the cold rate at the intrinsic phase, so no account-access charge is added at runtime for the authority; the authority is added to `accessed_addresses`, per [EIP-7702](./eip-7702.md).\n \n-Then the recipient account is loaded and added to `accessed_addresses` \u2014 its access was already charged at the cold rate at the intrinsic phase \u2014 and unless the transaction is a self-transfer or a contract creation:\n+Then the recipient account is added to the BAL \u2014 its access was already charged at the cold rate at the intrinsic phase, and it is warm from transaction start \u2014 and unless the transaction is a self-transfer or a contract creation:\n \n - if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n - if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in regular gas \u2014 `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n@@ -103,7 +106,7 @@ For a contract-creation transaction, the account at the deployment address is lo\n \n The first frame is then entered with the gas remaining after these runtime charges.\n \n-Running out of runtime gas does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check, which needs no state access; the runtime charges, which do, can never retroactively invalidate an already-validated transaction. On out-of-gas in this pre-execution phase the transaction is included, halts before the first frame is entered, the sender pays for all gas consumed, and all state changes are reverted \u2014 including any [EIP-7702](./eip-7702.md) delegations, which an out-of-gas *inside* the frame would leave in place, per [EIP-7702](./eip-7702.md).\n+Running out of runtime gas does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check, which needs no state access; the runtime charges, which do, can never retroactively invalidate an already-validated transaction. On out-of-gas in this pre-execution phase the transaction is included, halts before the first frame is entered, the sender pays for all gas consumed, and all state changes are reverted \u2014 including any [EIP-7702](./eip-7702.md) delegations. An out-of-gas *inside* the frame, by contrast, leaves the applied delegations in place, per [EIP-7702](./eip-7702.md), and their runtime charges remain consumed.\n \n If a contract-creation transaction's initcode reverts, the transaction remains valid and any `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`. On an exceptional halt the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail \u2014 though on mainnet all precompiles are already prefunded.\n \n@@ -131,7 +134,7 @@ Costs are split between the intrinsic phase and the runtime phase, each in regul\n - **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `REGULAR_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n - **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches. Listing the recipient or an authority does not reduce the intrinsic cold-rate charges; it only pre-warms the address for execution.\n - **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n-- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `REGULAR_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` plus `ACCOUNT_WRITE` for a non-existent authority, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `REGULAR_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log, priced explicitly as `TRANSFER_LOG_COST` rather than absorbed into the base.\n - **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the BAL even when the transaction reverts.\n \n@@ -189,7 +192,7 @@ A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor t\n \n ### Decomposing authorization cost\n \n-[EIP-7702](./eip-7702.md) charges `PER_EMPTY_ACCOUNT_COST` per authorization at the intrinsic phase and refunds it when the authority already exists, over-reserving gas the transaction may never use. Splitting the cost removes the over-charge: only `REGULAR_PER_AUTH_BASE_COST` \u2014 the calldata, signature recovery, cold authority access, and warm writes every authorization performs \u2014 is knowable without state access and stays intrinsic. The new-account leaf and its `ACCOUNT_WRITE`, and the delegation-indicator bytes, depend on state and are charged at runtime during authorization processing, billed only for the authorities that incur them.\n+[EIP-7702](./eip-7702.md) charges `PER_EMPTY_ACCOUNT_COST` per authorization at the intrinsic phase and refunds it when the authority already exists, over-reserving gas the transaction may never use. Splitting the cost removes the over-charge: only `REGULAR_PER_AUTH_BASE_COST` \u2014 the calldata, signature recovery, cold authority access, and warm writes every authorization performs \u2014 is knowable without state access and stays intrinsic. The new-account leaf, the first-write `ACCOUNT_WRITE`, and the delegation-indicator bytes depend on state and are charged at runtime during authorization processing, billed only for the authorities that incur them.\n \n ## Backwards Compatibility\n \n@@ -206,7 +209,7 @@ Costs are given as intrinsic + runtime, by case:\n 5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` regular plus execution.\n 6. Contract-creation transaction, `value = 0`: `23,000` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n 7. Contract-creation transaction, `value > 0`: `24,756` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n-8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `REGULAR_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state and `ACCOUNT_WRITE` regular, an existing authority pays neither, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `REGULAR_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state, the first write to the authority within the transaction pays `ACCOUNT_WRITE` regular, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n 9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled in LIFO order per [EIP-8037](./eip-8037.md) \u2014 credited to `gas_left` up to the portion the charge drew from it, with the remainder returning to the `state_gas_reservoir`.\n 10. Transaction whose gas covers intrinsic cost but not a runtime charge \u2014 e.g. a value transfer to a non-existent recipient or a contract creation to a non-existent target lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the delegation-target access: the transaction is valid and included, halts out-of-gas, and all runtime state changes \u2014 including any applied EIP-7702 delegations \u2014 are reverted; it is **not** invalidated.\n \n", "order": 43, "subject": "Update EIP-2780: clarify 2780", "tokens": [ "ACCOUNT_WRITE", "tx.sender", "TX_BASE_COST", "tx.to", "TX_VALUE_COST", "COLD_ACCOUNT_ACCESS", "accessed_addresses", "REGULAR_PER_AUTH_BASE_COST", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB", "PER_EMPTY_ACCOUNT_COST" ], "window": [ { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" }, { "author_date": "2026-07-13T13:36:50+02:00", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)" }, { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "33dd84fa85b5899aae2ced08757e780bb6b3e258", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_authorization_oog.py", "score": 3, "test": "test_authorization_oog.py::test_auth_state_charges_survive_dispatch_halt_with_reservoir", "tokens": [ "gas_left", "state_gas_reservoir", "CALL" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_warmth_invariants.py", "score": 3, "test": "test_warmth_invariants.py::test_intrinsic_accounts_warm_for_execution", "tokens": [ "COLD_ACCOUNT_ACCESS", "accessed_addresses", "WARM_ACCESS" ] } ], "commit": "2e7e88bb8dc0ead4db7726ac6af89f576c221d93", "constants": [ { "after": [], "before": [ "3" ], "name": "COLD_ACCOUNT_ACCESS" }, { "after": [], "before": [ "1" ], "name": "TRANSFER_LOG_COST" }, { "after": [], "before": [ "12" ], "name": "TX_BASE_COST" }, { "after": [], "before": [ "4" ], "name": "TX_VALUE_COST" } ], "date": "2026-07-09T16:33:20Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 24c159de..33dd84fa 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -8,21 +8,14 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 2718, 2929, 2930, 6780, 7523, 7623, 7702, 7708, 7904, 7928, 8037, 8038\n+requires: 2718, 2929, 2930, 6780, 7523, 7623, 7702, 7708, 7928, 8037, 8038\n ---\n \n ## Abstract\n \n-This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes:\n+This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes. The costs of plain ETH transfers and contract creation transactions remain equal, while ETH transfers to new accounts and [7702](./eip-7702.md)-related transactions\n \n-- `TX_BASE_COST = 12,000` \u2014 ECDSA recovery, the sender account's access and write, and the inclusion of the transaction in the block (which is transient and expires with history).\n-- `COLD_ACCOUNT_ACCESS = 3,000` \u2014 the recipient account touch, per [EIP-8038](./eip-8038.md).\n-- `TX_VALUE_COST = 4,244` \u2014 the recipient balance write performed by a value transfer.\n-- `TRANSFER_LOG_COST = 1,756` \u2014 the [EIP-7708](./eip-7708.md) transfer log.\n-\n-A plain ETH transfer to an existing account still costs `12,000 + 3,000 + 4,244 + 1,756 = 21,000` gas. The headline number is unchanged, but it is now built from measured components rather than a single legacy constant, so each transaction pays for the work it does and nothing it does not.\n-\n-The gas charging is split across two phases. **Intrinsic gas** is the state-independent cost of including the transaction in a block and is the sole input to the transaction-validity check; top-level account accesses whose warmth cannot be known without state \u2014 the recipient touch and the [EIP-7702](./eip-7702.md) authority access \u2014 are charged here at the cold rate unconditionally. **Runtime gas** covers the state-dependent charges \u2014 new-account creation and delegation resolution \u2014 charged as the first frame is entered, metered in same way as inside the frame. Running out of gas in runtime does not invalidate the transaction. Instead, the transaction is included, execution is skipped, and all state changes are reverted, as for any out-of-gas halt inside a frame.\n+In addition, the new primitives are split into intrinsic gas and runtime gas. **Intrinsic gas** is the state-independent cost of including the transaction in a block and is the sole input to the transaction-validity check. **Runtime gas** covers the state-dependent charges, such as new account creation and delegation resolution. Runtime gas is charged as the first frame is entered, metered in same way as inside the frame. Running out of gas in runtime does not invalidate the transaction. Instead, the transaction is included, execution is skipped, and all state changes are reverted, as for any out-of-gas halt inside a frame.\n \n This EIP does not change calldata or access-list metering.\n \n@@ -35,9 +28,7 @@ This EIP replaces the constant with a decomposition into named primitives, each\n - **Accuracy.** Signature recovery, account accesses, account writes, the transfer log, and state creation are billed separately, so cost tracks usage.\n - **State growth is internalized.** A value transfer that creates an account, like a contract-creation transaction, pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. This aligns top-level value transfers with internal `CALL`-based account creation, which already pays for the new leaf, and prices the durable state cost the flat base ignored.\n - **Composability.** Pricing intrinsic cost as a sum of the same primitives used elsewhere in the gas schedule lets future repricings (e.g. of cold-account access in [EIP-8038](./eip-8038.md), or of state bytes in [EIP-8037](./eip-8037.md)) flow through automatically, without re-deriving a bespoke constant.\n-\n-Transaction costs fall into two groups. Some can be computed from the transaction's fields alone, such as signature recovery, the sender's account access and write, the transaction's bytes in the block, and the recipient and authority touches \u2014 charged at the cold rate, since a top-level account is loaded from cold state once per transaction. Others require reading state, such as creating a new account or resolving a delegation. This EIP splits the two: intrinsic gas is reduced to the minimum needed to include the transaction in a block and remains the sole input to the validity check, while state-dependent costs are charged at runtime, using the same metering as inside a frame. This removes the overcharging of the flat worst-case reservation, since a transaction pays a state-dependent cost only when it actually incurs it. It also allows halting in the pre-execution phase: a transaction whose gas covers inclusion but not a state-dependent charge is included, charged for the gas consumed, and reverted, exactly like an out-of-gas inside a call frame.\n-\n+- **No worst-case reservation.** State-dependent costs, such as new account creation and delegation resolution, are charged at runtime only when a transaction incurs them, rather than reserved up front. Intrinsic gas covers only inclusion and remains the sole validity input, so a transaction that funds inclusion but not a runtime charge is included, charged for the gas consumed, and reverted, exactly like an out-of-gas halt inside a call frame.\n \n ## Specification\n \n@@ -57,7 +48,7 @@ The remaining values are defined in other EIPs and referenced here:\n | `WARM_ACCESS` | 100 | [EIP-8038](./eip-8038.md) | Warm account touch |\n | `ACCOUNT_WRITE` | 8,000 | [EIP-8038](./eip-8038.md) | First write to an account leaf |\n | `CREATE_ACCESS` | 11,000 | [EIP-8038](./eip-8038.md) | Contract-deployment account access and write |\n-| `REGULAR_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery (per [EIP-7904](./eip-7904.md)), cold authority access, and warm writes |\n+| `REGULAR_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery, cold authority access, and warm writes |\n | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 183,600 | [EIP-8037](./eip-8037.md) | State gas for one new account leaf |\n | `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` | 35,190 | [EIP-8037](./eip-8037.md) | State gas for one 23-byte delegation indicator |\n \n@@ -71,22 +62,42 @@ A transaction's intrinsic base cost is decomposed into the following explicit pr\n - `tx.to` is charged based on its type:\n - if self-transfer (`tx.sender == tx.to`), there are no charges;\n - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in regular gas; the new-account state charge depends on whether the deployment target exists and is charged at runtime;\n- - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas \u2014 the recipient touch, charged at the cold rate unconditionally.\n+ - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas (covering the recipient touch, charged at the cold rate unconditionally).\n - `tx.value` is charged based on its value:\n - if zero, there are no charges;\n - if non-zero and self-transfer, there are no charges;\n - if non-zero and contract creation, charge `TRANSFER_LOG_COST` in regular gas;\n - otherwise, charge `TRANSFER_LOG_COST + TX_VALUE_COST` in regular gas.\n - each [EIP-7702](./eip-7702.md) authorization is charged `REGULAR_PER_AUTH_BASE_COST` in regular gas.\n-- calldata and access-list costs are unchanged.\n \n-The recipient touch and the authority access (inside `REGULAR_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm \u2014 for example via an access list \u2014 keeping intrinsic gas computable without any state read. These charges replace the legacy contract-creation transaction charges and EIP-7702's flat `PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length` intrinsic charge. Calldata and access-list metering remain unchanged.\n+The recipient touch and the authority access (inside `REGULAR_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list) keeping intrinsic gas computable without any state read. =\n+\n+These charges replace the legacy contract-creation transaction charges and EIP-7702's flat `PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length` intrinsic charge.\n+\n+Calldata and access-list metering remain unchanged.\n \n ### Runtime gas costs\n \n-Once the transaction passes the intrinsic gas check, the state-dependent charges are applied at runtime \u2014 as the first frame is entered \u2014 drawing from the same gas the transaction supplies. Like every charge in this EIP, each runtime charge is split into regular gas and state gas per [EIP-8037](./eip-8037.md): account accesses and writes are regular gas, while durable state growth (new account leaves and net-new delegation bytes) is state gas. This mirrors how a `CALL` frame is metered: accesses, account creation, and writes are charged as state is touched, not up front. Because these charges require state access, they are evaluated only after [EIP-7702](./eip-7702.md) authorizations are applied.\n+Once the transaction passes the intrinsic gas check, the state-dependent gas costs (i.e., runtime costs) are applied. The runtime charges happen in a distinct window \u2014 the pre-execution phase \u2014 after the transaction is already deemed valid but before the first EVM frame is entered. This phase includes the following action, by order:\n+\n+1. The available gas is split into `gas_left` and `state_gas_reservoir`, and all the gas accounting counters are initialized, per [EIP-8037](./eip-8037.md);\n+2. [EIP-7702](./eip-7702.md) authorizations are processed;\n+3. The recipient account is added to the [EIP-7928](./eip-7928.md)'s Block-Level Access List (its access was already charged at the cold rate at the intrinsic phase, and it is warm from transaction start);\n+4. The remaining account creation and access costs are applied.\n+\n+Like every charge in this EIP, each runtime charge is split into regular gas and state gas per [EIP-8037](./eip-8037.md): account accesses and writes are regular gas, while durable state growth (new account leaves and net-new delegation bytes) is state gas. This mirrors how a `CALL` frame is metered: accesses, account creation, and writes are charged as state is touched, not up front.\n+\n+Running out of gas during these runtime charges does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check.\n \n-While processing each valid authorization \u2014 the per-authority rules of [EIP-8037](./eip-8037.md) ensure each charge below is applied at most once per authority:\n+If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the already applied delegations during pre-execution phase stay in place, per [EIP-7702](./eip-7702.md), and all runtime charges remain consumed.\n+\n+If a contract-creation transaction's initcode reverts, the transaction remains valid and any state gas charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`.\n+\n+On an exceptional halt, the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert. Its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail, though on mainnet all precompiles are already prefunded.\n+\n+#### [EIP-7702](./eip-7702.md) authorization processing\n+\n+While processing each valid authorization, the following charges are applied **at most once per authority**:\n \n - if the authority account does not already exist, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas for the new account leaf;\n - if this is the first write to the authority within the transaction, charge `ACCOUNT_WRITE` in regular gas; the charge is skipped when the write is already paid for, namely when the authority:\n@@ -95,20 +106,16 @@ While processing each valid authorization \u2014 the per-authority rules of [EIP-80\n - is `tx.to` of a value-bearing transaction, covered by `TX_VALUE_COST`;\n - if the authorization writes the 23-byte delegation indicator into a previously empty slot (net-new delegation bytes), charge `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` in state gas.\n \n-`REGULAR_PER_AUTH_BASE_COST` already prices the authority access at the cold rate at the intrinsic phase, so no account-access charge is added at runtime for the authority; the authority is added to `accessed_addresses`, per [EIP-7702](./eip-7702.md).\n+For each authorization, after the gas charges of that authorization are processed, the authority is added to `accessed_addresses`, per [EIP-7702](./eip-7702.md).\n \n-Then the recipient account is added to the BAL \u2014 its access was already charged at the cold rate at the intrinsic phase, and it is warm from transaction start \u2014 and unless the transaction is a self-transfer or a contract creation:\n+#### Account creation and access charges\n \n-- if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n-- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in regular gas \u2014 `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n-\n-For a contract-creation transaction, the account at the deployment address is loaded instead; if it does not already exist, per the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. Whether the target exists can only be determined by reading state, so the check is part of the runtime phase.\n+If the transaction is not a self-transfer nor a contract creation, then the following charges are applied:\n \n-The first frame is then entered with the gas remaining after these runtime charges.\n-\n-Running out of runtime gas does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check, which needs no state access; the runtime charges, which do, can never retroactively invalidate an already-validated transaction. On out-of-gas in this pre-execution phase the transaction is included, halts before the first frame is entered, the sender pays for all gas consumed, and all state changes are reverted \u2014 including any [EIP-7702](./eip-7702.md) delegations. An out-of-gas *inside* the frame, by contrast, leaves the applied delegations in place, per [EIP-7702](./eip-7702.md), and their runtime charges remain consumed.\n+- if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n+- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in regular gas: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n \n-If a contract-creation transaction's initcode reverts, the transaction remains valid and any `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`. On an exceptional halt the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert; its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail \u2014 though on mainnet all precompiles are already prefunded.\n+For a contract-creation transaction, if the deployment address does not already exist, per the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas.\n \n ### Transaction reference cases\n \n", "order": 44, "subject": "Update EIP-2780: align with recent EIP-2780 changes", "tokens": [ "21,000", "REGULAR_PER_AUTH_BASE_COST", "COLD_ACCOUNT_ACCESS", "PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length", "gas_left", "state_gas_reservoir", "CALL", "accessed_addresses", "tx.value > 0", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "WARM_ACCESS" ], "window": [ { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" }, { "author_date": "2026-07-13T13:36:50+02:00", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)" }, { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" } ] }, { "blob": "45bfde371be97a929d482e021556445a8364aec0", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_transactions.py", "score": 4, "test": "test_value_moving_transactions.py::test_value_moving_transactions", "tokens": [ "TX_VALUE_COST", "COLD_ACCOUNT_ACCESS", "value > 0", "0" ] } ], "commit": "04dd54c2e7ec1f408cf4a150d5c1aa43573bd025", "constants": [ { "after": [], "before": [ "375" ], "name": "GAS_LOG_DATA_PER_BYTE" }, { "after": [], "before": [ "1,756", "GAS_LOG" ], "name": "TRANSFER_LOG_COST" }, { "after": [ "6,000" ], "before": [ "4,244" ], "name": "TX_VALUE_COST" } ], "date": "2026-07-22T16:05:24Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 33dd84fa..45bfde37 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -8,7 +8,7 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2020-07-11\n-requires: 2718, 2929, 2930, 6780, 7523, 7623, 7702, 7708, 7928, 8037, 8038\n+requires: 2718, 2929, 2930, 6780, 7623, 7702, 7708, 7928, 8037, 8038\n ---\n \n ## Abstract\n@@ -25,7 +25,7 @@ The flat `21,000` intrinsic cost charges every transaction the same amount regar\n \n This EIP replaces the constant with a decomposition into named primitives, each priced to the resource it represents. The goal is to make every transaction's cost reflect its actual work:\n \n-- **Accuracy.** Signature recovery, account accesses, account writes, the transfer log, and state creation are billed separately, so cost tracks usage.\n+- **Accuracy.** Signature recovery, account accesses, account writes, value transfers, and state creation are billed separately, so cost tracks usage.\n - **State growth is internalized.** A value transfer that creates an account, like a contract-creation transaction, pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas. This aligns top-level value transfers with internal `CALL`-based account creation, which already pays for the new leaf, and prices the durable state cost the flat base ignored.\n - **Composability.** Pricing intrinsic cost as a sum of the same primitives used elsewhere in the gas schedule lets future repricings (e.g. of cold-account access in [EIP-8038](./eip-8038.md), or of state bytes in [EIP-8037](./eip-8037.md)) flow through automatically, without re-deriving a bespoke constant.\n - **No worst-case reservation.** State-dependent costs, such as new account creation and delegation resolution, are charged at runtime only when a transaction incurs them, rather than reserved up front. Intrinsic gas covers only inclusion and remains the sole validity input, so a transaction that funds inclusion but not a runtime charge is included, charged for the gas consumed, and reverted, exactly like an out-of-gas halt inside a call frame.\n@@ -37,8 +37,7 @@ This EIP replaces the constant with a decomposition into named primitives, each\n | Name | Value | Definition |\n | :----: | :----: | :---- |\n | `TX_BASE_COST` | 12,000 | Sender cost: ECDSA recovery, the sender's account access, the sender's account write and inclusion in block |\n-| `TX_VALUE_COST` | 4,244 | Recipient balance write performed by a value transfer |\n-| `TRANSFER_LOG_COST` | 1,756 | [EIP-7708](./eip-7708.md) transfer log: `GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE` |\n+| `TX_VALUE_COST` | 6,000 | Recipient balance write and [EIP-7708](./eip-7708.md) transfer log performed by a value transfer |\n \n The remaining values are defined in other EIPs and referenced here:\n \n@@ -66,8 +65,8 @@ A transaction's intrinsic base cost is decomposed into the following explicit pr\n - `tx.value` is charged based on its value:\n - if zero, there are no charges;\n - if non-zero and self-transfer, there are no charges;\n- - if non-zero and contract creation, charge `TRANSFER_LOG_COST` in regular gas;\n- - otherwise, charge `TRANSFER_LOG_COST + TX_VALUE_COST` in regular gas.\n+ - if non-zero and contract creation, there are no charges; the recipient balance write is already covered by `CREATE_ACCESS`;\n+ - otherwise, charge `TX_VALUE_COST` in regular gas.\n - each [EIP-7702](./eip-7702.md) authorization is charged `REGULAR_PER_AUTH_BASE_COST` in regular gas.\n \n The recipient touch and the authority access (inside `REGULAR_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list) keeping intrinsic gas computable without any state read. =\n@@ -89,7 +88,7 @@ Like every charge in this EIP, each runtime charge is split into regular gas and\n \n Running out of gas during these runtime charges does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check.\n \n-If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the already applied delegations during pre-execution phase stay in place, per [EIP-7702](./eip-7702.md), and all runtime charges remain consumed.\n+If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the delegations applied during the pre-execution phase stay in place, per [EIP-7702](./eip-7702.md); the state gas that paid for them \u2014 each authority's account-creation and delegation-indicator bytes \u2014 therefore stays consumed, since that state persists beyond the frame. Runtime state charges whose state is instead rolled back with the frame (for example, a contract-creation transaction's new-account charge; see below) are refilled in LIFO order per [EIP-8037](./eip-8037.md), and regular-gas runtime charges (such as a delegation-target access) remain consumed as ordinary execution gas.\n \n If a contract-creation transaction's initcode reverts, the transaction remains valid and any state gas charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`.\n \n@@ -126,23 +125,23 @@ Costs are split between the intrinsic phase and the runtime phase, each in regul\n | ETH transfer to self | `TX_BASE_COST` / 0 | 0 / 0 | 12,000 / 0 |\n | No-transfer to EOA / empty account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | 0 / 0 | 15,000 / 0 |\n | No-transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | execution / 0 | 15,000 + execution / 0 |\n-| ETH transfer to existing EOA | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | 0 / 0 | 21,000 / 0 |\n-| ETH transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | execution / 0 | 21,000 + execution / 0 |\n+| ETH transfer to existing EOA | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | 0 / 0 | 21,000 / 0 |\n+| ETH transfer to contract | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | execution / 0 | 21,000 + execution / 0 |\n | No-transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 18,000 + execution / 0 |\n-| ETH transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 24,000 + execution / 0 |\n+| ETH transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 24,000 + execution / 0 |\n | ETH transfer to self, sender 7702 delegated | `TX_BASE_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 15,000 + execution / 0 |\n-| ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 / 183,600 |\n+| ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 / 183,600 |\n | Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 / 183,600 |\n-| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,756 / 183,600 |\n-| Create transaction, `tx.value` > 0, `created_address.balance` > 0 | `TX_BASE_COST + CREATE_ACCESS + TRANSFER_LOG_COST` / 0 | 0 / 0 | 24,756 / 0 |\n+| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 / 183,600 |\n+| Create transaction, `tx.value` > 0, `created_address.balance` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / 0 | 23,000 / 0 |\n \n ### Interactions with other EIPs\n \n - **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `REGULAR_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n - **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches. Listing the recipient or an authority does not reduce the intrinsic cold-rate charges; it only pre-warms the address for execution.\n-- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST + TRANSFER_LOG_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n+- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n - **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `REGULAR_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n-- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log, priced explicitly as `TRANSFER_LOG_COST` rather than absorbed into the base.\n+- **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log; its cost is folded into `TX_VALUE_COST` alongside the recipient balance write rather than priced as a separate primitive.\n - **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the BAL even when the transaction reverts.\n \n ## Rationale\n@@ -155,7 +154,7 @@ Charging the runtime part as the first frame is entered makes the top-level tran\n \n ### Pricing only the work each transaction does\n \n-The decomposition charges each primitive once, where the resource is consumed: signature recovery and the sender's access and write in `TX_BASE_COST`; the recipient touch in `COLD_ACCOUNT_ACCESS`; the recipient balance write in `TX_VALUE_COST`; the transfer log in `TRANSFER_LOG_COST`; and durable state creation in `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB`. A zero-value transaction pays only for the touches it makes, while a value transfer that creates an account pays for the new leaf it adds. This removes the cross-subsidy in the flat base, where simple transactions overpaid and state-creating ones underpaid.\n+The decomposition charges each primitive once, where the resource is consumed: signature recovery and the sender's access and write in `TX_BASE_COST`; the recipient touch in `COLD_ACCOUNT_ACCESS`; the recipient balance write and transfer log in `TX_VALUE_COST`; and durable state creation in `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB`. A zero-value transaction pays only for the touches it makes, while a value transfer that creates an account pays for the new leaf it adds. This removes the cross-subsidy in the flat base, where simple transactions overpaid and state-creating ones underpaid.\n \n The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE` opcode base already prices internal account creation, and top-level contract-creation transactions pay `CREATE_ACCESS` intrinsically plus the same state-gas charge at runtime when the deployment target does not already exist. Charging the state-growth cost on top-level value transfers that create accounts aligns them with the `CALL`-based creation path, which has always paid for the new leaf.\n \n@@ -177,18 +176,12 @@ For any candidate target, the analysis surfaces each client's worst case across\n The two empirical coefficients map onto the decomposition as follows:\n \n - the per-transfer base runtime covers signature recovery, the sender's access and write, and the recipient touch \u2192 `TX_BASE_COST + COLD_ACCOUNT_ACCESS`;\n-- the value increment covers the recipient balance write and the transfer log \u2192 `TX_VALUE_COST + TRANSFER_LOG_COST`.\n+- the value increment covers the recipient balance write and the transfer log \u2192 `TX_VALUE_COST`.\n \n-`COLD_ACCOUNT_ACCESS` is taken directly from [EIP-8038](./eip-8038.md), since the recipient touch is the same cold-account access priced there, and `TRANSFER_LOG_COST` is fixed by the [EIP-7708](./eip-7708.md) log shape (see [Transfer log cost](#transfer-log-cost)). `TX_BASE_COST` and `TX_VALUE_COST` are the residual parameters this EIP introduces.\n+`COLD_ACCOUNT_ACCESS` is taken directly from [EIP-8038](./eip-8038.md), since the recipient touch is the same cold-account access priced there. `TX_BASE_COST` and `TX_VALUE_COST` are the residual parameters this EIP introduces.\n \n As in [EIP-8038](./eip-8038.md), these numbers are provisional. At the 100 Mgas/s anchor some clients are currently slower than the target on the heaviest paths and must optimize to meet it; the values will be refined as client optimizations land and the benchmarks mature.\n \n-### Transfer log cost\n-\n-`TRANSFER_LOG_COST` assumes a 32-byte log data payload because that is exactly the [EIP-7708](./eip-7708.md) transfer-log shape, not an arbitrary choice. The log is `LOG3`-shaped: three indexed topics (`keccak256(\"Transfer(address,address,uint256)\")`, `from`, `to`) and a `data` field carrying a single `uint256` wei amount. Indexed topics do not count as data bytes, so the only data payload is the 32-byte amount \u2014 always a full word, never variable length. Hence:\n-\n-`TRANSFER_LOG_COST = GAS_LOG + 3 \u00d7 GAS_LOG_TOPIC + 32 \u00d7 GAS_LOG_DATA_PER_BYTE = 375 + 3 \u00d7 375 + 32 \u00d7 8 = 1,756`\n-\n ### Not metering the transaction envelope as calldata\n \n Only `tx.data` bytes are metered at the calldata schedule; the envelope RLP (`nonce`, `gas*`, `to`, `value`, `v`, `r`, `s`) is not. Pricing full-transaction bytes would make intrinsic gas depend on `gas_limit` and variable-length signature elements \u2014 creating a fixed-point estimation problem, since `gas_limit` would depend on the signature, which itself encodes `gas_limit` \u2014 and would couple the fee to one serialization, weakening [EIP-2718](./eip-2718.md) type neutrality and future encodings. Treating calldata as opaque bytes avoids both issues. A plain ETH transfer carries empty `tx.data` and so pays zero calldata gas regardless.\n@@ -215,7 +208,7 @@ Costs are given as intrinsic + runtime, by case:\n 4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic regular; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n 5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` regular plus execution.\n 6. Contract-creation transaction, `value = 0`: `23,000` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n-7. Contract-creation transaction, `value > 0`: `24,756` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+7. Contract-creation transaction, `value > 0`: `23,000` intrinsic regular (identical to the `value = 0` case, since the recipient balance write is covered by `CREATE_ACCESS`); `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n 8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `REGULAR_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state, the first write to the authority within the transaction pays `ACCOUNT_WRITE` regular, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n 9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled in LIFO order per [EIP-8037](./eip-8037.md) \u2014 credited to `gas_left` up to the portion the charge drew from it, with the remainder returning to the `state_gas_reservoir`.\n 10. Transaction whose gas covers intrinsic cost but not a runtime charge \u2014 e.g. a value transfer to a non-existent recipient or a contract creation to a non-existent target lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the delegation-target access: the transaction is valid and included, halts out-of-gas, and all runtime state changes \u2014 including any applied EIP-7702 delegations \u2014 are reverted; it is **not** invalidated.\n", "order": 45, "subject": "Update EIP-2780: fold transfer log cost into TX_VALUE_COST", "tokens": [ "TX_VALUE_COST", "CREATE_ACCESS", "TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST", "COLD_ACCOUNT_ACCESS", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "tx.value", "TX_BASE_COST + CREATE_ACCESS", "created_address.balance", "21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata", "21,000", "TX_BASE_COST", "value > 0", "23,000", "value = 0", "183,600", "0" ], "window": [ { "author_date": "2026-08-05T19:05:38+08:00", "commit": "4b4415c952b6ac1e341bcc46b0441327675a2f6e", "subject": "feat(tests): enhance test coverage, add mainnet test for eip-2780 (#3266)" }, { "author_date": "2026-08-05T11:10:01+02:00", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)" }, { "author_date": "2026-07-30T11:45:35+02:00", "commit": "d3a58bbcd7443755763a6199554b35862f07a94e", "subject": "refactor(spec-specs,tests): rename REGULAR_PER_AUTH_BASE_COST to EXECUTION_PER_AUTH_BASE_COST (#3263)" }, { "author_date": "2026-07-29T19:47:14+02:00", "commit": "593078295684ff46f686607726d5a839d50b6205", "subject": "refactor(spec-specs,tests): rename EIP-8037 regular gas to execution gas (#3238)" }, { "author_date": "2026-07-29T16:51:22+02:00", "commit": "1311ff376d2f7fbd5270e38e7bf13847c14b883e", "subject": "feat(specs,amsterdam): EIP-2780 - fold transfer log cost into value transfer cost (#3214)" }, { "author_date": "2026-07-24T16:53:32+02:00", "commit": "85aa48c742c38a2d5a876f84ebf8082a50273064", "subject": "tests(amsterdam): EIP-2780 - pin receipt status of top-frame OOG tx in multi-tx blocks (#3232)" }, { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" }, { "author_date": "2026-07-13T13:36:50+02:00", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)" }, { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" } ] }, { "blob": "aea7ecac93eed407a2594fa2f65224cbff7660c5", "candidates": [], "commit": "0a1d42b3c7a455cd812ce73b4b937c16d6f20bd6", "constants": [], "date": "2026-07-30T12:54:28Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 45bfde37..aea7ecac 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -4,7 +4,7 @@ title: Resource-based intrinsic transaction gas\n description: Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal), Dragan Rakita (@rakita)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n-status: Draft\n+status: Review\n type: Standards Track\n category: Core\n created: 2020-07-11\n", "order": 46, "subject": "Update EIP-2780: Move to Review", "tokens": [], "window": [ { "author_date": "2026-08-06T14:47:52+02:00", "commit": "1afd925ff8d2d080e0d979acde72bd2848d6291a", "subject": "feat(tests): add EIP-2780 coverage gap tests (#3318)" }, { "author_date": "2026-08-05T19:05:38+08:00", "commit": "4b4415c952b6ac1e341bcc46b0441327675a2f6e", "subject": "feat(tests): enhance test coverage, add mainnet test for eip-2780 (#3266)" }, { "author_date": "2026-08-05T11:10:01+02:00", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)" }, { "author_date": "2026-07-30T11:45:35+02:00", "commit": "d3a58bbcd7443755763a6199554b35862f07a94e", "subject": "refactor(spec-specs,tests): rename REGULAR_PER_AUTH_BASE_COST to EXECUTION_PER_AUTH_BASE_COST (#3263)" }, { "author_date": "2026-07-29T19:47:14+02:00", "commit": "593078295684ff46f686607726d5a839d50b6205", "subject": "refactor(spec-specs,tests): rename EIP-8037 regular gas to execution gas (#3238)" }, { "author_date": "2026-07-29T16:51:22+02:00", "commit": "1311ff376d2f7fbd5270e38e7bf13847c14b883e", "subject": "feat(specs,amsterdam): EIP-2780 - fold transfer log cost into value transfer cost (#3214)" }, { "author_date": "2026-07-24T16:53:32+02:00", "commit": "85aa48c742c38a2d5a876f84ebf8082a50273064", "subject": "tests(amsterdam): EIP-2780 - pin receipt status of top-frame OOG tx in multi-tx blocks (#3232)" }, { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" } ] }, { "blob": "e10c2072c73a62f1193c593f0595d9174c86f06e", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 7, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "None", "COLD_ACCOUNT_ACCESS", "CALL", "ACCOUNT_WRITE", "tx.to", "0", "value > 0" ] } ], "commit": "5a8c80897aeb0952322cd0dfff767c541002b8c3", "constants": [ { "after": [ "7,816" ], "before": [], "name": "EXECUTION_PER_AUTH_BASE_COST" }, { "after": [], "before": [ "7,816" ], "name": "REGULAR_PER_AUTH_BASE_COST" } ], "date": "2026-07-31T15:51:07Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex aea7ecac..e10c2072 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -47,29 +47,29 @@ The remaining values are defined in other EIPs and referenced here:\n | `WARM_ACCESS` | 100 | [EIP-8038](./eip-8038.md) | Warm account touch |\n | `ACCOUNT_WRITE` | 8,000 | [EIP-8038](./eip-8038.md) | First write to an account leaf |\n | `CREATE_ACCESS` | 11,000 | [EIP-8038](./eip-8038.md) | Contract-deployment account access and write |\n-| `REGULAR_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery, cold authority access, and warm writes |\n+| `EXECUTION_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery, cold authority access, and warm writes |\n | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 183,600 | [EIP-8037](./eip-8037.md) | State gas for one new account leaf |\n | `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` | 35,190 | [EIP-8037](./eip-8037.md) | State gas for one 23-byte delegation indicator |\n \n-The two state-gas products change whenever `CPSB` changes. Regular-gas and state-gas semantics are defined by [EIP-8037](./eip-8037.md).\n+The two state-gas products change whenever `CPSB` changes. Execution-gas and state-gas semantics are defined by [EIP-8037](./eip-8037.md).\n \n ### Intrinsic gas costs\n \n A transaction's intrinsic base cost is decomposed into the following explicit primitives:\n \n-- `tx.sender` is charged `TX_BASE_COST` in regular gas, accounting for one ECDSA recovery, the sender's account access and write, and the inclusion of the transaction's bytes in the block.\n+- `tx.sender` is charged `TX_BASE_COST` in execution gas, accounting for one ECDSA recovery, the sender's account access and write, and the inclusion of the transaction's bytes in the block.\n - `tx.to` is charged based on its type:\n - if self-transfer (`tx.sender == tx.to`), there are no charges;\n- - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in regular gas; the new-account state charge depends on whether the deployment target exists and is charged at runtime;\n- - otherwise, charge `COLD_ACCOUNT_ACCESS` in regular gas (covering the recipient touch, charged at the cold rate unconditionally).\n+ - if `None` (contract-creation transaction), charge `CREATE_ACCESS` in execution gas; the new-account state charge depends on whether the deployment target exists and is charged at runtime;\n+ - otherwise, charge `COLD_ACCOUNT_ACCESS` in execution gas (covering the recipient touch, charged at the cold rate unconditionally).\n - `tx.value` is charged based on its value:\n - if zero, there are no charges;\n - if non-zero and self-transfer, there are no charges;\n - if non-zero and contract creation, there are no charges; the recipient balance write is already covered by `CREATE_ACCESS`;\n- - otherwise, charge `TX_VALUE_COST` in regular gas.\n-- each [EIP-7702](./eip-7702.md) authorization is charged `REGULAR_PER_AUTH_BASE_COST` in regular gas.\n+ - otherwise, charge `TX_VALUE_COST` in execution gas.\n+- each [EIP-7702](./eip-7702.md) authorization is charged `EXECUTION_PER_AUTH_BASE_COST` in execution gas.\n \n-The recipient touch and the authority access (inside `REGULAR_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list) keeping intrinsic gas computable without any state read. =\n+The recipient touch and the authority access (inside `EXECUTION_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list) keeping intrinsic gas computable without any state read. =\n \n These charges replace the legacy contract-creation transaction charges and EIP-7702's flat `PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length` intrinsic charge.\n \n@@ -84,22 +84,22 @@ Once the transaction passes the intrinsic gas check, the state-dependent gas cos\n 3. The recipient account is added to the [EIP-7928](./eip-7928.md)'s Block-Level Access List (its access was already charged at the cold rate at the intrinsic phase, and it is warm from transaction start);\n 4. The remaining account creation and access costs are applied.\n \n-Like every charge in this EIP, each runtime charge is split into regular gas and state gas per [EIP-8037](./eip-8037.md): account accesses and writes are regular gas, while durable state growth (new account leaves and net-new delegation bytes) is state gas. This mirrors how a `CALL` frame is metered: accesses, account creation, and writes are charged as state is touched, not up front.\n+Like every charge in this EIP, each runtime charge is split into execution gas and state gas per [EIP-8037](./eip-8037.md): account accesses and writes are execution gas, while durable state growth (new account leaves and net-new delegation bytes) is state gas. This mirrors how a `CALL` frame is metered: accesses, account creation, and writes are charged as state is touched, not up front.\n \n Running out of gas during these runtime charges does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check.\n \n-If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the delegations applied during the pre-execution phase stay in place, per [EIP-7702](./eip-7702.md); the state gas that paid for them \u2014 each authority's account-creation and delegation-indicator bytes \u2014 therefore stays consumed, since that state persists beyond the frame. Runtime state charges whose state is instead rolled back with the frame (for example, a contract-creation transaction's new-account charge; see below) are refilled in LIFO order per [EIP-8037](./eip-8037.md), and regular-gas runtime charges (such as a delegation-target access) remain consumed as ordinary execution gas.\n+If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the delegations applied during the pre-execution phase stay in place, per [EIP-7702](./eip-7702.md); the state gas that paid for them \u2014 each authority's account-creation and delegation-indicator bytes \u2014 therefore stays consumed, since that state persists beyond the frame. Runtime state charges whose state is instead rolled back with the frame (for example, a contract-creation transaction's new-account charge; see below) are refilled in LIFO order per [EIP-8037](./eip-8037.md), and execution-gas runtime charges (such as a delegation-target access) remain consumed.\n \n If a contract-creation transaction's initcode reverts, the transaction remains valid and any state gas charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`.\n \n-On an exceptional halt, the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert. Its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail, though on mainnet all precompiles are already prefunded.\n+On an exceptional halt, the same LIFO refill applies. A plain value transfer to a new account executes no code and so cannot revert. Its new-account state charge is therefore never rolled back this way. The exception is a transfer to an empty precompile, which does execute and can fail, though on mainnet all precompiles are already pre-funded.\n \n #### [EIP-7702](./eip-7702.md) authorization processing\n \n While processing each valid authorization, the following charges are applied **at most once per authority**:\n \n - if the authority account does not already exist, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas for the new account leaf;\n-- if this is the first write to the authority within the transaction, charge `ACCOUNT_WRITE` in regular gas; the charge is skipped when the write is already paid for, namely when the authority:\n+- if this is the first write to the authority within the transaction, charge `ACCOUNT_WRITE` in execution gas; the charge is skipped when the write is already paid for, namely when the authority:\n - is `tx.sender`, covered by `TX_BASE_COST`;\n - was written by a preceding valid authorization;\n - is `tx.to` of a value-bearing transaction, covered by `TX_VALUE_COST`;\n@@ -112,15 +112,15 @@ For each authorization, after the gas charges of that authorization are processe\n If the transaction is not a self-transfer nor a contract creation, then the following charges are applied:\n \n - if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n-- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in regular gas: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n+- if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in execution gas: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n \n For a contract-creation transaction, if the deployment address does not already exist, per the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas.\n \n ### Transaction reference cases\n \n-Costs are split between the intrinsic phase and the runtime phase, each in regular gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule; it, and every runtime charge, is drawn from the gas passed into the first frame, so that frame is entered with the gas remaining after the runtime regular and state charges. The recipient touch is charged at the cold rate at the intrinsic phase; the only runtime account access is the delegation-target load, shown at the cold rate \u2014 a target warmed beforehand pays `WARM_ACCESS` rather than `COLD_ACCOUNT_ACCESS`. Create rows assume the deployment target does not already exist; a pre-existing target pays no new-account state charge. The intrinsic + runtime totals match the legacy headline numbers.\n+Costs are split between the intrinsic phase and the runtime phase, each in execution gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule; it, and every runtime charge, is drawn from the gas passed into the first frame, so that frame is entered with the gas remaining after the runtime execution and state charges. The recipient touch is charged at the cold rate at the intrinsic phase; the only runtime account access is the delegation-target load, shown at the cold rate \u2014 a target warmed beforehand pays `WARM_ACCESS` rather than `COLD_ACCOUNT_ACCESS`. Create rows assume the deployment target does not already exist; a pre-existing target pays no new-account state charge. The intrinsic + runtime totals match the legacy headline numbers.\n \n-| Case | Intrinsic (regular / state) | Runtime (regular / state) | Total (regular / state) |\n+| Case | Intrinsic (execution / state) | Runtime (execution / state) | Total (execution / state) |\n | :---- | :---- | :---- | :----: |\n | ETH transfer to self | `TX_BASE_COST` / 0 | 0 / 0 | 12,000 / 0 |\n | No-transfer to EOA / empty account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS` / 0 | 0 / 0 | 15,000 / 0 |\n@@ -137,12 +137,12 @@ Costs are split between the intrinsic phase and the runtime phase, each in regul\n \n ### Interactions with other EIPs\n \n-- **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `REGULAR_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n+- **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `EXECUTION_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n - **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches. Listing the recipient or an authority does not reduce the intrinsic cold-rate charges; it only pre-warms the address for execution.\n-- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed regular-gas intrinsic \u2014 the sum of the regular-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n-- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `REGULAR_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed execution-gas intrinsic \u2014 the sum of the execution-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n+- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `EXECUTION_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log; its cost is folded into `TX_VALUE_COST` alongside the recipient balance write rather than priced as a separate primitive.\n-- **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the BAL even when the transaction reverts.\n+- **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the block-level access list even when the transaction reverts.\n \n ## Rationale\n \n@@ -158,7 +158,7 @@ The decomposition charges each primitive once, where the resource is consumed: s\n \n The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREATE` opcode base already prices internal account creation, and top-level contract-creation transactions pay `CREATE_ACCESS` intrinsically plus the same state-gas charge at runtime when the deployment target does not already exist. Charging the state-growth cost on top-level value transfers that create accounts aligns them with the `CALL`-based creation path, which has always paid for the new leaf.\n \n-### Deriving the decomposition from client runtimes\n+### Deriving the decomposition from measured client run times\n \n The values of `TX_BASE_COST` and `TX_VALUE_COST` are not set by intuition; they are derived from measured client execution times, using the same approach as [EIP-8038](./eip-8038.md).\n \n@@ -169,7 +169,7 @@ The derivation uses the EELS `test_ether_transfers_onchain_receivers` benchmark,\n - transfers to an existing EOA;\n - transfers to a non-existent EOA, where the client must create a new account.\n \n-For each `(client, receiver)` pair, a non-negative least-squares (NNLS) model fits measured block runtime as a linear function of the number of transfers and the number of value-bearing transfers. The two fitted coefficients are the per-transfer base runtime and the additional runtime of moving value. Each coefficient is converted to gas at a fixed throughput anchor of 100 Mgas/s (`gas = ceil(100,000 \u00d7 runtime_ms)`).\n+For each `(client, receiver)` pair, a non-negative least-squares model fits measured block runtime as a linear function of the number of transfers and the number of value-bearing transfers. The two fitted coefficients are the per-transfer base runtime and the additional runtime of moving value. Each coefficient is converted to gas at a fixed throughput anchor of 100 Mgas/s (`gas = ceil(100,000 \u00d7 runtime_ms)`).\n \n For any candidate target, the analysis surfaces each client's worst case across receiver types, separating clients that already meet the target from those that must optimize to reach it. The proposed `TX_BASE_COST` and `TX_VALUE_COST` are set as such targets: they align intrinsic cost with the resource usage of well-optimized clients while leaving slower clients a defined optimization goal.\n \n@@ -192,7 +192,7 @@ A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor t\n \n ### Decomposing authorization cost\n \n-[EIP-7702](./eip-7702.md) charges `PER_EMPTY_ACCOUNT_COST` per authorization at the intrinsic phase and refunds it when the authority already exists, over-reserving gas the transaction may never use. Splitting the cost removes the over-charge: only `REGULAR_PER_AUTH_BASE_COST` \u2014 the calldata, signature recovery, cold authority access, and warm writes every authorization performs \u2014 is knowable without state access and stays intrinsic. The new-account leaf, the first-write `ACCOUNT_WRITE`, and the delegation-indicator bytes depend on state and are charged at runtime during authorization processing, billed only for the authorities that incur them.\n+[EIP-7702](./eip-7702.md) charges `PER_EMPTY_ACCOUNT_COST` per authorization at the intrinsic phase and refunds it when the authority already exists, over-reserving gas the transaction may never use. Splitting the cost removes the over-charge: only `EXECUTION_PER_AUTH_BASE_COST` \u2014 the calldata, signature recovery, cold authority access, and warm writes every authorization performs \u2014 is knowable without state access and stays intrinsic. The new-account leaf, the first-write `ACCOUNT_WRITE`, and the delegation-indicator bytes depend on state and are charged at runtime during authorization processing, billed only for the authorities that incur them.\n \n ## Backwards Compatibility\n \n@@ -205,19 +205,19 @@ Costs are given as intrinsic + runtime, by case:\n 1. Self-transfer (`from == to`): `12,000` intrinsic, `0` runtime.\n 2. Zero-value transaction to any address (existing, empty, or contract): `15,000` intrinsic (`TX_BASE_COST + COLD_ACCOUNT_ACCESS`), `0` runtime, `0` state. A self-target is `12,000`.\n 3. Value transfer to an existing EOA: `21,000` intrinsic, `0` runtime, `0` state.\n-4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic regular; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n-5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` regular plus execution.\n-6. Contract-creation transaction, `value = 0`: `23,000` intrinsic regular; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n-7. Contract-creation transaction, `value > 0`: `23,000` intrinsic regular (identical to the `value = 0` case, since the recipient balance write is covered by `CREATE_ACCESS`); `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n-8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `REGULAR_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state, the first write to the authority within the transaction pays `ACCOUNT_WRITE` regular, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic execution; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n+5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` execution gas plus contract execution.\n+6. Contract-creation transaction, `value = 0`: `23,000` intrinsic execution; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+7. Contract-creation transaction, `value > 0`: `23,000` intrinsic execution (identical to the `value = 0` case, since the recipient balance write is covered by `CREATE_ACCESS`); `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `EXECUTION_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state, the first write to the authority within the transaction pays `ACCOUNT_WRITE` execution, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n 9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled in LIFO order per [EIP-8037](./eip-8037.md) \u2014 credited to `gas_left` up to the portion the charge drew from it, with the remainder returning to the `state_gas_reservoir`.\n 10. Transaction whose gas covers intrinsic cost but not a runtime charge \u2014 e.g. a value transfer to a non-existent recipient or a contract creation to a non-existent target lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the delegation-target access: the transaction is valid and included, halts out-of-gas, and all runtime state changes \u2014 including any applied EIP-7702 delegations \u2014 are reverted; it is **not** invalidated.\n \n-Blocks of pure ETH transfers should be tested across all EL clients (e.g. on Perfnet) to confirm the pricing matches measured runtimes at the chosen throughput anchor.\n+Blocks of pure ETH transfers should be tested across all EL clients (e.g. on Perfnet) to confirm the pricing matches measured run times at the chosen throughput anchor.\n \n ## Security Considerations\n \n-The decomposed charges, intrinsic plus runtime, sum to at least the legacy `21,000` for any transaction that moves value to a distinct, cold account, and add state gas for transactions that grow the state. No path is cheaper than under the flat base in a way that increases per-block resource consumption; the change reallocates cost to match resources and prices state growth that was previously unpriced.\n+The decomposed charges, intrinsic plus runtime, sum to at least the legacy `21,000` for any transaction that moves value to a distinct, cold account, and add state gas for transactions that grow the state. No path is cheaper than under the flat base in a way that increases per-block resource consumption; the change reallocates cost to match resources and prices state growth that was previously not priced.\n \n Moving the state-dependent charges to runtime lowers the validity threshold (a simple call is valid at `TX_BASE_COST + COLD_ACCOUNT_ACCESS` rather than `21,000`), but does not enable underpriced work. A transaction that passes the intrinsic check yet runs out of runtime gas is still included and the sender still pays for every gas unit consumed, with all state changes reverted \u2014 exactly the cost profile of an out-of-gas inside a call frame. The runtime mechanism thus charges the same resources as before; it only relocates where, in the lifecycle, the gas is metered.\n \n", "order": 47, "subject": "Update EIP-2780: variable rename + 8007 clean-ups", "tokens": [ "EXECUTION_PER_AUTH_BASE_COST", "CPSB", "tx.sender", "TX_BASE_COST", "None", "CREATE_ACCESS", "COLD_ACCOUNT_ACCESS", "TX_VALUE_COST", "CALL", "ACCOUNT_WRITE", "WARM_ACCESS", "accessed_addresses", "21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata", "21,000", "TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST", "TX_BASE_COST + CREATE_ACCESS", "tx.to", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB", "PER_EMPTY_ACCOUNT_COST", "(client, receiver)", "gas = ceil(100,000 \u00d7 runtime_ms)", "183,600", "24,000", "value = 0", "23,000", "0", "value > 0" ], "window": [ { "author_date": "2026-08-13T09:42:07-06:00", "commit": "d56b40ba7e3272d40d0bb521537fd2f9db7ee0c3", "subject": "feat(test-specs): Allow specs to fill same fixture format more than once, add `inclusion_test` marker (#3337)" }, { "author_date": "2026-08-06T14:47:52+02:00", "commit": "1afd925ff8d2d080e0d979acde72bd2848d6291a", "subject": "feat(tests): add EIP-2780 coverage gap tests (#3318)" }, { "author_date": "2026-08-05T19:05:38+08:00", "commit": "4b4415c952b6ac1e341bcc46b0441327675a2f6e", "subject": "feat(tests): enhance test coverage, add mainnet test for eip-2780 (#3266)" }, { "author_date": "2026-08-05T11:10:01+02:00", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)" }, { "author_date": "2026-07-30T11:45:35+02:00", "commit": "d3a58bbcd7443755763a6199554b35862f07a94e", "subject": "refactor(spec-specs,tests): rename REGULAR_PER_AUTH_BASE_COST to EXECUTION_PER_AUTH_BASE_COST (#3263)" }, { "author_date": "2026-07-29T19:47:14+02:00", "commit": "593078295684ff46f686607726d5a839d50b6205", "subject": "refactor(spec-specs,tests): rename EIP-8037 regular gas to execution gas (#3238)" }, { "author_date": "2026-07-29T16:51:22+02:00", "commit": "1311ff376d2f7fbd5270e38e7bf13847c14b883e", "subject": "feat(specs,amsterdam): EIP-2780 - fold transfer log cost into value transfer cost (#3214)" }, { "author_date": "2026-07-24T16:53:32+02:00", "commit": "85aa48c742c38a2d5a876f84ebf8082a50273064", "subject": "tests(amsterdam): EIP-2780 - pin receipt status of top-frame OOG tx in multi-tx blocks (#3232)" }, { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" } ] }, { "blob": "36c409e70e4117fc708f02da7d58cd7e5d075f7c", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_top_frame_charges.py", "score": 3, "test": "test_top_frame_charges.py::test_initcode_selfdestruct_keeps_top_frame_state_charge", "tokens": [ "ACCOUNT_WRITE", "183,600", "0" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 3, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "ACCOUNT_WRITE", "0", "value > 0" ] } ], "commit": "8331fb3eed0a5366b28b25a016f1ad04fac0fa8e", "constants": [ { "after": [ "9,000" ], "before": [ "8,000" ], "name": "ACCOUNT_WRITE" }, { "after": [ "12,000" ], "before": [ "11,000" ], "name": "CREATE_ACCESS" } ], "date": "2026-08-04T12:14:19Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex e10c2072..36c409e7 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -45,8 +45,8 @@ The remaining values are defined in other EIPs and referenced here:\n | :---- | :----: | :----: | :---- |\n | `COLD_ACCOUNT_ACCESS` | 3,000 | [EIP-8038](./eip-8038.md) | Cold account touch |\n | `WARM_ACCESS` | 100 | [EIP-8038](./eip-8038.md) | Warm account touch |\n-| `ACCOUNT_WRITE` | 8,000 | [EIP-8038](./eip-8038.md) | First write to an account leaf |\n-| `CREATE_ACCESS` | 11,000 | [EIP-8038](./eip-8038.md) | Contract-deployment account access and write |\n+| `ACCOUNT_WRITE` | 9,000 | [EIP-8038](./eip-8038.md) | First write to an account leaf |\n+| `CREATE_ACCESS` | 12,000 | [EIP-8038](./eip-8038.md) | Contract-deployment account access and write |\n | `EXECUTION_PER_AUTH_BASE_COST` | 7,816 | [EIP-8037](./eip-8037.md) | Per-authorization base: calldata, ECDSA recovery, cold authority access, and warm writes |\n | `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 183,600 | [EIP-8037](./eip-8037.md) | State gas for one new account leaf |\n | `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` | 35,190 | [EIP-8037](./eip-8037.md) | State gas for one 23-byte delegation indicator |\n@@ -131,9 +131,9 @@ Costs are split between the intrinsic phase and the runtime phase, each in execu\n | ETH transfer to 7702 delegated | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 24,000 + execution / 0 |\n | ETH transfer to self, sender 7702 delegated | `TX_BASE_COST` / 0 | `COLD_ACCOUNT_ACCESS` + execution / 0 | 15,000 + execution / 0 |\n | ETH transfer creating new account | `TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 21,000 / 183,600 |\n-| Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 / 183,600 |\n-| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 23,000 / 183,600 |\n-| Create transaction, `tx.value` > 0, `created_address.balance` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / 0 | 23,000 / 0 |\n+| Create transaction, `tx.value` = 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,000 / 183,600 |\n+| Create transaction, `tx.value` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` | 24,000 / 183,600 |\n+| Create transaction, `tx.value` > 0, `created_address.balance` > 0 | `TX_BASE_COST + CREATE_ACCESS` / 0 | 0 / 0 | 24,000 / 0 |\n \n ### Interactions with other EIPs\n \n@@ -207,8 +207,8 @@ Costs are given as intrinsic + runtime, by case:\n 3. Value transfer to an existing EOA: `21,000` intrinsic, `0` runtime, `0` state.\n 4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic execution; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n 5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` execution gas plus contract execution.\n-6. Contract-creation transaction, `value = 0`: `23,000` intrinsic execution; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n-7. Contract-creation transaction, `value > 0`: `23,000` intrinsic execution (identical to the `value = 0` case, since the recipient balance write is covered by `CREATE_ACCESS`); `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+6. Contract-creation transaction, `value = 0`: `24,000` intrinsic execution; `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n+7. Contract-creation transaction, `value > 0`: `24,000` intrinsic execution (identical to the `value = 0` case, since the recipient balance write is covered by `CREATE_ACCESS`); `183,600` runtime state if the deployment target did not exist, `0` otherwise.\n 8. EIP-7702 transaction: `TX_BASE_COST` is unchanged even when the sender assumes code. Each authorization is charged `EXECUTION_PER_AUTH_BASE_COST` (which already covers the cold authority access) at the intrinsic phase; at runtime, a non-existent authority additionally pays `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` state, the first write to the authority within the transaction pays `ACCOUNT_WRITE` execution, and net-new delegation bytes add `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` state \u2014 replacing the flat `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n 9. Contract-creation transaction whose initcode reverts (value-bearing or not): the transaction remains valid; the `183,600` new-account state-gas charge is refilled in LIFO order per [EIP-8037](./eip-8037.md) \u2014 credited to `gas_left` up to the portion the charge drew from it, with the remainder returning to the `state_gas_reservoir`.\n 10. Transaction whose gas covers intrinsic cost but not a runtime charge \u2014 e.g. a value transfer to a non-existent recipient or a contract creation to a non-existent target lacking gas for the new-account state charge, or a transfer to a delegated account lacking gas for the delegation-target access: the transaction is valid and included, halts out-of-gas, and all runtime state changes \u2014 including any applied EIP-7702 delegations \u2014 are reverted; it is **not** invalidated.\n", "order": 48, "subject": "Update EIP-2780: revise COLD_STORAGE_ACCESS and ACCOUNT_WRITE values", "tokens": [ "ACCOUNT_WRITE", "CREATE_ACCESS", "tx.value", "TX_BASE_COST + CREATE_ACCESS", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "created_address.balance", "value = 0", "24,000", "183,600", "0", "value > 0" ], "window": [ { "author_date": "2026-08-13T09:42:07-06:00", "commit": "d56b40ba7e3272d40d0bb521537fd2f9db7ee0c3", "subject": "feat(test-specs): Allow specs to fill same fixture format more than once, add `inclusion_test` marker (#3337)" }, { "author_date": "2026-08-06T14:47:52+02:00", "commit": "1afd925ff8d2d080e0d979acde72bd2848d6291a", "subject": "feat(tests): add EIP-2780 coverage gap tests (#3318)" }, { "author_date": "2026-08-05T19:05:38+08:00", "commit": "4b4415c952b6ac1e341bcc46b0441327675a2f6e", "subject": "feat(tests): enhance test coverage, add mainnet test for eip-2780 (#3266)" }, { "author_date": "2026-08-05T11:10:01+02:00", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)" }, { "author_date": "2026-07-30T11:45:35+02:00", "commit": "d3a58bbcd7443755763a6199554b35862f07a94e", "subject": "refactor(spec-specs,tests): rename REGULAR_PER_AUTH_BASE_COST to EXECUTION_PER_AUTH_BASE_COST (#3263)" }, { "author_date": "2026-07-29T19:47:14+02:00", "commit": "593078295684ff46f686607726d5a839d50b6205", "subject": "refactor(spec-specs,tests): rename EIP-8037 regular gas to execution gas (#3238)" }, { "author_date": "2026-07-29T16:51:22+02:00", "commit": "1311ff376d2f7fbd5270e38e7bf13847c14b883e", "subject": "feat(specs,amsterdam): EIP-2780 - fold transfer log cost into value transfer cost (#3214)" }, { "author_date": "2026-07-24T16:53:32+02:00", "commit": "85aa48c742c38a2d5a876f84ebf8082a50273064", "subject": "tests(amsterdam): EIP-2780 - pin receipt status of top-frame OOG tx in multi-tx blocks (#3232)" }, { "author_date": "2026-07-22T13:16:12+02:00", "commit": "2282c757b3699d506de112b8a48b6b538df7ed1f", "subject": "feat(tests): add more EIP-2780 tests (#3195)" } ] }, { "blob": "aaafb9f1ec841508005e9b202ba7d164f804a2fc", "candidates": [ { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py", "score": 4, "test": "test_fork_transition.py::test_setcode_tx_across_amsterdam_transition", "tokens": [ "EXECUTION_PER_AUTH_BASE_COST", "COLD_ACCOUNT_ACCESS", "ACCOUNT_WRITE", "0" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 4, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_empty_recipient", "tokens": [ "COLD_ACCOUNT_ACCESS", "tx.to", "ACCOUNT_WRITE", "0" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 4, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_funded_recipient", "tokens": [ "COLD_ACCOUNT_ACCESS", "tx.to", "ACCOUNT_WRITE", "0" ] }, { "path": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_value_moving_with_tx_delegation.py", "score": 4, "test": "test_value_moving_with_tx_delegation.py::test_tx_installs_delegation_on_sender", "tokens": [ "COLD_ACCOUNT_ACCESS", "tx.to", "ACCOUNT_WRITE", "0" ] } ], "commit": "7243c92ba812437c64bae9fc6524ee269b29daa9", "constants": [], "date": "2026-09-04T13:35:32Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 36c409e7..aaafb9f1 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -13,9 +13,9 @@ requires: 2718, 2929, 2930, 6780, 7623, 7702, 7708, 7928, 8037, 8038\n \n ## Abstract\n \n-This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes. The costs of plain ETH transfers and contract creation transactions remain equal, while ETH transfers to new accounts and [7702](./eip-7702.md)-related transactions\n+This EIP decomposes the flat `21,000` intrinsic transaction cost into explicit primitives, each priced to match the resources a transaction actually consumes. A plain ETH transfer to an existing account remains at `21,000` execution gas, and contract-creation transactions cost the same whether or not they carry value. Transactions that create new accounts or interact with [EIP-7702](./eip-7702.md) pay the additional runtime costs they incur.\n \n-In addition, the new primitives are split into intrinsic gas and runtime gas. **Intrinsic gas** is the state-independent cost of including the transaction in a block and is the sole input to the transaction-validity check. **Runtime gas** covers the state-dependent charges, such as new account creation and delegation resolution. Runtime gas is charged as the first frame is entered, metered in same way as inside the frame. Running out of gas in runtime does not invalidate the transaction. Instead, the transaction is included, execution is skipped, and all state changes are reverted, as for any out-of-gas halt inside a frame.\n+In addition, the new primitives are split into intrinsic gas and runtime gas. **Intrinsic gas** is the state-independent cost of including the transaction in a block and is the sole input to the transaction-validity check. **Runtime gas** covers the state-dependent charges, such as new account creation and delegation resolution. Runtime gas is charged before the first frame is entered and is metered in the same way as gas inside the frame. Running out of runtime gas does not invalidate the transaction. Instead, the transaction is included, execution is skipped, and the pre-execution state changes are reverted.\n \n This EIP does not change calldata or access-list metering.\n \n@@ -69,7 +69,7 @@ A transaction's intrinsic base cost is decomposed into the following explicit pr\n - otherwise, charge `TX_VALUE_COST` in execution gas.\n - each [EIP-7702](./eip-7702.md) authorization is charged `EXECUTION_PER_AUTH_BASE_COST` in execution gas.\n \n-The recipient touch and the authority access (inside `EXECUTION_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list) keeping intrinsic gas computable without any state read. =\n+The recipient touch and the authority access (inside `EXECUTION_PER_AUTH_BASE_COST`) are charged at the cold rate every time, even if the account would be warm (for example, via an access list), keeping intrinsic gas computable without any state read.\n \n These charges replace the legacy contract-creation transaction charges and EIP-7702's flat `PER_EMPTY_ACCOUNT_COST \u00d7 authorization_list_length` intrinsic charge.\n \n@@ -77,7 +77,7 @@ Calldata and access-list metering remain unchanged.\n \n ### Runtime gas costs\n \n-Once the transaction passes the intrinsic gas check, the state-dependent gas costs (i.e., runtime costs) are applied. The runtime charges happen in a distinct window \u2014 the pre-execution phase \u2014 after the transaction is already deemed valid but before the first EVM frame is entered. This phase includes the following action, by order:\n+Once the transaction passes the intrinsic gas check, the state-dependent gas costs (i.e., runtime costs) are applied. The runtime charges happen in a distinct window \u2014 the pre-execution phase \u2014 after the transaction is already deemed valid but before the first EVM frame is entered. This phase includes the following actions, in order:\n \n 1. The available gas is split into `gas_left` and `state_gas_reservoir`, and all the gas accounting counters are initialized, per [EIP-8037](./eip-8037.md);\n 2. [EIP-7702](./eip-7702.md) authorizations are processed;\n@@ -88,7 +88,7 @@ Like every charge in this EIP, each runtime charge is split into execution gas a\n \n Running out of gas during these runtime charges does **not** invalidate the transaction. Validity is decided solely by the intrinsic gas check.\n \n-If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the delegations applied during the pre-execution phase stay in place, per [EIP-7702](./eip-7702.md); the state gas that paid for them \u2014 each authority's account-creation and delegation-indicator bytes \u2014 therefore stays consumed, since that state persists beyond the frame. Runtime state charges whose state is instead rolled back with the frame (for example, a contract-creation transaction's new-account charge; see below) are refilled in LIFO order per [EIP-8037](./eip-8037.md), and execution-gas runtime charges (such as a delegation-target access) remain consumed.\n+If the transaction goes out-of-gas in this pre-execution phase, the sender pays for all gas consumed, and all pre-execution state changes are reverted, including any [EIP-7702](./eip-7702.md) delegations. The included transaction still increments the sender's nonce and pays its gas fees. By contrast, if the transaction goes out-of-gas after entering the first EVM frame, the delegations applied during the pre-execution phase stay in place, per [EIP-7702](./eip-7702.md); the state gas that paid for them \u2014 each authority's account-creation and delegation-indicator bytes \u2014 therefore stays consumed, since that state persists beyond the frame. Runtime state charges whose state is instead rolled back with the frame (for example, a contract-creation transaction's new-account charge; see below) are refilled in LIFO order per [EIP-8037](./eip-8037.md), and execution-gas runtime charges (such as a delegation-target access) remain consumed.\n \n If a contract-creation transaction's initcode reverts, the transaction remains valid and any state gas charged at runtime is refilled in last-in, first-out (LIFO) order, per [EIP-8037](./eip-8037.md): the portion the charge drew from `gas_left` is credited back to `gas_left`, and only the remainder returns to the `state_gas_reservoir`.\n \n@@ -103,22 +103,22 @@ While processing each valid authorization, the following charges are applied **a\n - is `tx.sender`, covered by `TX_BASE_COST`;\n - was written by a preceding valid authorization;\n - is `tx.to` of a value-bearing transaction, covered by `TX_VALUE_COST`;\n-- if the authorization writes the 23-byte delegation indicator into a previously empty slot (net-new delegation bytes), charge `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` in state gas.\n+- if the authorization sets a non-zero delegation target, the authority had no delegation indicator at transaction start, and no earlier authorization set one for that authority in this transaction, charge `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` in state gas. Clearing an indicator does not refund this charge or make a later set chargeable again. An indicator present at transaction start can be cleared and re-set without paying this charge.\n \n-For each authorization, after the gas charges of that authorization are processed, the authority is added to `accessed_addresses`, per [EIP-7702](./eip-7702.md).\n+Authorization validation and warming retain the ordering in [EIP-7702](./eip-7702.md): check the chain ID and nonce bound, recover the authority, add it to `accessed_addresses`, and then check its code and current nonce. An authorization skipped because of the latter checks still warms the recovered authority; one rejected before recovery does not. The state-dependent charges above apply only after validation succeeds, before applying the authorization.\n \n #### Account creation and access charges\n \n-If the transaction is not a self-transfer nor a contract creation, then the following charges are applied:\n+If the transaction is not a contract creation, then the following charges are applied:\n \n-- if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas;\n+- if the recipient is non-existent and `tx.value > 0`, charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas (never applies to a self-transfer, whose recipient is the already-existing sender);\n - if the recipient is an [EIP-7702](./eip-7702.md) delegated account, additionally charge the delegation-target access in execution gas: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm.\n \n For a contract-creation transaction, if the deployment address does not already exist, per the existence rule of [EIP-8037](./eip-8037.md), charge `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` in state gas.\n \n ### Transaction reference cases\n \n-Costs are split between the intrinsic phase and the runtime phase, each in execution gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule; it, and every runtime charge, is drawn from the gas passed into the first frame, so that frame is entered with the gas remaining after the runtime execution and state charges. The recipient touch is charged at the cold rate at the intrinsic phase; the only runtime account access is the delegation-target load, shown at the cold rate \u2014 a target warmed beforehand pays `WARM_ACCESS` rather than `COLD_ACCOUNT_ACCESS`. Create rows assume the deployment target does not already exist; a pre-existing target pays no new-account state charge. The intrinsic + runtime totals match the legacy headline numbers.\n+Costs are split between the intrinsic phase and the runtime phase, each in execution gas and state gas, per [EIP-8037](./eip-8037.md). \"execution\" denotes contract execution charged at the standard schedule; it, and every runtime charge, is drawn from the gas passed into the first frame, so that frame is entered with the gas remaining after the runtime execution and state charges. The recipient touch is charged at the cold rate at the intrinsic phase; the only runtime account access is the delegation-target load, shown at the cold rate \u2014 a target warmed beforehand pays `WARM_ACCESS` rather than `COLD_ACCOUNT_ACCESS`. Create rows assume the deployment target does not already exist; a pre-existing target pays no new-account state charge. A plain ETH transfer to an existing EOA remains at the legacy `21,000` execution gas; the other rows show the decomposition for each transaction shape.\n \n | Case | Intrinsic (execution / state) | Runtime (execution / state) | Total (execution / state) |\n | :---- | :---- | :---- | :----: |\n@@ -139,8 +139,8 @@ Costs are split between the intrinsic phase and the runtime phase, each in execu\n \n - **[EIP-2929](./eip-2929.md) (warm/cold accounting).** The sender access folded into `TX_BASE_COST`, the recipient's `COLD_ACCOUNT_ACCESS`, and the authority access inside `EXECUTION_PER_AUTH_BASE_COST` are all charged at the intrinsic phase at fixed cold rates, independent of the account's warm/cold state \u2014 an access-list entry for the recipient or an authority does not discount them. The sender, the recipient, and each processed authority are added to `accessed_addresses`, so subsequent execution-level touches are warm. The only runtime account access is the delegation-target load, which follows the standard EIP-2929 warm/cold model: `COLD_ACCOUNT_ACCESS` if cold, `WARM_ACCESS` if warm. The same model governs all execution-level account touches, including internal `CALL`s.\n - **[EIP-2930](./eip-2930.md) (access lists).** Access lists keep their existing per-entry charges and warming semantics for execution-level touches. Listing the recipient or an authority does not reduce the intrinsic cold-rate charges; it only pre-warms the address for execution.\n-- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed execution-gas intrinsic \u2014 the sum of the execution-gas intrinsic primitives (`TX_BASE_COST + COLD_ACCOUNT_ACCESS + TX_VALUE_COST` for value transfers, `TX_BASE_COST + CREATE_ACCESS` for contract creation) \u2014 so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n-- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged even when the sender temporarily assumes code; clients must not perform a disk code load to classify the sender, since EIP-7702 provides the code inline. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `EXECUTION_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n+- **[EIP-7623](./eip-7623.md) (calldata floor).** EIP-7623 floors a transaction's cost at `21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata`, where the flat `21,000` is the intrinsic base this EIP decomposes. With this EIP active, that base term is replaced by the transaction's decomposed base \u2014 `TX_BASE_COST` plus the applicable recipient and value primitives (`COLD_ACCOUNT_ACCESS` and `TX_VALUE_COST` for a value transfer to a different account, or `CREATE_ACCESS` for contract creation). Per-authorization charges and initcode word charges are excluded from this base, so the floor and its validity check rest on the same per-transaction base as the rest of intrinsic gas rather than a stale constant. Like the floor, this base is state-independent, so the state-dependent runtime charges (the new-account state-gas charge and the delegation-target access) do not enter it. The calldata schedule itself is unchanged; only the base the floor sits on moves.\n+- **[EIP-7702](./eip-7702.md) (set EOA code).** `TX_BASE_COST` is unchanged when the sender is delegated or an authorization changes its delegation. An authorization supplies a delegation target address, not the target's code. Computing the intrinsic charge does not require loading that code; resolving a delegation for execution does. When `tx.to` is a delegated account, resolving the delegation loads the target's code, charged `COLD_ACCOUNT_ACCESS` on first touch or warm thereafter, following the standard EIP-2929 `accessed_addresses` model. Setting a delegation (writing the 23-byte pointer) is distinct from resolving one (reading the target's code); the resolution charge is genuine work and is not prepaid by the authorization. Authorization cost itself is decomposed: `EXECUTION_PER_AUTH_BASE_COST` \u2014 which already includes the authority's cold access \u2014 is charged per authorization at the intrinsic phase, while the state-dependent charges (`STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` for a non-existent authority, `ACCOUNT_WRITE` for the first write to the authority within the transaction, and `STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB` for net-new delegation bytes) are charged at runtime during authorization processing, replacing the worst-case `PER_EMPTY_ACCOUNT_COST` intrinsic charge and refund.\n - **[EIP-7708](./eip-7708.md) (ETH transfers emit a log).** Every non-zero-value transfer to a different account emits a transfer log; its cost is folded into `TX_VALUE_COST` alongside the recipient balance write rather than priced as a separate primitive.\n - **[EIP-7928](./eip-7928.md) (block-level access lists).** `tx.sender` is accessed at the intrinsic phase and `tx.to` at the runtime phase, so both are included in the block-level access list even when the transaction reverts.\n \n@@ -188,7 +188,7 @@ Only `tx.data` bytes are metered at the calldata schedule; the envelope RLP (`no\n \n ### Self-transfers\n \n-A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor the value cost: the account is already accessed and written as the sender, and EIP-7708 emits no transfer log when sender and recipient coincide. Only `TX_BASE_COST` applies.\n+A self-transfer (`tx.sender == tx.to`) charges neither the recipient touch nor the value cost: the account is already accessed and written as the sender, and EIP-7708 emits no transfer log when sender and recipient coincide. Only `TX_BASE_COST` applies to the intrinsic base. If the sender is delegated, the delegation-target access and any delegated execution are still charged at runtime.\n \n ### Decomposing authorization cost\n \n@@ -200,10 +200,10 @@ This EIP is **not** backward compatible. It is a consensus gas repricing that mu\n \n ## Test Cases\n \n-Costs are given as intrinsic + runtime, by case:\n+Costs are given as intrinsic + runtime, by case. These examples omit calldata, access-list, and initcode word charges and, except in case 8, authorization charges; executed code is charged separately. Delegation-target accesses shown at the cold rate cost `WARM_ACCESS` instead when the target is already warm:\n \n-1. Self-transfer (`from == to`): `12,000` intrinsic, `0` runtime.\n-2. Zero-value transaction to any address (existing, empty, or contract): `15,000` intrinsic (`TX_BASE_COST + COLD_ACCOUNT_ACCESS`), `0` runtime, `0` state. A self-target is `12,000`.\n+1. Self-transfer (`from == to`): `12,000` intrinsic, `0` runtime. If the sender is 7702-delegated, the delegation-target access is additionally charged at runtime, per case 5.\n+2. Zero-value transaction to a distinct existing or empty EOA: `15,000` intrinsic (`TX_BASE_COST + COLD_ACCOUNT_ACCESS`), `0` runtime, `0` state. A contract recipient additionally pays for execution; a delegated recipient also pays for the delegation-target access. A self-target has a `12,000` intrinsic base, with delegated execution charged as in case 1.\n 3. Value transfer to an existing EOA: `21,000` intrinsic, `0` runtime, `0` state.\n 4. Value transfer creating a new account (recipient non-existent): `21,000` intrinsic execution; `STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB` = `183,600` runtime state.\n 5. Value transfer to a 7702-delegated account: `21,000` intrinsic + `COLD_ACCOUNT_ACCESS` runtime = `24,000` execution gas plus contract execution.\n", "order": 49, "subject": "Update EIP-2780: align runtime charging and reference cases", "tokens": [ "21,000", "EXECUTION_PER_AUTH_BASE_COST", "STATE_BYTES_PER_AUTH_BASE \u00d7 CPSB", "accessed_addresses", "tx.value > 0", "STATE_BYTES_PER_NEW_ACCOUNT \u00d7 CPSB", "WARM_ACCESS", "COLD_ACCOUNT_ACCESS", "21,000 + TOTAL_COST_FLOOR_PER_TOKEN \u00d7 tokens_in_calldata", "TX_BASE_COST", "TX_VALUE_COST", "CREATE_ACCESS", "tx.to", "ACCOUNT_WRITE", "PER_EMPTY_ACCOUNT_COST", "tx.sender == tx.to", "from == to", "12,000", "0", "15,000", "TX_BASE_COST + COLD_ACCOUNT_ACCESS" ], "window": [ { "author_date": "2026-09-17T07:16:52-06:00", "commit": "a9792ab73b8195d5a8dc24b2ef6cca7687cd6b2b", "subject": "feat(tests,specs): eip7928 extended coverage (#3566)" }, { "author_date": "2026-09-07T14:37:14+02:00", "commit": "086963a6ac04e6002b917fa4b419877aeefb8d9e", "subject": "chore(tests): improve EIP-2780 coverage, checklist, and ref-spec pin (#3515)" }, { "author_date": "2026-09-07T03:11:57-06:00", "commit": "a139673b3cf967fed068c1cb65cb95276a1d9eb0", "subject": "feat(test-tools): Implement `GasConsumer` (#3497)" }, { "author_date": "2026-09-04T14:01:10+02:00", "commit": "39e8810f76eee73fb7a8166abd1929298846c3f2", "subject": "refactor(spec-specs,tests): clarify top-frame gas and derive CALL_VALUE (#3527)" } ] }, { "blob": "08600e48eea38d6e60b76266bd3d18c79ff6be11", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex aaafb9f1..08600e48 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -4,7 +4,8 @@ title: Resource-based intrinsic transaction gas\n description: Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal), Dragan Rakita (@rakita)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2020-07-11\n", "order": 50, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" }, { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-30T01:37:45+02:00", "commit": "22de56d6f1886c0a6d867989a0d8263ad3c3c570", "subject": "feat(tests): cover EIP-2780 preparation halt after repeated and self-sponsored authorizations (#3671)" } ] }, { "blob": "7425bd1e7d2df7308e1c92eb6515a6355f7cce69", "candidates": [], "commit": "a1132a9521d68415592a08a9e4123fd5a0f8e2ff", "constants": [ { "after": [ "Gas estimate of the difference between the value-bearing and zero-value runtimes" ], "before": [], "name": "TX_VALUE_COST" } ], "date": "2026-10-16T08:01:15Z", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 08600e48..7425bd1e 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -161,27 +161,44 @@ The new-account state charge does not apply to `CREATE`/`CREATE2`: the `GAS_CREA\n \n ### Deriving the decomposition from measured client run times\n \n-The values of `TX_BASE_COST` and `TX_VALUE_COST` are not set by intuition; they are derived from measured client execution times, using the same approach as [EIP-8038](./eip-8038.md).\n+The gas costs are based on measured client execution times, following the same approach as [EIP-8038](./eip-8038.md): collect block runtimes, estimate the runtime of a single transaction, and convert that estimate to gas.\n \n-The derivation uses the EELS `test_ether_transfers_onchain_receivers` benchmark, executed across all major execution-layer clients (Besu, Erigon, Geth, Nethermind, Reth). The benchmark fills blocks with ether transfers to four kinds of receiver, each exercising a different work path:\n+#### Data collection\n \n-- transfers to a contract with shared code, where the code lookup is cached across transactions;\n-- transfers to a contract with unique 24 KiB code, forcing a fresh code read and JUMPDEST analysis on every transaction (the heaviest path);\n-- transfers to an existing EOA;\n-- transfers to a non-existent EOA, where the client must create a new account.\n+The EEST `test_ether_transfers_onchain_receivers` benchmark generates blocks containing different numbers of transactions, with and without value. Receivers include the sender itself, existing EOAs, contracts with shared or unique code, and EIP-7702 delegated accounts. Contract cases cover both 24 KiB and 64 KiB code sizes. The suite also tests non-existent receivers, but those cases are excluded from the transaction-cost comparisons because value transfers to them include account-creation work charged separately through state gas.\n \n-For each `(client, receiver)` pair, a non-negative least-squares model fits measured block runtime as a linear function of the number of transfers and the number of value-bearing transfers. The two fitted coefficients are the per-transfer base runtime and the additional runtime of moving value. Each coefficient is converted to gas at a fixed throughput anchor of 100 Mgas/s (`gas = ceil(100,000 \u00d7 runtime_ms)`).\n+We run each test block multiple times on Besu, Erigon, Ethrex, Geth, Nethermind, and Reth to capture variation in execution time. The block runtimes and transaction counts provide the inputs to the analysis. The [supporting report](../assets/eip-2780/gas-cost-report.md) presents the results collected from September 25 to October 12, 2026.\n \n-For any candidate target, the analysis surfaces each client's worst case across receiver types, separating clients that already meet the target from those that must optimize to reach it. The proposed `TX_BASE_COST` and `TX_VALUE_COST` are set as such targets: they align intrinsic cost with the resource usage of well-optimized clients while leaving slower clients a defined optimization goal.\n+#### Runtime estimation\n \n-The two empirical coefficients map onto the decomposition as follows:\n+A non-negative least-squares (NNLS) linear regression estimates the runtime of a single transaction from the total block runtime:\n \n-- the per-transfer base runtime covers signature recovery, the sender's access and write, and the recipient touch \u2192 `TX_BASE_COST + COLD_ACCOUNT_ACCESS`;\n-- the value increment covers the recipient balance write and the transfer log \u2192 `TX_VALUE_COST`.\n+```text\n+block_runtime_ms = intercept_ms + slope_ms_per_tx \u00d7 transaction_count\n+```\n \n-`COLD_ACCOUNT_ACCESS` is taken directly from [EIP-8038](./eip-8038.md), since the recipient touch is the same cold-account access priced there. `TX_BASE_COST` and `TX_VALUE_COST` are the residual parameters this EIP introduces.\n+The intercept captures fixed block overhead. The slope estimates the additional runtime of one transaction. Both are constrained to be non-negative.\n \n-As in [EIP-8038](./eip-8038.md), these numbers are provisional. At the 100 Mgas/s anchor some clients are currently slower than the target on the heaviest paths and must optimize to meet it; the values will be refined as client optimizations land and the benchmarks mature.\n+Separate models are fitted for each client and receiver case, and for transactions with and without value. The zero-value case slope is reported as `ZERO_VALUE_TRANSFER`, while the with-value case slope is reported as `VALUE_TRANSFER`. Their difference for the same client and receiver estimates the additional runtime of transfering ETH (and the corresponding account updates). The [runtime results](../assets/eip-2780/runtime_estimation.csv) include the fitted slopes and model diagnostics.\n+\n+#### Mapping runtime estimates to gas costs\n+\n+The estimated runtimes are converted to gas at a target of **75 Mgas/s**:\n+\n+```text\n+gas_estimate = ceil(75_000_000 \u00d7 runtime_ms / 1000)\n+```\n+\n+For a transfer to an existing EOA, the zero-value estimate covers `TX_BASE_COST + COLD_ACCOUNT_ACCESS`. The with-value estimate covers the same work plus `TX_VALUE_COST`. This receiver case allows the two parameters to be compared without account creation or contract execution:\n+\n+| Parameter | Benchmark estimate | Selected gas cost |\n+| :--- | :--- | ---: |\n+| `TX_BASE_COST` | Zero-value gas estimate minus the selected `COLD_ACCOUNT_ACCESS`, clipped to zero | 12,000 |\n+| `TX_VALUE_COST` | Gas estimate of the difference between the value-bearing and zero-value runtimes | 6,000 |\n+\n+`COLD_ACCOUNT_ACCESS` is taken from EIP-8038 at 3,000 gas. The selected costs therefore give 15,000 gas for a zero-value transfer and 21,000 gas for a value transfer to an existing EOA.\n+\n+The [supporting report](../assets/eip-2780/gas-cost-report.md) also compares each client's worst estimate for self-transfers, ordinary transfers, and delegated transfers, with value and zero-value transfers shown separately. The selected values are pricing targets informed by these measurements, rather than exact maxima across every client and receiver case.\n \n ### Not metering the transaction envelope as calldata\n \n", "order": 51, "subject": "Update EIP-2780: Add benchmark reports and update rationale", "tokens": [ "test_ether_transfers_onchain_receivers", "text\nblock_runtime_ms = intercept_ms + slope_ms_per_tx \u00d7 transaction_count\n", "\nThe intercept captures fixed block overhead. The slope estimates the additional runtime of one transaction. Both are constrained to be non-negative.\nSeparate models are fitted for each client and receiver case, and for transactions with and without value. The zero-value case slope is reported as ", ", while the with-value case slope is reported as ", ". Their difference for the same client and receiver estimates the additional runtime of transfering ETH (and the corresponding account updates). The [runtime results](../assets/eip-2780/runtime_estimation.csv) include the fitted slopes and model diagnostics.\n\n#### Mapping runtime estimates to gas costs\n\nThe estimated runtimes are converted to gas at a target of **75 Mgas/s**:\n\n", "text\ngas_estimate = ceil(75_000_000 \u00d7 runtime_ms / 1000)\n", "\n\nFor a transfer to an existing EOA, the zero-value estimate covers ", ". The with-value estimate covers the same work plus ", ". This receiver case allows the two parameters to be compared without account creation or contract execution:\n\n| Parameter | Benchmark estimate | Selected gas cost |\n| :--- | :--- | ---: |\n| ", " | Zero-value gas estimate minus the selected ", ", clipped to zero | 12,000 |\n| ", " | Gas estimate of the difference between the value-bearing and zero-value runtimes | 6,000 |\n\n" ], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" } ] }, { "blob": "c41fa1eeced3c08914c6d2333102b04b69e80e68", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-2780.md b/EIPS/eip-2780.md\nindex 7425bd1e..c41fa1ee 100644\n--- a/EIPS/eip-2780.md\n+++ b/EIPS/eip-2780.md\n@@ -1,6 +1,6 @@\n ---\n eip: 2780\n-title: Resource-based intrinsic transaction gas\n+title: Resource-Based Intrinsic Transaction Gas\n description: Decompose the flat intrinsic transaction cost into explicit primitives priced to match the resources a transaction actually consumes\n author: Matt Garnett (@lightclient), Uri Klarman (@uriklarman), Ben Adams (@benaadams), Maria In\u00eas Silva (@misilva73), Anders Elowsson (@anderselowsson), Anthony Sassano (@sassal), Dragan Rakita (@rakita)\n discussions-to: https://ethereum-magicians.org/t/eip-2780-reduce-intrinsic-cost-of-transactions/4413\n", "order": 52, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" } ] } ], "eip": "2780", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "c41fa1eeced3c08914c6d2333102b04b69e80e68", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-2780.md", "pending": [], "pin": { "ambiguous": false, "blob": "7243c92ba812437c64bae9fc6524ee269b29daa9", "commit": null, "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/spec.py" }, "pin_history": [ { "blob": "992074053f12f24fed9e6d6bf6099d3a44707dca", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "date": "2026-07-02T16:25:05-06:00", "files": [ "__init__.py", "helpers.py", "test_calldata_floor.py", "test_fork_transition.py", "test_intrinsic_gas_boundary.py", "test_top_frame_charges.py", "test_value_moving_transactions.py", "test_value_moving_with_tx_delegation.py", "test_warmth_invariants.py" ], "pr": 3052, "release": null, "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)", "superseded": true }, { "blob": "e6d8f589d355e891c37ff479d3ce668352e5b1be", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "date": "2026-07-13T14:36:50+03:00", "files": [ "helpers.py", "test_authorization_charges.py", "test_authorization_oog.py", "test_calldata_floor.py", "test_intrinsic_gas_boundary.py", "test_value_moving_transactions.py", "test_value_moving_with_tx_delegation.py", "test_warmth_invariants.py" ], "pr": 3126, "release": "tests@v20.0.1", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)", "superseded": false }, { "blob": "04dd54c2e7ec1f408cf4a150d5c1aa43573bd025", "commit": "1311ff376d2f7fbd5270e38e7bf13847c14b883e", "date": "2026-07-29T08:51:22-06:00", "files": [ "test_calldata_floor.py", "test_fork_transition.py", "test_value_moving_transactions.py" ], "pr": 3214, "release": null, "subject": "feat(specs,amsterdam): EIP-2780 - fold transfer log cost into value transfer cost (#3214)", "superseded": true }, { "blob": "36c409e70e4117fc708f02da7d58cd7e5d075f7c", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "date": "2026-08-05T11:10:01+02:00", "files": [], "pr": 3293, "release": "tests@v20.0.2", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)", "superseded": false }, { "blob": "7243c92ba812437c64bae9fc6524ee269b29daa9", "commit": "086963a6ac04e6002b917fa4b419877aeefb8d9e", "date": "2026-09-07T20:37:14+08:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_authorization_charges.py", "test_authorization_oog.py", "test_calldata_floor.py", "test_eip_mainnet.py", "test_fork_transition.py", "test_intrinsic_gas_boundary.py", "test_top_frame_charges.py", "test_value_moving_transactions.py", "test_value_moving_with_tx_delegation.py", "test_warmth_invariants.py" ], "pr": 3515, "release": "tests@v21.0.0", "subject": "chore(tests): improve EIP-2780 coverage, checklist, and ref-spec pin (#3515)", "superseded": false } ], "release_pins": { "tests@v20.0.1": "e6d8f589d355e891c37ff479d3ce668352e5b1be", "tests@v20.0.2": "36c409e70e4117fc708f02da7d58cd7e5d075f7c", "tests@v21.0.0": "7243c92ba812437c64bae9fc6524ee269b29daa9", "tests@v21.0.1": "7243c92ba812437c64bae9fc6524ee269b29daa9", "tests@v21.0.2": "7243c92ba812437c64bae9fc6524ee269b29daa9" }, "revisions": [ { "blob": "af05ed7e8a41eb75b9f180b92bb3871929f36f23", "commit": "992074053f12f24fed9e6d6bf6099d3a44707dca", "date": "2026-06-25T15:05:59Z", "subject": "Update EIP-2780: account for EIP-7623 calldata floor base" }, { "blob": "e1e6cd9ce27647781faeb93b5d5f07b49457c629", "commit": "e6d8f589d355e891c37ff479d3ce668352e5b1be", "date": "2026-07-07T16:35:48+02:00", "subject": "Update EIP-2780: move state-dependent charges to runtime (cold surcharge, new-account state gas)" }, { "blob": "24c159de27bc2953a9c0d2c5362fe4afcfee8bfe", "commit": "7271ee9ae254f772f4fce08d89d3671b3874f314", "date": "2026-07-09T21:24:43+08:00", "subject": "Update EIP-2780: clarify 2780" }, { "blob": "33dd84fa85b5899aae2ced08757e780bb6b3e258", "commit": "2e7e88bb8dc0ead4db7726ac6af89f576c221d93", "date": "2026-07-09T16:33:20Z", "subject": "Update EIP-2780: align with recent EIP-2780 changes" }, { "blob": "45bfde371be97a929d482e021556445a8364aec0", "commit": "04dd54c2e7ec1f408cf4a150d5c1aa43573bd025", "date": "2026-07-22T16:05:24Z", "subject": "Update EIP-2780: fold transfer log cost into TX_VALUE_COST" }, { "blob": "aea7ecac93eed407a2594fa2f65224cbff7660c5", "commit": "0a1d42b3c7a455cd812ce73b4b937c16d6f20bd6", "date": "2026-07-30T12:54:28Z", "subject": "Update EIP-2780: Move to Review" }, { "blob": "e10c2072c73a62f1193c593f0595d9174c86f06e", "commit": "5a8c80897aeb0952322cd0dfff767c541002b8c3", "date": "2026-07-31T15:51:07Z", "subject": "Update EIP-2780: variable rename + 8007 clean-ups" }, { "blob": "36c409e70e4117fc708f02da7d58cd7e5d075f7c", "commit": "8331fb3eed0a5366b28b25a016f1ad04fac0fa8e", "date": "2026-08-04T12:14:19Z", "subject": "Update EIP-2780: revise COLD_STORAGE_ACCESS and ACCOUNT_WRITE values" }, { "blob": "aaafb9f1ec841508005e9b202ba7d164f804a2fc", "commit": "7243c92ba812437c64bae9fc6524ee269b29daa9", "date": "2026-09-04T13:35:32Z", "subject": "Update EIP-2780: align runtime charging and reference cases" }, { "blob": "08600e48eea38d6e60b76266bd3d18c79ff6be11", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "7425bd1e7d2df7308e1c92eb6515a6355f7cce69", "commit": "a1132a9521d68415592a08a9e4123fd5a0f8e2ff", "date": "2026-10-16T08:01:15Z", "subject": "Update EIP-2780: Add benchmark reports and update rationale" }, { "blob": "c41fa1eeced3c08914c6d2333102b04b69e80e68", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas", "title": "Resource-Based Intrinsic Transaction Gas" }, "7688": { "category": "Core", "checked": "tests/amsterdam/eip7688_*", "deltas": [], "eip": "7688", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "bdb1119c814c032e65580118d64e12039eafe63b", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7688.md", "pending": [], "pin": null, "revisions": [ { "blob": "bfee87116d06871b83b00e9fb42bb182f1f5e4cf", "commit": "148db0a7caa981448e1cc7b0cbbded60fa8ea92a", "date": "2025-10-02T02:26:15Z", "subject": "Update EIP-7688: Refer to correct EIP for 6110 refs" }, { "blob": "e1895389cdc83808fa35f603afe793d3f4dbc4ad", "commit": "cfb56cc2fef7d780f89c1f3890d64425f684ea2a", "date": "2025-10-12T17:12:54+08:00", "subject": "Update EIP-7688: Update eip-7688.md" }, { "blob": "6c22c0a10729829468ee7b9ee8ac425ddac6babb", "commit": "92a822fba7d243a8ee6038b80bfb45e59dd3b4f7", "date": "2025-11-05T21:01:55+08:00", "subject": "Update EIP-7688: Correct ProgressiveContainer reference" }, { "blob": "cf5216562992ff6df32f2343eda4218fab89292f", "commit": "95a263d15ccbbad813fd002666d7c753a126280c", "date": "2025-12-03T00:31:52+08:00", "subject": "Update EIP-7688: Move to Review" }, { "blob": "9064a232b1b56c56ca2c92908f20c8ab190aa92e", "commit": "53a85823f374965161ab1b711a0ee3084db8d6c0", "date": "2025-12-30T17:24:03+08:00", "subject": "Update EIP-7688: Fix field naming and wording" }, { "blob": "4936a8b2ff40c6fd0d5566f9379e0edd3c1152f4", "commit": "d2fb2b2e6104e7484f552bf142c500a9d2a6ef4e", "date": "2026-05-05T20:31:25Z", "subject": "Update EIP-7688: Make Transaction progressive" }, { "blob": "aab1cafa43ea73d2c9ebbe4c9249911fd4f86d58", "commit": "5f4a908c019f83e5d8dc00abccba37c312fca02f", "date": "2026-05-18T19:53:51Z", "subject": "Update EIP-7688: Suggest constants for network message size bounds" }, { "blob": "e08778ecdf4417b1687c9a1c396d20d83ca64792", "commit": "9eb1fadbc0941fbc877294c5d647c30fb42c5bfb", "date": "2026-05-19T13:55:59Z", "subject": "Update EIP-7688: Add rationale for Validator remaining Container" }, { "blob": "06b403eafaf7ec47b840c6b9bd31c4fedd46b82f", "commit": "19f03bc45b9fa63fe434f9ad7fdc2b82f174cc2f", "date": "2026-05-19T14:57:40Z", "subject": "Update EIP-7688: Resolve the 'cleanup opportunities' section" }, { "blob": "ca6b7c34a6af131fad336170164d3f37b391963d", "commit": "aea03b391168915770667f3564c445e7de589a17", "date": "2026-05-19T16:11:43Z", "subject": "Update EIP-7688: Improve wording / address nits" }, { "blob": "4ef02cb8e37cfe78ac11fb82c3a54d8cc2ed715a", "commit": "f2e6d7fb01194d590e16fcdcae8061d06cf1a7f1", "date": "2026-05-19T16:56:56Z", "subject": "Update EIP-7688: Rebase requirements to be based on Fusaka" }, { "blob": "bdb1119c814c032e65580118d64e12039eafe63b", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Review", "test_dir": null, "title": "Forward Compatible Consensus Data Structures" }, "7708": { "category": "Core", "deltas": [ { "blob": "d3f58878e1916242ffa83e03876fe2ee67ee0223", "candidates": [], "commit": "f25c6c8e18e60247e7e6c2b52986f56ad3e9f1f8", "constants": [], "date": "2024-06-11T22:06:54+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nnew file mode 100644\nindex 00000000..d3f58878\n--- /dev/null\n+++ b/EIPS/eip-7708.md\n@@ -0,0 +1,56 @@\n+---\n+eip: 7708\n+title: ETH transfers emit a log\n+description: All ETH transfers emit a log\n+author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies)\n+discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n+status: Draft\n+type: Standards Track\n+category: Core\n+created: 2024-05-17\n+---\n+\n+## Abstract\n+\n+All ETH-transfers, including transactions, `CALL` and `SELFDESTRUCT` emit a log.\n+\n+## Motivation\n+\n+Logs are often used to track when balance changes of assets on Ethereum. Logs work for [ERC-20](./eip-20.md) tokens, but they do not work for ETH. ETH transfers from EOAs can be read from the transaction list in the block, but ETH transfers from smart contract wallets are not automatically logged anywhere. This has already led to problems in the past, eg. early exchanges would often not properly support deposits from smart contract wallets, or only support them with a much longer delay. This EIP proposes that we automatically generate a log every time a value-transferring `CALL` or `SELFDESTRUCT` happens. We also add a similar log for transfers in transactions, so that all ETH transfers can be tracked using one mechanism.\n+\n+## Specification\n+\n+### Parameters\n+\n+* `MAGIC`: `TBD`\n+\n+### Functionality\n+\n+Whenever (i) a nonzero-value `CALL`, (ii) a nonzero-value-transferring `SELFDESTRUCT`, or (iii) a nonzero-value-transferring transaction takes place, issue a log, identical to a LOG3, with three topics: (i) `MAGIC`, (ii) the sender address, (iii) the recipient address. The log data is a big-endian 32-byte encoding of the transfer value.\n+\n+The `LOG` of a value-transferring transaction should be placed before any logs created by EVM execution. The other two `LOG`s are placed at the time that the value transfer executes.\n+\n+## Rationale\n+\n+This is the simplest possible implementation that ensures that all ETH transfers are implemented in some kind of record that can be easily accessed through making RPC calls into a node, or through asking for a Merkle branch that is hashed into the block root. The log type is compatible with the ERC-20 token standard, but does not introduce any overly-specific ERC-20 features (eg. ABI encodings) into the specification.\n+\n+### Open questions\n+\n+1. Should withdrawals also trigger a log? If so, what should the sender address be specified as?\n+2. Should fee payments trigger a log? It would ensure \"completeness\", in the sense that you can compute the exact current balance table by watching logs, but it would greatly increase the number of logs, perhaps to an unacceptably high amount.\n+\n+## Backwards Compatibility\n+\n+No backward compatibility issues found.\n+\n+## Test Cases\n+\n+TODO\n+\n+## Security Considerations\n+\n+ETH transfers already cost a minimum of 6700 gas, which is much more expensive than the LOG3 opcode (1500 gas). Hence, this EIP does not increase the worst-case number of logs that can be put into a block. It will somewhat increase the average number of logs.\n+\n+## Copyright\n+\n+Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 0, "subject": "Add EIP: ETH transfers emit a log", "tokens": [ "CALL", "SELFDESTRUCT", "MAGIC", "TBD", "LOG" ], "window": [] }, { "blob": "a0758eccabd947fe350a768c050b5254b3862084", "candidates": [], "commit": "7466599174141c30561e1366d5aead63080c277a", "constants": [], "date": "2025-04-13T08:47:51+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex d3f58878..a0758ecc 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -4,7 +4,7 @@ title: ETH transfers emit a log\n description: All ETH transfers emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n-status: Draft\n+status: Stagnant\n type: Standards Track\n category: Core\n created: 2024-05-17\n", "order": 1, "subject": "(bot 1272989785) moving EIPS/eip-7708.md to stagnant (#9511)", "tokens": [], "window": [] }, { "blob": "489028464b982958aa5151858d739acb7bfc343e", "candidates": [], "commit": "e8f1b9a9cd4803e6e84c25a6afce0f980c7c9483", "constants": [], "date": "2026-01-20T21:05:18+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex a0758ecc..48902846 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -2,9 +2,9 @@\n eip: 7708\n title: ETH transfers emit a log\n description: All ETH transfers emit a log\n-author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies)\n+author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n-status: Stagnant\n+status: Draft\n type: Standards Track\n category: Core\n created: 2024-05-17\n@@ -20,15 +20,36 @@ Logs are often used to track when balance changes of assets on Ethereum. Logs wo\n \n ## Specification\n \n-### Parameters\n+### ETH transfer logs\n \n-* `MAGIC`: `TBD`\n+A log, identical to a LOG3, is issued for:\n \n-### Functionality\n+- Any nonzero-value-transferring transaction, before any other logs created by EVM execution\n+- Any nonzero-value-transferring `CALL`, at the time that the value transfer executes\n+- Any nonzero-value-transferring `SELFDESTRUCT` to a different account, at the time that the value transfer executes\n \n-Whenever (i) a nonzero-value `CALL`, (ii) a nonzero-value-transferring `SELFDESTRUCT`, or (iii) a nonzero-value-transferring transaction takes place, issue a log, identical to a LOG3, with three topics: (i) `MAGIC`, (ii) the sender address, (iii) the recipient address. The log data is a big-endian 32-byte encoding of the transfer value.\n+| Field | Value |\n+| - | - |\n+| `address` emitting log | `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)) |\n+| `topics[0]` | `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` (`keccak256('Transfer(address,address,uint256)')`) |\n+| `topics[1]` | `from` address (zero prefixed to fill uint256) |\n+| `topics[2]` | `to` address (zero prefixed to fill uint256) |\n+| `data` | `amount` in Wei (big endian uint256) |\n \n-The `LOG` of a value-transferring transaction should be placed before any logs created by EVM execution. The other two `LOG`s are placed at the time that the value transfer executes.\n+This matches the [ERC-20](./eip-20.md) Transfer event definition.\n+\n+### Selfdestruct processing\n+\n+A log, identical to a LOG2, is issued for:\n+\n+- Any nonzero-value-transferring `SELFDESTRUCT` to the same account, at the time that the value removal executes\n+\n+| Field | Value |\n+| - | - |\n+| `address` emitting log | `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)) |\n+| `topics[0]` | `0x4bfaba3443c1a1836cd362418edc679fc96cae8449cbefccb6457cdf2c943083` (`keccak256('Selfdestruct(address,uint256)')`) |\n+| `topics[1]` | `from` address (zero prefixed to fill uint256) |\n+| `data` | `amount` in Wei (big endian uint256)\n \n ## Rationale\n \n@@ -36,8 +57,9 @@ This is the simplest possible implementation that ensures that all ETH transfers\n \n ### Open questions\n \n-1. Should withdrawals also trigger a log? If so, what should the sender address be specified as?\n+1. Magic value used for `address`? For address: (a) `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` (same as `eth_simulateV1`), (b) `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)), (c) zero address\n 2. Should fee payments trigger a log? It would ensure \"completeness\", in the sense that you can compute the exact current balance table by watching logs, but it would greatly increase the number of logs, perhaps to an unacceptably high amount.\n+3. Should withdrawals also trigger a log? They are not associated with transactions.\n \n ## Backwards Compatibility\n \n", "order": 2, "subject": "Update EIP-7708: Move to Draft", "tokens": [ "CALL", "SELFDESTRUCT", "address", "0xfffffffffffffffffffffffffffffffffffffffe", "SYSTEM_ADDRESS", "topics[0]", "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "keccak256('Transfer(address,address,uint256)')", "topics[1]", "from", "topics[2]", "to", "data", "amount", "0x4bfaba3443c1a1836cd362418edc679fc96cae8449cbefccb6457cdf2c943083", "keccak256('Selfdestruct(address,uint256)')", "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eth_simulateV1" ], "window": [] }, { "blob": "5fc1349278bbfd9f7b39f91c8f315f0a855a7804", "candidates": [], "commit": "b6ddf5a275423a31497411acab623fea3e46bbe2", "constants": [], "date": "2026-01-21T09:52:30Z", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 48902846..5fc13492 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -2,7 +2,7 @@\n eip: 7708\n title: ETH transfers emit a log\n description: All ETH transfers emit a log\n-author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels)\n+author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n status: Draft\n type: Standards Track\n@@ -42,15 +42,18 @@ This matches the [ERC-20](./eip-20.md) Transfer event definition.\n \n A log, identical to a LOG2, is issued for:\n \n-- Any nonzero-value-transferring `SELFDESTRUCT` to the same account, at the time that the value removal executes\n+- Any nonzero-value-transferring `SELFDESTRUCT` to self, at the time that the value subtraction executes\n+- Any nonzero-value-holding account closure, after any other logs created by EVM execution, but before charging the [EIP-1559](./eip-1559.md) priority fee, in lexicographical order of closed account address\n \n | Field | Value |\n | - | - |\n | `address` emitting log | `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)) |\n | `topics[0]` | `0x4bfaba3443c1a1836cd362418edc679fc96cae8449cbefccb6457cdf2c943083` (`keccak256('Selfdestruct(address,uint256)')`) |\n-| `topics[1]` | `from` address (zero prefixed to fill uint256) |\n+| `topics[1]` | Closed `contract_address` (zero prefixed to fill uint256) |\n | `data` | `amount` in Wei (big endian uint256)\n \n+The Selfdestruct log is emitted when (1) a `SELFDESTRUCT` to self is triggered, or when (2) a smart contract is closed after receiving more ETH after already flagged for `SELFDESTRUCT`.\n+\n ## Rationale\n \n This is the simplest possible implementation that ensures that all ETH transfers are implemented in some kind of record that can be easily accessed through making RPC calls into a node, or through asking for a Merkle branch that is hashed into the block root. The log type is compatible with the ERC-20 token standard, but does not introduce any overly-specific ERC-20 features (eg. ABI encodings) into the specification.\n", "order": 3, "subject": "Update EIP-7708: Clarify selfdestruct event", "tokens": [ "SELFDESTRUCT", "topics[1]", "contract_address" ], "window": [] }, { "blob": "665e7ca34e1fe0d40a35b3caf8b3e77667791c6e", "candidates": [], "commit": "723c1b17e541193088d3c0f2ba3dba8f73cd7616", "constants": [], "date": "2026-01-28T05:49:10+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 5fc13492..665e7ca3 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -25,7 +25,7 @@ Logs are often used to track when balance changes of assets on Ethereum. Logs wo\n A log, identical to a LOG3, is issued for:\n \n - Any nonzero-value-transferring transaction, before any other logs created by EVM execution\n-- Any nonzero-value-transferring `CALL`, at the time that the value transfer executes\n+- Any nonzero-value-transferring `CALL` to a different account, at the time that the value transfer executes\n - Any nonzero-value-transferring `SELFDESTRUCT` to a different account, at the time that the value transfer executes\n \n | Field | Value |\n", "order": 4, "subject": "Update EIP-7708: Clarify CALL to self does not emit transfer log", "tokens": [ "CALL" ], "window": [] }, { "blob": "7b72168a080841c37fa106cf640555937fe933ac", "candidates": [], "commit": "6c494074402e3ab1fad2e199ba69382fbaf423d7", "constants": [], "date": "2026-01-28T11:38:52+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 665e7ca3..7b72168a 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -24,7 +24,7 @@ Logs are often used to track when balance changes of assets on Ethereum. Logs wo\n \n A log, identical to a LOG3, is issued for:\n \n-- Any nonzero-value-transferring transaction, before any other logs created by EVM execution\n+- Any nonzero-value-transferring transaction to a different account, before any other logs created by EVM execution\n - Any nonzero-value-transferring `CALL` to a different account, at the time that the value transfer executes\n - Any nonzero-value-transferring `SELFDESTRUCT` to a different account, at the time that the value transfer executes\n \n", "order": 5, "subject": "Update EIP-7708: Clarify transaction transfer to different account", "tokens": [], "window": [] }, { "blob": "172188d7b090ed1afb876140f45e19ac00cba4bb", "candidates": [], "commit": "04026e96ac58077f98a848d0e15ae0e8a599875f", "constants": [], "date": "2026-01-28T18:05:09Z", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 7b72168a..172188d7 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -8,6 +8,7 @@ status: Draft\n type: Standards Track\n category: Core\n created: 2024-05-17\n+requires: 1559, 4788, 6780\n ---\n \n ## Abstract\n@@ -42,8 +43,8 @@ This matches the [ERC-20](./eip-20.md) Transfer event definition.\n \n A log, identical to a LOG2, is issued for:\n \n-- Any nonzero-value-transferring `SELFDESTRUCT` to self, at the time that the value subtraction executes\n-- Any nonzero-value-holding account closure, after any other logs created by EVM execution, but before charging the [EIP-1559](./eip-1559.md) priority fee, in lexicographical order of closed account address\n+- Any non-zero balance removal which occurs when a contract created in the same transaction invokes `SELFDESTRUCT` with itself as a target, at the time that the opcode is invoked.\n+- Each account which has been marked for deletion and holds a balance at the time of removal during transaction finalization. Burn logs are emitted after any other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase, in lexicographical order of account address\n \n | Field | Value |\n | - | - |\n", "order": 6, "subject": "Update EIP-7708: clarify order of burn logs and coinbase transfer logs", "tokens": [ "SELFDESTRUCT" ], "window": [] }, { "blob": "eb7cbb18c4f573fd015ac93fd37e6b3a1c629b93", "candidates": [], "commit": "61c13e975ab3f077d4d3c2adec95c41b82f05d15", "constants": [], "date": "2026-02-14T06:32:21+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 172188d7..eb7cbb18 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7708\n-title: ETH transfers emit a log\n-description: All ETH transfers emit a log\n+title: ETH transfers and burns emit a log\n+description: All ETH transfers and burns emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n status: Draft\n@@ -13,7 +13,7 @@ requires: 1559, 4788, 6780\n \n ## Abstract\n \n-All ETH-transfers, including transactions, `CALL` and `SELFDESTRUCT` emit a log.\n+All ETH transfers and burns emit a log.\n \n ## Motivation\n \n@@ -39,21 +39,21 @@ A log, identical to a LOG3, is issued for:\n \n This matches the [ERC-20](./eip-20.md) Transfer event definition.\n \n-### Selfdestruct processing\n+### ETH burn logs\n \n A log, identical to a LOG2, is issued for:\n \n-- Any non-zero balance removal which occurs when a contract created in the same transaction invokes `SELFDESTRUCT` with itself as a target, at the time that the opcode is invoked.\n-- Each account which has been marked for deletion and holds a balance at the time of removal during transaction finalization. Burn logs are emitted after any other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase, in lexicographical order of account address\n+- Any nonzero-balance `SELFDESTRUCT` to self by a contract created in the same transaction, at the time the opcode is invoked\n+- Any nonzero-balance account marked for deletion, at the time of removal during transaction finalization\n+\n+Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts are marked for deletion, burn logs are emitted in lexicographical order of account address.\n \n | Field | Value |\n | - | - |\n | `address` emitting log | `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)) |\n-| `topics[0]` | `0x4bfaba3443c1a1836cd362418edc679fc96cae8449cbefccb6457cdf2c943083` (`keccak256('Selfdestruct(address,uint256)')`) |\n-| `topics[1]` | Closed `contract_address` (zero prefixed to fill uint256) |\n-| `data` | `amount` in Wei (big endian uint256)\n-\n-The Selfdestruct log is emitted when (1) a `SELFDESTRUCT` to self is triggered, or when (2) a smart contract is closed after receiving more ETH after already flagged for `SELFDESTRUCT`.\n+| `topics[0]` | `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5` (`keccak256('Burn(address,uint256)')`) |\n+| `topics[1]` | `address` (zero prefixed to fill uint256) |\n+| `data` | `amount` in Wei (big endian uint256) |\n \n ## Rationale\n \n", "order": 7, "subject": "Update EIP-7708: Add ETH burn logs and improve spec consistency", "tokens": [ "SELFDESTRUCT", "topics[0]", "0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5", "keccak256('Burn(address,uint256)')", "topics[1]", "address", "data", "amount" ], "window": [] }, { "blob": "741b742af9714a2042780083756b79bf2b2538f6", "candidates": [], "commit": "dca0b20ee11516155d0e94756507e85106eb31ff", "constants": [], "date": "2026-04-15T19:43:48Z", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex eb7cbb18..741b742a 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -46,7 +46,7 @@ A log, identical to a LOG2, is issued for:\n - Any nonzero-balance `SELFDESTRUCT` to self by a contract created in the same transaction, at the time the opcode is invoked\n - Any nonzero-balance account marked for deletion, at the time of removal during transaction finalization\n \n-Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts are marked for deletion, burn logs are emitted in lexicographical order of account address.\n+Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts with non-zero balances are marked for deletion, burn logs are emitted in lexicographical order of account address.\n \n | Field | Value |\n | - | - |\n", "order": 8, "subject": "Update EIP-7708: Clarify burn log emission for non-zero balances", "tokens": [], "window": [] }, { "blob": "034588443da6c47704a0888870c19b57b603c4d1", "candidates": [], "commit": "1e2f3319997b1725e05f69dfc438db59a666b86d", "constants": [], "date": "2026-04-21T00:04:31+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 741b742a..03458844 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -28,6 +28,7 @@ A log, identical to a LOG3, is issued for:\n - Any nonzero-value-transferring transaction to a different account, before any other logs created by EVM execution\n - Any nonzero-value-transferring `CALL` to a different account, at the time that the value transfer executes\n - Any nonzero-value-transferring `SELFDESTRUCT` to a different account, at the time that the value transfer executes\n+- Any nonzero-value-transferring `CREATE` or `CREATE2` to the created account, at the time that the value transfer executes\n \n | Field | Value |\n | - | - |\n", "order": 9, "subject": "Update EIP-7708: add CREATE and CREATE2 to transfer log list", "tokens": [ "CREATE", "CREATE2" ], "window": [] }, { "blob": "43a7f15cd1105f308086bed6a61e3155039271fc", "candidates": [ { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_fork_transition.py", "score": 3, "test": "test_fork_transition.py::test_emission_point_fork_transition", "tokens": [ "CALL", "CREATE", "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 3, "test": "test_transfer_logs.py::test_inner_create_succeeds_outer_reverts_no_log", "tokens": [ "CALL", "CREATE", "CREATE2" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 3, "test": "test_transfer_logs.py::test_selfdestruct_to_self_cross_tx_no_log", "tokens": [ "CALL", "CREATE", "SELFDESTRUCT" ] } ], "commit": "100615c2c6f34b6105d3de22a1f3390ff3e1e232", "constants": [], "date": "2026-05-03T23:54:47Z", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 03458844..43a7f15c 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -47,7 +47,7 @@ A log, identical to a LOG2, is issued for:\n - Any nonzero-balance `SELFDESTRUCT` to self by a contract created in the same transaction, at the time the opcode is invoked\n - Any nonzero-balance account marked for deletion, at the time of removal during transaction finalization\n \n-Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts with non-zero balances are marked for deletion, burn logs are emitted in lexicographical order of account address.\n+Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts with nonzero balances are marked for deletion, burn logs are emitted in lexicographical order of account address.\n \n | Field | Value |\n | - | - |\n@@ -60,11 +60,13 @@ Burn logs are emitted after all other logs created by EVM execution and the paym\n \n This is the simplest possible implementation that ensures that all ETH transfers are implemented in some kind of record that can be easily accessed through making RPC calls into a node, or through asking for a Merkle branch that is hashed into the block root. The log type is compatible with the ERC-20 token standard, but does not introduce any overly-specific ERC-20 features (eg. ABI encodings) into the specification.\n \n-### Open questions\n+The `SYSTEM_ADDRESS` is reused as the log emitter for consistency with other protocol-originated operations (e.g. [EIP-4788](./eip-4788.md)) and to distinguish these protocol-generated logs from logs emitted by user contracts.\n \n-1. Magic value used for `address`? For address: (a) `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` (same as `eth_simulateV1`), (b) `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)), (c) zero address\n-2. Should fee payments trigger a log? It would ensure \"completeness\", in the sense that you can compute the exact current balance table by watching logs, but it would greatly increase the number of logs, perhaps to an unacceptably high amount.\n-3. Should withdrawals also trigger a log? They are not associated with transactions.\n+Fee payment logs for priority fees paid to the coinbase were considered. However, they are a distinct category from transfers, and adding these logs to this EIP would explode the log volume in a way that raises the intrinsic cost of transfer logs (and therefore transactions), putting an unreasonable load on the network. Clients can already compute these fee amounts from the block header and transaction receipt, so it is unnecessary to log them. The base fee burn is excluded for the same reason: the burned amount is already derivable from the block header.\n+\n+Withdrawals were also considered, but they are not attached to a transaction, which means there is no natural emission point. Additionally, they are already easily derivable from block information. Adding these kinds of logs would duplicate data already available to clients.\n+\n+Clients who wish to provide a unified view for consumers MAY expose a new aggregating RPC.\n \n ## Backwards Compatibility\n \n@@ -72,7 +74,18 @@ No backward compatibility issues found.\n \n ## Test Cases\n \n-TODO\n+- Transfer log emission for plain transactions, EOAs, delegated EOAs, and across all transaction types\n+- Transfer logs across the `CALL` family and how the executing context attributes the sender\n+- Transfer logs for `CREATE` / `CREATE2` endowments, initcode behavior, and failure modes\n+- Transfer logs for `SELFDESTRUCT` to self vs. a different beneficiary, including pre-existing and cross-tx contracts\n+- Log ordering: Transfer logs appear before any EVM-emitted logs in a transaction, and nested-`CALL` Transfer logs appear in chronological call order\n+- Burn logs emitted for same-transaction `SELFDESTRUCT` to self\n+- Burn logs emitted at transaction finalization, including lexicographic ordering and priority-fee interaction\n+- Negative cases where no log is emitted (zero-value, reverts, rolled-back inner calls, fee payments)\n+- Transfers to special-purpose addresses (precompiles, the system address, the coinbase)\n+- Fork transition behavior at the EIP-7708 activation boundary\n+\n+Test cases for this EIP can be found in the Execution Layer Specification suite [`eip7708_eth_transfer_logs`](https://github.com/ethereum/execution-specs/tree/155c3e136d81dcd5c61086c9d832595b7641db4a/tests/amsterdam/eip7708_eth_transfer_logs).\n \n ## Security Considerations\n \n", "order": 10, "subject": "Update EIP-7708: interop breakout decisions", "tokens": [ "SYSTEM_ADDRESS", "CALL", "CREATE", "CREATE2", "SELFDESTRUCT", "eip7708_eth_transfer_logs" ], "window": [ { "author_date": "2026-05-13T13:47:26-04:00", "commit": "2037311529b307e7029004f26dd3471eec364fcd", "subject": "feat(spec-specs, spec-tests): add EIP-7708 ETH transfers emit a log (#2844)" } ] }, { "blob": "b5e1a1810b8b4a5691468a53dc4750f634b82b25", "candidates": [ { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_eip_mainnet.py", "score": 1, "test": "test_eip_mainnet.py::test_selfdestruct_mainnet", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_fork_transition.py", "score": 1, "test": "test_fork_transition.py::test_emission_point_fork_transition", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_call_with_value_to_coinbase_no_priority_fee_log", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_selfdestruct_then_transfer_same_block", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_selfdestruct_to_self_cross_tx_no_log", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_selfdestruct_to_system_address", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_selfdestruct_with_value_emits_log", "tokens": [ "SELFDESTRUCT" ] }, { "path": "tests/amsterdam/eip7708_eth_transfer_logs/test_transfer_logs.py", "score": 1, "test": "test_transfer_logs.py::test_zero_value_operations_no_log", "tokens": [ "SELFDESTRUCT" ] } ], "commit": "4c64c876efe01ab44aa92d2de961b20d3ffa06da", "constants": [], "date": "2026-05-17T04:59:25+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 43a7f15c..b5e1a181 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -1,19 +1,19 @@\n ---\n eip: 7708\n-title: ETH transfers and burns emit a log\n-description: All ETH transfers and burns emit a log\n+title: ETH transfers emit a log\n+description: All ETH transfers emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n status: Draft\n type: Standards Track\n category: Core\n created: 2024-05-17\n-requires: 1559, 4788, 6780\n+requires: 1559, 4788, 6780, 8246\n ---\n \n ## Abstract\n \n-All ETH transfers and burns emit a log.\n+All ETH transfers emit a log.\n \n ## Motivation\n \n@@ -40,22 +40,6 @@ A log, identical to a LOG3, is issued for:\n \n This matches the [ERC-20](./eip-20.md) Transfer event definition.\n \n-### ETH burn logs\n-\n-A log, identical to a LOG2, is issued for:\n-\n-- Any nonzero-balance `SELFDESTRUCT` to self by a contract created in the same transaction, at the time the opcode is invoked\n-- Any nonzero-balance account marked for deletion, at the time of removal during transaction finalization\n-\n-Burn logs are emitted after all other logs created by EVM execution and the payment of the [EIP-1559](./eip-1559.md) priority fee to the coinbase. When multiple accounts with nonzero balances are marked for deletion, burn logs are emitted in lexicographical order of account address.\n-\n-| Field | Value |\n-| - | - |\n-| `address` emitting log | `0xfffffffffffffffffffffffffffffffffffffffe` ([`SYSTEM_ADDRESS`](./eip-4788.md)) |\n-| `topics[0]` | `0xcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5` (`keccak256('Burn(address,uint256)')`) |\n-| `topics[1]` | `address` (zero prefixed to fill uint256) |\n-| `data` | `amount` in Wei (big endian uint256) |\n-\n ## Rationale\n \n This is the simplest possible implementation that ensures that all ETH transfers are implemented in some kind of record that can be easily accessed through making RPC calls into a node, or through asking for a Merkle branch that is hashed into the block root. The log type is compatible with the ERC-20 token standard, but does not introduce any overly-specific ERC-20 features (eg. ABI encodings) into the specification.\n@@ -70,7 +54,9 @@ Clients who wish to provide a unified view for consumers MAY expose a new aggreg\n \n ## Backwards Compatibility\n \n-No backward compatibility issues found.\n+### ETH burns via `SELFDESTRUCT`\n+\n+After [EIP-8246](./eip-8246.md), ETH can no longer be burned via `SELFDESTRUCT` to self or by sending ETH to an account marked for selfdestruction. Therefore, this EIP does not specify this edge-case.\n \n ## Test Cases\n \n@@ -79,8 +65,6 @@ No backward compatibility issues found.\n - Transfer logs for `CREATE` / `CREATE2` endowments, initcode behavior, and failure modes\n - Transfer logs for `SELFDESTRUCT` to self vs. a different beneficiary, including pre-existing and cross-tx contracts\n - Log ordering: Transfer logs appear before any EVM-emitted logs in a transaction, and nested-`CALL` Transfer logs appear in chronological call order\n-- Burn logs emitted for same-transaction `SELFDESTRUCT` to self\n-- Burn logs emitted at transaction finalization, including lexicographic ordering and priority-fee interaction\n - Negative cases where no log is emitted (zero-value, reverts, rolled-back inner calls, fee payments)\n - Transfers to special-purpose addresses (precompiles, the system address, the coinbase)\n - Fork transition behavior at the EIP-7708 activation boundary\n", "order": 11, "subject": "Update EIP-7708: Use EIP-8246 to simplify", "tokens": [ "SELFDESTRUCT" ], "window": [ { "author_date": "2026-05-13T13:47:26-04:00", "commit": "2037311529b307e7029004f26dd3471eec364fcd", "subject": "feat(spec-specs, spec-tests): add EIP-7708 ETH transfers emit a log (#2844)" } ] }, { "blob": "8a2354628f7ae0728bbd2a6fc3dc73f902215350", "candidates": [], "commit": "f7230c46a743313957d8f38a159bda934cc735b2", "constants": [], "date": "2026-07-10T20:48:21+08:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex b5e1a181..8a235462 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -4,7 +4,7 @@ title: ETH transfers emit a log\n description: All ETH transfers emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n-status: Draft\n+status: Review\n type: Standards Track\n category: Core\n created: 2024-05-17\n", "order": 12, "subject": "Update EIP-7708: Move to Review", "tokens": [], "window": [ { "author_date": "2026-07-24T12:19:42+02:00", "commit": "6463c0dc37939ca478dd19c5ccac6f5a5bda821b", "subject": "chore(tests): improve EIP-7708 coverage, checklist, and ref-spec pin (#3220)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" }, { "author_date": "2026-07-02T16:08:47+08:00", "commit": "279ae53eb85917ecdd093a6dfb2beb2e0521de7c", "subject": "feat(spec,tests): Implement EIP-8246 (#3078)" }, { "author_date": "2026-06-30T12:49:45-06:00", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)" } ] }, { "blob": "43a92464af07aef15aede5fafd210edf21621a1d", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 8a235462..43a92464 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -4,7 +4,8 @@ title: ETH transfers emit a log\n description: All ETH transfers emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2024-05-17\n", "order": 13, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" } ] }, { "blob": "1fa00f6a2a425b73e0054d6b59f41ae68639413c", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-7708.md b/EIPS/eip-7708.md\nindex 43a92464..1fa00f6a 100644\n--- a/EIPS/eip-7708.md\n+++ b/EIPS/eip-7708.md\n@@ -1,6 +1,6 @@\n ---\n eip: 7708\n-title: ETH transfers emit a log\n+title: ETH Transfers Emit a Log\n description: All ETH transfers emit a log\n author: Vitalik Buterin (@vbuterin), Peter Davies (@petertdavies), Etan Kissling (@etan-status), Gajinder Singh (@g11tech), Carson (@carsons-eels), Jared Wasinger (@jwasinger)\n discussions-to: https://ethereum-magicians.org/t/eip-7708-eth-transfers-emit-a-log/20034\n", "order": 14, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "7708", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "1fa00f6a2a425b73e0054d6b59f41ae68639413c", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7708.md", "pending": [], "pin": { "ambiguous": false, "blob": "f7230c46a743313957d8f38a159bda934cc735b2", "commit": null, "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7708_eth_transfer_logs/spec.py" }, "pin_history": [ { "blob": "43a7f15cd1105f308086bed6a61e3155039271fc", "commit": "2037311529b307e7029004f26dd3471eec364fcd", "date": "2026-05-13T11:47:26-06:00", "files": [ "__init__.py", "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_burn_logs.py", "test_eip_mainnet.py", "test_fork_transition.py", "test_transfer_logs.py" ], "pr": 2844, "release": null, "subject": "feat(spec-specs, spec-tests): add EIP-7708 ETH transfers emit a log (#2844)", "superseded": true }, { "blob": "172188d7b090ed1afb876140f45e19ac00cba4bb", "commit": "8ea50be3c640c2ce2be108fc634dc48a3d039cbd", "date": "2026-06-09T17:42:14+01:00", "files": [ "test_burn_logs.py", "test_fork_transition.py", "test_transfer_logs.py" ], "pr": 2901, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): merge EIP-8037 to `forks/amsterdam` (#2901)", "superseded": false }, { "blob": "172188d7b090ed1afb876140f45e19ac00cba4bb", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "172188d7b090ed1afb876140f45e19ac00cba4bb", "commit": "279ae53eb85917ecdd093a6dfb2beb2e0521de7c", "date": "2026-07-02T16:08:47+08:00", "files": [ "test_burn_logs.py", "test_fork_transition.py" ], "pr": 3078, "release": "tests@v20.0.0", "subject": "feat(spec,tests): Implement EIP-8246 (#3078)", "superseded": false }, { "blob": "f7230c46a743313957d8f38a159bda934cc735b2", "commit": "6463c0dc37939ca478dd19c5ccac6f5a5bda821b", "date": "2026-07-24T12:19:42+02:00", "files": [ "eip_checklist_not_applicable.txt", "test_eip_mainnet.py", "test_fork_transition.py" ], "pr": 3220, "release": "tests@v20.0.2", "subject": "chore(tests): improve EIP-7708 coverage, checklist, and ref-spec pin (#3220)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "172188d7b090ed1afb876140f45e19ac00cba4bb", "tests@v20.0.1": "172188d7b090ed1afb876140f45e19ac00cba4bb", "tests@v20.0.2": "f7230c46a743313957d8f38a159bda934cc735b2", "tests@v21.0.0": "f7230c46a743313957d8f38a159bda934cc735b2", "tests@v21.0.1": "f7230c46a743313957d8f38a159bda934cc735b2", "tests@v21.0.2": "f7230c46a743313957d8f38a159bda934cc735b2" }, "revisions": [ { "blob": "5fc1349278bbfd9f7b39f91c8f315f0a855a7804", "commit": "b6ddf5a275423a31497411acab623fea3e46bbe2", "date": "2026-01-21T09:52:30Z", "subject": "Update EIP-7708: Clarify selfdestruct event" }, { "blob": "665e7ca34e1fe0d40a35b3caf8b3e77667791c6e", "commit": "723c1b17e541193088d3c0f2ba3dba8f73cd7616", "date": "2026-01-28T05:49:10+08:00", "subject": "Update EIP-7708: Clarify CALL to self does not emit transfer log" }, { "blob": "7b72168a080841c37fa106cf640555937fe933ac", "commit": "6c494074402e3ab1fad2e199ba69382fbaf423d7", "date": "2026-01-28T11:38:52+08:00", "subject": "Update EIP-7708: Clarify transaction transfer to different account" }, { "blob": "172188d7b090ed1afb876140f45e19ac00cba4bb", "commit": "04026e96ac58077f98a848d0e15ae0e8a599875f", "date": "2026-01-28T18:05:09Z", "subject": "Update EIP-7708: clarify order of burn logs and coinbase transfer logs" }, { "blob": "eb7cbb18c4f573fd015ac93fd37e6b3a1c629b93", "commit": "61c13e975ab3f077d4d3c2adec95c41b82f05d15", "date": "2026-02-14T06:32:21+08:00", "subject": "Update EIP-7708: Add ETH burn logs and improve spec consistency" }, { "blob": "741b742af9714a2042780083756b79bf2b2538f6", "commit": "dca0b20ee11516155d0e94756507e85106eb31ff", "date": "2026-04-15T19:43:48Z", "subject": "Update EIP-7708: Clarify burn log emission for non-zero balances" }, { "blob": "034588443da6c47704a0888870c19b57b603c4d1", "commit": "1e2f3319997b1725e05f69dfc438db59a666b86d", "date": "2026-04-21T00:04:31+08:00", "subject": "Update EIP-7708: add CREATE and CREATE2 to transfer log list" }, { "blob": "43a7f15cd1105f308086bed6a61e3155039271fc", "commit": "100615c2c6f34b6105d3de22a1f3390ff3e1e232", "date": "2026-05-03T23:54:47Z", "subject": "Update EIP-7708: interop breakout decisions" }, { "blob": "b5e1a1810b8b4a5691468a53dc4750f634b82b25", "commit": "4c64c876efe01ab44aa92d2de961b20d3ffa06da", "date": "2026-05-17T04:59:25+08:00", "subject": "Update EIP-7708: Use EIP-8246 to simplify" }, { "blob": "8a2354628f7ae0728bbd2a6fc3dc73f902215350", "commit": "f7230c46a743313957d8f38a159bda934cc735b2", "date": "2026-07-10T20:48:21+08:00", "subject": "Update EIP-7708: Move to Review" }, { "blob": "43a92464af07aef15aede5fafd210edf21621a1d", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "1fa00f6a2a425b73e0054d6b59f41ae68639413c", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7708_eth_transfer_logs", "title": "ETH Transfers Emit a Log" }, "7732": { "category": "Core", "checked": "tests/amsterdam/eip7732_*", "deltas": [], "eip": "7732", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "5baf745271ab7dce5863c1be123ddb783987bd44", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7732.md", "pending": [], "pin": null, "revisions": [ { "blob": "92a620896bf3b318f77a4449a2cc976c40b26844", "commit": "e469fd6c8d736b2a3e1ce632263e3ad36fc8624d", "date": "2024-07-03T18:41:55Z", "subject": "Add EIP: Enshrined Proposer-Builder Separation" }, { "blob": "21f03422cec7c0152fc67e38778d86dbc14a9e80", "commit": "233696d2599e8ad5213a3f26ad1cdf2d8b740be9", "date": "2024-08-06T16:54:11Z", "subject": "Update EIP-7732: Links to consensus repo" }, { "blob": "57c966bc095dcc6ec6fab646cf38f995306aee1f", "commit": "2a6b6965e64787815f7fffb9a4c27660d9683846", "date": "2025-02-12T21:16:12+08:00", "subject": "Update EIP-7732: fix typos" }, { "blob": "6c91e57133671ed1de9cd23c653ee020c73f78ae", "commit": "105ac0656c0931dc6052581c41fa6225ea90afef", "date": "2025-08-12T17:16:28Z", "subject": "Update EIP-7732: update to latest CL-spec version" }, { "blob": "5cd2944ffb37be475bcf5df99559e50afd8b6538", "commit": "4d7af9552edad39b66d82e4ea8403dce563a20be", "date": "2026-02-03T21:36:55Z", "subject": "Update EIP-7732: update consensus links" }, { "blob": "e3e7c17b99c3611f8eb3da97e3dd750ac82a1fd7", "commit": "c36a2e58a4496ed21bef6b1c97505b03fd159f0a", "date": "2026-04-17T15:05:14Z", "subject": "Update EIP-7732: Add Nico Flaig as coauthor" }, { "blob": "fec48f74c51e61d966bb6c5e431c54c66ca5c11f", "commit": "5eea6d0c5db9ccb6d424bcb58508c9c1576f6c37", "date": "2026-07-30T04:00:04+08:00", "subject": "Update EIP-7732: Move to Review" }, { "blob": "947683d4fe49da8870026cb69c6d9ff8d7d4d6d8", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "ffb4ba18e44307f58d2a19c33fb7339d5c5fd9c2", "commit": "ed9b712690ba810f652d2ec76293ec5c299e2069", "date": "2026-10-20T06:57:45-06:00", "subject": "Update EIP-7732: align with current consensus specs" }, { "blob": "5baf745271ab7dce5863c1be123ddb783987bd44", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Enshrined Proposer-Builder Separation" }, "7778": { "category": "Core", "deltas": [ { "blob": "056a541eabae7a72ea6daf37767dc2fc39a360dc", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7778.md b/EIPS/eip-7778.md\nindex 4897aec9..056a541e 100644\n--- a/EIPS/eip-7778.md\n+++ b/EIPS/eip-7778.md\n@@ -4,7 +4,8 @@ title: Block Gas Accounting without Refunds\n description: Prevent Block Gas Limit Circumvention by Excluding Refunds from Block Gas Accounting\n author: Ben Adams (@benaadams), Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7778-prevent-block-gas-smuggling/21234\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2024-10-01\n", "order": 11, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" } ] }, { "blob": "f84b208173a52b419164465f4ae304726878fd75", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-7778.md b/EIPS/eip-7778.md\nindex 056a541e..f84b2081 100644\n--- a/EIPS/eip-7778.md\n+++ b/EIPS/eip-7778.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7778\n title: Block Gas Accounting without Refunds\n-description: Prevent Block Gas Limit Circumvention by Excluding Refunds from Block Gas Accounting\n+description: Prevent block gas limit circumvention by excluding refunds from block gas accounting\n author: Ben Adams (@benaadams), Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7778-prevent-block-gas-smuggling/21234\n status: Last Call\n", "order": 12, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "7778", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "f84b208173a52b419164465f4ae304726878fd75", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7778.md", "pending": [], "pin": { "ambiguous": false, "blob": "4897aec97160c72d2080acf928b132f2efc1a886", "commit": "295064f75fb2084196dd2e247a4abf6074defe9c", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7778_block_gas_accounting_without_refunds/spec.py" }, "pin_history": [ { "blob": "ce17d00b8341032a946301944124c4a6013032d6", "commit": "76f336f440c8cf005877d7b1d17390789fcf7bab", "date": "2026-05-20T14:02:52+02:00", "files": [ "test_gas_accounting.py" ], "pr": 2887, "release": "tests@v20.0.0", "subject": "chore(tests): create `spec.py` for EIP-7778 (#2887)", "superseded": false }, { "blob": "ce17d00b8341032a946301944124c4a6013032d6", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "4897aec97160c72d2080acf928b132f2efc1a886", "commit": "903b48f152c932f6e47a615f0f7f009c56f1d92b", "date": "2026-09-04T08:28:18-06:00", "files": [ "eip_checklist_not_applicable.txt", "helpers.py", "test_fork_transition.py", "test_gas_accounting.py", "test_transaction_types.py" ], "pr": null, "release": "tests@v21.0.0", "subject": "feat(tests): Implement missing EIP-7778 checklist items", "superseded": false } ], "release_pins": { "tests@v20.0.0": "ce17d00b8341032a946301944124c4a6013032d6", "tests@v20.0.1": "ce17d00b8341032a946301944124c4a6013032d6", "tests@v20.0.2": "ce17d00b8341032a946301944124c4a6013032d6", "tests@v21.0.0": "4897aec97160c72d2080acf928b132f2efc1a886", "tests@v21.0.1": "4897aec97160c72d2080acf928b132f2efc1a886", "tests@v21.0.2": "4897aec97160c72d2080acf928b132f2efc1a886" }, "revisions": [ { "blob": "f08edcef2b16377eee1d259d8cc673af8227ffbb", "commit": "02d3e12b6cd7f9e1ec6fdd45ede682cc9dcf2864", "date": "2025-04-27T08:24:51+08:00", "subject": "(bot 1272989785) moving EIPS/eip-7778.md to stagnant (#9604)" }, { "blob": "f1e3f8d98163fe1a5adb30d8a491dbb75948b6bc", "commit": "b18c23c9f03f53f20903fa9f537694862ac987e8", "date": "2025-06-09T16:45:46+08:00", "subject": "Update EIP-7778: Move to Draft" }, { "blob": "e4bdd606c2c6dacb9fb936ff4749847308b26c55", "commit": "9f795ed2983dc76b5c6138a507751d2a760030e3", "date": "2025-09-03T08:03:05Z", "subject": "Update EIP-7778: improve title" }, { "blob": "e968d850d55b39b8756247f9fc4702392659274f", "commit": "3a8ab8c6bc1a4df8f413d198005e2a1b09577621", "date": "2025-12-04T23:21:25Z", "subject": "Update EIP-7778: Clarify receipts gas_used" }, { "blob": "8f6ac3122a15bd16ba3905e820ce3b3f74de5a09", "commit": "82d8f97b1371115fad7ff45a10a842e1044199fe", "date": "2026-01-13T17:09:12Z", "subject": "Update EIP-7778: correct license, improve wording" }, { "blob": "4bcef78781beeb3fe020b53f6e233f7805e04395", "commit": "5903a619bf35ac3f6519cb85622667be1c9f16a5", "date": "2026-01-16T06:34:39Z", "subject": "Update EIP-7778: Clarify gas accounting for receipts" }, { "blob": "54fba02495a05b57acd3f27473d0493b40a9d920", "commit": "af1a46dfb4b24fb4bc62b8a13a22621ddedd5513", "date": "2026-01-20T00:30:45+08:00", "subject": "Update EIP-7778: add new receipt field for gas_spent" }, { "blob": "d0704e9e1a66cdda96dbda62086affc5a6e5d325", "commit": "5f39588a18582804d63a59ee8cc1d3dba1fc0d68", "date": "2026-01-21T15:34:47Z", "subject": "Update EIP-7778: clarify that user gas accounting remains unchanged" }, { "blob": "ce17d00b8341032a946301944124c4a6013032d6", "commit": "3929b1aab57b493417eccec7457d1485eccb9768", "date": "2026-01-28T11:40:54Z", "subject": "Update EIP-7778: Revert back to not having a receipt field" }, { "blob": "4897aec97160c72d2080acf928b132f2efc1a886", "commit": "295064f75fb2084196dd2e247a4abf6074defe9c", "date": "2026-07-10T08:15:45+08:00", "subject": "Update EIP-7778: Move to Review" }, { "blob": "056a541eabae7a72ea6daf37767dc2fc39a360dc", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "f84b208173a52b419164465f4ae304726878fd75", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7778_block_gas_accounting_without_refunds", "title": "Block Gas Accounting without Refunds" }, "7843": { "category": "Core", "deltas": [ { "blob": "9b15913b45ad71ffe7b7fc68319eb2d324bac2f9", "candidates": [], "commit": "e5b4a82dda0f7b8726bc19e9f64a23b12bdf36ec", "constants": [], "date": "2024-12-23T20:41:47+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nnew file mode 100644\nindex 00000000..9b15913b\n--- /dev/null\n+++ b/EIPS/eip-7843.md\n@@ -0,0 +1,59 @@\n+---\n+eip: 7843\n+title: SLOT precompile\n+description: Precompile to get the current slot\n+author: Marc Harvey-Hill (@Marchhill)\n+discussions-to: https://ethereum-magicians.org/t/eip-7843-slot-precompile/22234\n+status: Draft\n+type: Standards Track\n+category: Core\n+created: 2024-12-06\n+---\n+\n+## Abstract\n+\n+This EIP proposes to add a new precompile that returns the corresponding slot for the current block.\n+\n+## Motivation\n+\n+It is currently possible to calculate the slot number from the block timestamp. However, this requires hardcoding the chain slot length into a smart contract. This would require the contract code to be changed in the event of a future change to slot length. A better approach is for the slot number to be calculated by the execution layer and exposed in a precompile.\n+\n+### Encrypted Mempools\n+\n+This precompile aims to improve support for encrypted mempools. In order to be secure, the validity of encrypted mempool transactions should be tied to the inclusion of all transactions by a proposer in the correct slot. This rule can be enforced by a smart contract using this precompile.\n+\n+## Specification\n+\n+If `block.timestamp >= TBD` a new precompiled contract `SLOT` shall be created at address `TBD`.\n+\n+`SLOT` returns as output the current slot number as an 8 byte ulong in big endian encoding.\n+\n+### Gas Cost\n+\n+The gas cost for `SLOT` is a fixed fee of `2`\n+\n+## Rationale\n+\n+### Gas Price\n+\n+The precompile is priced to match similar opcodes in the `W_base` set.\n+\n+### Precompile\n+\n+Making the feature a precompile rather than an opcode gives L2s flexibility to decide whether to implement it.\n+\n+## Backwards Compatibility\n+\n+No backward compatibility issues found.\n+\n+## Test Cases\n+\n+N/A\n+\n+## Security Considerations\n+\n+None.\n+\n+## Copyright\n+\n+Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 0, "subject": "Add EIP: SLOT precompile", "tokens": [ "block.timestamp >= TBD", "SLOT", "TBD", "2", "W_base" ], "window": [] }, { "blob": "55c5a5a748dfb65c399bc98d15d893234fafadf6", "candidates": [], "commit": "7f01d7b262fd2acda7ccb9a7b02aa1914d42e649", "constants": [], "date": "2025-01-07T16:47:24Z", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 9b15913b..55c5a5a7 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7843\n title: SLOT precompile\n-description: Precompile to get the current slot\n+description: Precompile to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slot-precompile/22234\n status: Draft\n@@ -12,15 +12,15 @@ created: 2024-12-06\n \n ## Abstract\n \n-This EIP proposes to add a new precompile that returns the corresponding slot for the current block.\n+This EIP proposes to add a new precompile that returns the corresponding slot number for the current block.\n \n ## Motivation\n \n-It is currently possible to calculate the slot number from the block timestamp. However, this requires hardcoding the chain slot length into a smart contract. This would require the contract code to be changed in the event of a future change to slot length. A better approach is for the slot number to be calculated by the execution layer and exposed in a precompile.\n+It is currently possible to calculate the slot number from the block timestamp. However, this requires hardcoding the chain slot length into a smart contract. This would require the contract code to be changed in the event of a future change to slot length. A better approach is for the slot length to be abstracted away from applications, and instead the slot number can be calculated in the consensus layer client and exposed in a precompile.\n \n-### Encrypted Mempools\n+### Example application: Encrypted Mempools\n \n-This precompile aims to improve support for encrypted mempools. In order to be secure, the validity of encrypted mempool transactions should be tied to the inclusion of all transactions by a proposer in the correct slot. This rule can be enforced by a smart contract using this precompile.\n+An example of a smart contract that needs the slot number is a validation contract for an encrypted mempool. In order to be secure, the validity of encrypted mempool transactions should be tied to the inclusion of all transactions by a proposer in the correct slot. This rule can be enforced by a smart contract using this precompile.\n \n ## Specification\n \n@@ -30,7 +30,26 @@ If `block.timestamp >= TBD` a new precompiled contract `SLOT` shall be created a\n \n ### Gas Cost\n \n-The gas cost for `SLOT` is a fixed fee of `2`\n+The gas cost for `SLOT` is a fixed fee of `2`.\n+\n+### RPC changes\n+\n+The slot number is calculated in the consensus layer and passed to the execution layer through the engine API.\n+\n+#### newPayload change\n+\n+The `engine_newPayload` endpoint shall include a new parameter `slot_number` of type `uint64`.\n+\n+#### PayloadAttributes change\n+\n+The engine API's `PayloadAttributes` object shall be extended to include a `slot_number` field of type `uint64`.\n+\n+#### New JSON-RPC endpoints\n+\n+Consensus layer clients **may** implement the following new RPC endpoints to convert between slot numbers and their corresponding timestamps.\n+\n+`eth_getSlotNumberFromTimestamp`: `uint64` -> `uint64`\n+`eth_getTimestampFromSlotNumber`: `uint64` -> `uint64`\n \n ## Rationale\n \n@@ -42,6 +61,10 @@ The precompile is priced to match similar opcodes in the `W_base` set.\n \n Making the feature a precompile rather than an opcode gives L2s flexibility to decide whether to implement it.\n \n+### Calculation in consensus layer\n+\n+The slot number could alternatively be calculated in the execution layer using the timestamp, but it is more appropriate to calculate values pertaining to the beacon chain in the consensus layer. Additionally this avoids code duplication, as the slot number is already calculated in the consensus layer.\n+\n ## Backwards Compatibility\n \n No backward compatibility issues found.\n", "order": 1, "subject": "Update EIP-7843: calculate slot in CL, improve motivation", "tokens": [ "SLOT", "2", "engine_newPayload", "slot_number", "uint64", "PayloadAttributes", "eth_getSlotNumberFromTimestamp", "eth_getTimestampFromSlotNumber" ], "window": [] }, { "blob": "38bf71954d7f8b5f56ba793b5811414fcb7b520c", "candidates": [], "commit": "b9726100a21e8547d9e72b0c9cfae21f860e1fdc", "constants": [], "date": "2025-01-27T11:51:20Z", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 55c5a5a7..38bf7195 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -36,9 +36,9 @@ The gas cost for `SLOT` is a fixed fee of `2`.\n \n The slot number is calculated in the consensus layer and passed to the execution layer through the engine API.\n \n-#### newPayload change\n+#### Header extension\n \n-The `engine_newPayload` endpoint shall include a new parameter `slot_number` of type `uint64`.\n+The header encoding shall be extended to include a `slot_number` field of type `uint64`.\n \n #### PayloadAttributes change\n \n@@ -65,6 +65,10 @@ Making the feature a precompile rather than an opcode gives L2s flexibility to d\n \n The slot number could alternatively be calculated in the execution layer using the timestamp, but it is more appropriate to calculate values pertaining to the beacon chain in the consensus layer. Additionally this avoids code duplication, as the slot number is already calculated in the consensus layer.\n \n+### ZK-VM proving\n+\n+The SLOT precompile should not increase the complexity of proving EVM execution, as it is similar to existing opcodes such as TIMESTAMP. The slot number is included in the block header rather than as a `new_payload` parameter, ensuring that the block is self-contained for proving; no extra inputs to the circuit are required.\n+\n ## Backwards Compatibility\n \n No backward compatibility issues found.\n", "order": 2, "subject": "Update EIP-7793: zk-vm sections", "tokens": [ "slot_number", "uint64", "new_payload" ], "window": [] }, { "blob": "75e1fda843555d878085f5547421775367199b51", "candidates": [], "commit": "270874f063cf030c04141cac4dff57aabd3b1260", "constants": [], "date": "2025-02-13T18:38:11+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 38bf7195..75e1fda8 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -26,7 +26,7 @@ An example of a smart contract that needs the slot number is a validation contra\n \n If `block.timestamp >= TBD` a new precompiled contract `SLOT` shall be created at address `TBD`.\n \n-`SLOT` returns as output the current slot number as an 8 byte ulong in big endian encoding.\n+`SLOT` returns as output the current slot number as an 8-byte uint64 in big-endian encoding.\n \n ### Gas Cost\n \n", "order": 3, "subject": "Update EIP-7843: specification update", "tokens": [ "SLOT" ], "window": [] }, { "blob": "0f5d0ef12b1a050a1c8a67117740ca0ff04568bd", "candidates": [], "commit": "0aefdc9d5a4b637ca280832f5fe617a5f4dd4f3f", "constants": [], "date": "2025-05-20T16:23:34Z", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 75e1fda8..0f5d0ef1 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -1,9 +1,9 @@\n ---\n eip: 7843\n-title: SLOT precompile\n-description: Precompile to get the current slot number\n+title: SLOTNUM opcode\n+description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n-discussions-to: https://ethereum-magicians.org/t/eip-7843-slot-precompile/22234\n+discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n status: Draft\n type: Standards Track\n category: Core\n@@ -12,25 +12,37 @@ created: 2024-12-06\n \n ## Abstract\n \n-This EIP proposes to add a new precompile that returns the corresponding slot number for the current block.\n+This EIP proposes to add a new opcode `SLOTNUM` (`0x4b`), that returns the corresponding slot number for the current block.\n \n ## Motivation\n \n-It is currently possible to calculate the slot number from the block timestamp. However, this requires hardcoding the chain slot length into a smart contract. This would require the contract code to be changed in the event of a future change to slot length. A better approach is for the slot length to be abstracted away from applications, and instead the slot number can be calculated in the consensus layer client and exposed in a precompile.\n+There are currently two ways to get the current slot number onchain:\n \n-### Example application: Encrypted Mempools\n+1) Calculate from the block timestamp. This requires hardcoding the chain slot length into a smart contract.\n \n-An example of a smart contract that needs the slot number is a validation contract for an encrypted mempool. In order to be secure, the validity of encrypted mempool transactions should be tied to the inclusion of all transactions by a proposer in the correct slot. This rule can be enforced by a smart contract using this precompile.\n+2) Provide the slot number as calldata and prove it against the beacon block root (using [EIP-4788](./eip-4788.md)).\n+\n+Both of these approaches have significant drawbacks. (1) would break contracts in the event of a change to the slot length. (2) is expensive in terms of gas, encouraging approach (1) to be used instead.\n+\n+A better approach is for the slot length to be abstracted away from applications, and instead the slot number can be calculated in the consensus layer client and exposed by an opcode. This paves the way for future changes to the slot length.\n \n ## Specification\n \n-If `block.timestamp >= TBD` a new precompiled contract `SLOT` shall be created at address `TBD`.\n+A new opcode `SLOTNUM` is introduced at `0x4b`. It shall return one stack element.\n+\n+### Output\n+\n+#### Stack\n+\n+| Stack | Value |\n+| ---------- | ------------- |\n+| `top - 0` | `SlotNumber` |\n \n-`SLOT` returns as output the current slot number as an 8-byte uint64 in big-endian encoding.\n+`SlotNumber` is an 8 byte uint in big endian encoding.\n \n ### Gas Cost\n \n-The gas cost for `SLOT` is a fixed fee of `2`.\n+The gas cost for `SLOTNUM` is a fixed fee of `2`.\n \n ### RPC changes\n \n@@ -44,22 +56,11 @@ The header encoding shall be extended to include a `slot_number` field of type `\n \n The engine API's `PayloadAttributes` object shall be extended to include a `slot_number` field of type `uint64`.\n \n-#### New JSON-RPC endpoints\n-\n-Consensus layer clients **may** implement the following new RPC endpoints to convert between slot numbers and their corresponding timestamps.\n-\n-`eth_getSlotNumberFromTimestamp`: `uint64` -> `uint64`\n-`eth_getTimestampFromSlotNumber`: `uint64` -> `uint64`\n-\n ## Rationale\n \n ### Gas Price\n \n-The precompile is priced to match similar opcodes in the `W_base` set.\n-\n-### Precompile\n-\n-Making the feature a precompile rather than an opcode gives L2s flexibility to decide whether to implement it.\n+The opcode is priced to match similar opcodes in the `W_base` set.\n \n ### Calculation in consensus layer\n \n@@ -67,7 +68,7 @@ The slot number could alternatively be calculated in the execution layer using t\n \n ### ZK-VM proving\n \n-The SLOT precompile should not increase the complexity of proving EVM execution, as it is similar to existing opcodes such as TIMESTAMP. The slot number is included in the block header rather than as a `new_payload` parameter, ensuring that the block is self-contained for proving; no extra inputs to the circuit are required.\n+The `SLOTNUM` opcode should not increase the complexity of proving EVM execution, as it is similar to existing opcodes such as `TIMESTAMP`. The slot number is included in the block header rather than as a `new_payload` parameter, ensuring that the block is self-contained for proving; no extra inputs to the circuit are required.\n \n ## Backwards Compatibility\n \n", "order": 4, "subject": "Update EIP-7843: change to opcode", "tokens": [ "SLOTNUM", "0x4b", "top - 0", "SlotNumber", "2", "W_base", "TIMESTAMP", "new_payload" ], "window": [] }, { "blob": "aeeffed14ee510c2831b4198d4a6b6b1f2bcf360", "candidates": [], "commit": "77f096af0ce517c3f7d7644f189845e06612905c", "constants": [], "date": "2025-06-09T16:48:46+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 0f5d0ef1..aeeffed1 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -4,7 +4,7 @@ title: SLOTNUM opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n-status: Draft\n+status: Review\n type: Standards Track\n category: Core\n created: 2024-12-06\n@@ -32,13 +32,7 @@ A new opcode `SLOTNUM` is introduced at `0x4b`. It shall return one stack elemen\n \n ### Output\n \n-#### Stack\n-\n-| Stack | Value |\n-| ---------- | ------------- |\n-| `top - 0` | `SlotNumber` |\n-\n-`SlotNumber` is an 8 byte uint in big endian encoding.\n+One element `SlotNumber` is added to the stack; it is equal to the corresponding slot number for this block. `SlotNumber` is a `uint64` in big endian encoding.\n \n ### Gas Cost\n \n", "order": 5, "subject": "Update EIP-7843: Move to Review", "tokens": [ "SlotNumber", "uint64" ], "window": [] }, { "blob": "8140e7f3a1c93249e9e9ee5ab5281396341306ec", "candidates": [], "commit": "cc5e68b8cc6cbbf980317f02573a5076572123ec", "constants": [], "date": "2025-12-28T08:29:03+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex aeeffed1..8140e7f3 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -4,7 +4,7 @@ title: SLOTNUM opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n-status: Review\n+status: Stagnant\n type: Standards Track\n category: Core\n created: 2024-12-06\n", "order": 6, "subject": "(bot 1272989785) moving EIPS/eip-7843.md to stagnant (#10916)", "tokens": [], "window": [] }, { "blob": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "candidates": [], "commit": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "constants": [], "date": "2026-01-20T22:46:09+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 8140e7f3..6bc5d6b7 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -4,7 +4,7 @@ title: SLOTNUM opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n-status: Stagnant\n+status: Draft\n type: Standards Track\n category: Core\n created: 2024-12-06\n@@ -32,7 +32,7 @@ A new opcode `SLOTNUM` is introduced at `0x4b`. It shall return one stack elemen\n \n ### Output\n \n-One element `SlotNumber` is added to the stack; it is equal to the corresponding slot number for this block. `SlotNumber` is a `uint64` in big endian encoding.\n+One element `slotNumber` is added to the stack; it is equal to the corresponding slot number for this block. `slotNumber` is a `uint64` in big endian encoding.\n \n ### Gas Cost\n \n@@ -44,11 +44,11 @@ The slot number is calculated in the consensus layer and passed to the execution\n \n #### Header extension\n \n-The header encoding shall be extended to include a `slot_number` field of type `uint64`.\n+The header encoding shall be extended to include a `slotNumber` field of type `uint64`.\n \n-#### PayloadAttributes change\n+#### Engine API changes\n \n-The engine API's `PayloadAttributes` object shall be extended to include a `slot_number` field of type `uint64`.\n+New objects `ExecutionPayloadV4` and `PayloadAttributesV4` are introduced, adding a `slotNumber` field of type `uint64`. The methods `engine_newPayloadV4`, `engine_getPayloadV6`, and `engine_forkChoiceUpdateV4` are added, to use the new objects.\n \n ## Rationale\n \n@@ -62,7 +62,7 @@ The slot number could alternatively be calculated in the execution layer using t\n \n ### ZK-VM proving\n \n-The `SLOTNUM` opcode should not increase the complexity of proving EVM execution, as it is similar to existing opcodes such as `TIMESTAMP`. The slot number is included in the block header rather than as a `new_payload` parameter, ensuring that the block is self-contained for proving; no extra inputs to the circuit are required.\n+The `SLOTNUM` opcode should not increase the complexity of proving EVM execution, as it is similar to existing opcodes such as `TIMESTAMP`. The slot number is included in the block header rather than as a `engine_newPayload` parameter, ensuring that the block is self-contained for proving; no extra inputs to the circuit are required.\n \n ## Backwards Compatibility\n \n", "order": 7, "subject": "Update EIP-7843: Move to Draft", "tokens": [ "slotNumber", "uint64", "ExecutionPayloadV4", "PayloadAttributesV4", "engine_newPayloadV4", "engine_getPayloadV6", "engine_forkChoiceUpdateV4", "SLOTNUM", "TIMESTAMP", "engine_newPayload" ], "window": [] }, { "blob": "5d118328c23af4d22b71ac21fe5c3fa2660bdd12", "candidates": [], "commit": "115174e36f14c67a7cda1d54a37a4eae37885799", "constants": [], "date": "2026-08-05T22:32:20+08:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 6bc5d6b7..5d118328 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -4,7 +4,7 @@ title: SLOTNUM opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n-status: Draft\n+status: Review\n type: Standards Track\n category: Core\n created: 2024-12-06\n", "order": 8, "subject": "Update EIP-7843: Move to Review", "tokens": [], "window": [ { "author_date": "2026-07-24T12:19:48+02:00", "commit": "6e02b3b1d5fb1eca0331dd74d46820b08499f87b", "subject": "chore(tests): improve EIP-7843 coverage, checklist, and ref-spec pin (#3221)" } ] }, { "blob": "7b6b1d817e4fb5cbea7178c39f79109079d83cd4", "candidates": [], "commit": "e44e1960a9328282af8dd884837c2302f6a45c3d", "constants": [], "date": "2026-09-17T14:50:43-06:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 5d118328..7b6b1d81 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -48,7 +48,7 @@ The header encoding shall be extended to include a `slotNumber` field of type `u\n \n #### Engine API changes\n \n-New objects `ExecutionPayloadV4` and `PayloadAttributesV4` are introduced, adding a `slotNumber` field of type `uint64`. The methods `engine_newPayloadV4`, `engine_getPayloadV6`, and `engine_forkChoiceUpdateV4` are added, to use the new objects.\n+New objects `ExecutionPayloadV4` and `PayloadAttributesV4` are introduced, adding a `slotNumber` field of type `uint64`. The methods `engine_newPayloadV5`, `engine_getPayloadV6`, and `engine_forkchoiceUpdatedV4` are added, to use the new objects.\n \n ## Rationale\n \n", "order": 9, "subject": "Update EIP-7843: align Engine API method names with execution-apis", "tokens": [ "ExecutionPayloadV4", "PayloadAttributesV4", "slotNumber", "uint64", "engine_newPayloadV5", "engine_getPayloadV6", "engine_forkchoiceUpdatedV4" ], "window": [] }, { "blob": "2548b927edf0855b136e28f67e0acd84053d1c66", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 7b6b1d81..2548b927 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -4,7 +4,8 @@ title: SLOTNUM opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2024-12-06\n", "order": 10, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [] }, { "blob": "0a3c68bbd8af638d9ff91197f64cb07bb104a3a2", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-7843.md b/EIPS/eip-7843.md\nindex 2548b927..0a3c68bb 100644\n--- a/EIPS/eip-7843.md\n+++ b/EIPS/eip-7843.md\n@@ -1,6 +1,6 @@\n ---\n eip: 7843\n-title: SLOTNUM opcode\n+title: SLOTNUM Opcode\n description: Opcode to get the current slot number\n author: Marc Harvey-Hill (@Marchhill)\n discussions-to: https://ethereum-magicians.org/t/eip-7843-slotnum-opcode/22234\n", "order": 11, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "7843", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "0a3c68bbd8af638d9ff91197f64cb07bb104a3a2", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7843.md", "pending": [], "pin": { "ambiguous": false, "blob": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "commit": null, "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7843_slotnum/spec.py" }, "pin_history": [ { "blob": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "commit": "8732abefaecea103ba9b630ed583ac042e58b4e8", "date": "2026-05-19T14:28:46+08:00", "files": [ "test_eip_mainnet.py", "test_fork_transition.py", "test_slotnum.py" ], "pr": 2858, "release": "tests@v20.0.0", "subject": "feat(tests): EIP-7843 Add test cases for multi-blocks and fork transition (#2858)", "superseded": false }, { "blob": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "commit": "6e02b3b1d5fb1eca0331dd74d46820b08499f87b", "date": "2026-07-24T12:19:48+02:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_eip_mainnet.py", "test_fork_transition.py", "test_slotnum.py" ], "pr": 3221, "release": "tests@v20.0.2", "subject": "chore(tests): improve EIP-7843 coverage, checklist, and ref-spec pin (#3221)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "tests@v20.0.1": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "tests@v20.0.2": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "tests@v21.0.0": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "tests@v21.0.1": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "tests@v21.0.2": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0" }, "revisions": [ { "blob": "9b15913b45ad71ffe7b7fc68319eb2d324bac2f9", "commit": "e5b4a82dda0f7b8726bc19e9f64a23b12bdf36ec", "date": "2024-12-23T20:41:47+08:00", "subject": "Add EIP: SLOT precompile" }, { "blob": "55c5a5a748dfb65c399bc98d15d893234fafadf6", "commit": "7f01d7b262fd2acda7ccb9a7b02aa1914d42e649", "date": "2025-01-07T16:47:24Z", "subject": "Update EIP-7843: calculate slot in CL, improve motivation" }, { "blob": "38bf71954d7f8b5f56ba793b5811414fcb7b520c", "commit": "b9726100a21e8547d9e72b0c9cfae21f860e1fdc", "date": "2025-01-27T11:51:20Z", "subject": "Update EIP-7793: zk-vm sections" }, { "blob": "75e1fda843555d878085f5547421775367199b51", "commit": "270874f063cf030c04141cac4dff57aabd3b1260", "date": "2025-02-13T18:38:11+08:00", "subject": "Update EIP-7843: specification update" }, { "blob": "0f5d0ef12b1a050a1c8a67117740ca0ff04568bd", "commit": "0aefdc9d5a4b637ca280832f5fe617a5f4dd4f3f", "date": "2025-05-20T16:23:34Z", "subject": "Update EIP-7843: change to opcode" }, { "blob": "aeeffed14ee510c2831b4198d4a6b6b1f2bcf360", "commit": "77f096af0ce517c3f7d7644f189845e06612905c", "date": "2025-06-09T16:48:46+08:00", "subject": "Update EIP-7843: Move to Review" }, { "blob": "8140e7f3a1c93249e9e9ee5ab5281396341306ec", "commit": "cc5e68b8cc6cbbf980317f02573a5076572123ec", "date": "2025-12-28T08:29:03+08:00", "subject": "(bot 1272989785) moving EIPS/eip-7843.md to stagnant (#10916)" }, { "blob": "6bc5d6b7acbc016a79fa573f98975093b5c2ca52", "commit": "c3bfd4ba41cf0fcbfe8c404f33ba89f5174971e0", "date": "2026-01-20T22:46:09+08:00", "subject": "Update EIP-7843: Move to Draft" }, { "blob": "5d118328c23af4d22b71ac21fe5c3fa2660bdd12", "commit": "115174e36f14c67a7cda1d54a37a4eae37885799", "date": "2026-08-05T22:32:20+08:00", "subject": "Update EIP-7843: Move to Review" }, { "blob": "7b6b1d817e4fb5cbea7178c39f79109079d83cd4", "commit": "e44e1960a9328282af8dd884837c2302f6a45c3d", "date": "2026-09-17T14:50:43-06:00", "subject": "Update EIP-7843: align Engine API method names with execution-apis" }, { "blob": "2548b927edf0855b136e28f67e0acd84053d1c66", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "0a3c68bbd8af638d9ff91197f64cb07bb104a3a2", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7843_slotnum", "title": "SLOTNUM Opcode" }, "7904": { "category": null, "checked": "tests/amsterdam/eip7904_*", "deltas": [], "eip": "7904", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "822b151e5147031adb3a81e65b3f9eb504d6416e", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-7904.md", "pending": [], "pin": null, "revisions": [ { "blob": "2cd8786b42c15841a2fcbf74a1bee970c8c69228", "commit": "3a4a08689d5eda893147f39d9e79c8a496dfe013", "date": "2025-05-16T01:17:24+08:00", "subject": "Add EIP: General Repricing" }, { "blob": "a20c895329b1f4bd0b38ebf502c75432d4f19310", "commit": "4e92b6c3e0e055cb88891343b1fd6c2b1e14b2ae", "date": "2025-09-11T10:40:14Z", "subject": "Update EIP-7904: simplify the proposal" }, { "blob": "4175c14c74bf3fa61f486fc99ad9537ad730fd27", "commit": "3d88e02a87466efcdcfe5c1bdc0188d48f9cc713", "date": "2025-11-26T16:48:08+08:00", "subject": "Update EIP-7904: Align WarmStorageReadCost with spec (5 gas)" }, { "blob": "67bc9c8e2a895fe3bd953b27cd85c87860ec8177", "commit": "67be9657ce4a25e0b20906691a956031d9230804", "date": "2026-01-21T16:17:28+08:00", "subject": "Update EIP-7904: correct opcode table order and reference implementat\u2026" }, { "blob": "61f3be29141b291e84168a9bf56c64e0b66bb99f", "commit": "88ea82a69e4fa2c545267a055d173542ed0bdc39", "date": "2026-02-09T23:03:24+08:00", "subject": "Update EIP-7904: Update 7904 - new methodology + preliminary numbers" }, { "blob": "9aceb269550b5c423b84b5d1e7a553fb70c19b62", "commit": "cb113ac7eef3478af01e5825254a162221eed64f", "date": "2026-06-12T14:47:28Z", "subject": "Update EIP-7904: Convert to Informational (no compute repricing needed)" }, { "blob": "482c586b726fc2ee89146e5e3b56319d3780fe76", "commit": "80662f8293d85fa1594d7dc0b63c9bcd59f22383", "date": "2026-07-09T03:30:12+08:00", "subject": "Update EIP-7904: Move to Review" }, { "blob": "822b151e5147031adb3a81e65b3f9eb504d6416e", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Compute Gas Cost Analysis" }, "7928": { "category": "Core", "deltas": [ { "blob": "c574b304bedc762ff878e31b9337f46077f52fd7", "candidates": [], "commit": "943f8d14e39ef91d96f79b0dde32ccafdd58e7db", "constants": [], "date": "2026-10-01T12:35:00Z", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex f834f000..c574b304 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -528,7 +528,7 @@ This design variant was chosen for several key reasons:\n \n 2. **Storage values for writes**: Post-execution values enable state reconstruction during sync without individual proofs against state root.\n \n-3. **Overhead analysis**: Historical data shows ~70 KiB average BAL size.\n+3. **Overhead analysis**: Historical data shows ~90 KiB average BAL size.\n \n 4. **Transaction independence**: 60-80% of transactions access disjoint storage slots, enabling effective parallelization. The remaining 20-40% can be parallelized by having post-transaction state diffs.\n \n@@ -536,20 +536,20 @@ This design variant was chosen for several key reasons:\n \n ### BAL Size Considerations (60m block gas limit)\n \n-**Average BAL size**: ~72.4 KiB (compressed)\n+**Average BAL size**: ~92.1 KiB (compressed)\n \n-- Storage writes: ~29.2 KiB (40.3%)\n-- Storage reads: ~18.7 KiB (25.8%)\n-- Balance diffs: ~6.7 KiB (9.2%)\n-- Nonce diffs: ~1.1 KiB (1.5%)\n-- Code diffs: ~1.2 KiB (1.6%)\n-- Account addresses (with diffs): ~7.7 KiB (10.7%)\n-- Touched-only addresses: ~3.5 KiB (4.8%)\n-- RLP encoding overhead: ~4.4 KiB (6.1%)\n+- Storage writes: ~36.1 KiB (39.2%)\n+- Storage reads: ~25.8 KiB (28.0%)\n+- Balance diffs: ~9.2 KiB (10.0%)\n+- Nonce diffs: ~1.9 KiB (2.1%)\n+- Code diffs: ~1.4 KiB (1.5%)\n+- Account addresses (with diffs): ~12.5 KiB (13.6%)\n+- Touched-only addresses: ~3.3 KiB (3.6%)\n+- RLP encoding overhead: ~1.8 KiB (1.9%)\n \n Smaller than current worst-case calldata blocks.\n \n-An empirical analysis has been done [here](../assets/eip-7928/bal_size_analysis.md). An updated analysis for a 60 million block gas limit can be found [here](../assets/eip-7928/bal_size_analysis_60m.md).\n+An empirical analysis has been done [here](../assets/eip-7928/bal_size_analysis.md). An updated analysis for a 60 million block gas limit can be found [here](../assets/eip-7928/bal_size_analysis_60m.md), and a refreshed one over more recent blocks (October 2026) [here](../assets/eip-7928/bal_size_analysis_60m_2026_10.md).\n \n ### Asynchronous Validation\n \n", "order": 78, "subject": "Update EIP-7928: Update size numbers", "tokens": [], "window": [ { "author_date": "2026-10-02T08:11:20-06:00", "commit": "b38646c72e48d882210dafc72009bcb06d8a17d7", "subject": "feat(test-specs, tests): tests for BAL parallel execution (#3670)" }, { "author_date": "2026-10-01T03:49:05+05:30", "commit": "df57a532bdf8bc943763353ffed48623b8b63542", "subject": "feat(tests): cover SYSTEM_ADDRESS accessed via delegation and withdrawal (EIP-7928) (#3681)" }, { "author_date": "2026-09-28T23:03:15+05:30", "commit": "a606ff5dae508bc2e0018acc850f2eeaab14f5c9", "subject": "feat(tests): cover BAL same-index nonce keep and code replace (#3654)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-24T05:08:47-06:00", "commit": "4a05b82ea94ed5dbc73972ea87cfca19eade0fbd", "subject": "fix(tests): isolate the BAL factory create-chain collision pre-alloc group (#3640)" }, { "author_date": "2026-09-17T07:16:52-06:00", "commit": "a9792ab73b8195d5a8dc24b2ef6cca7687cd6b2b", "subject": "feat(tests,specs): eip7928 extended coverage (#3566)" } ] }, { "blob": "da98465f4a68bc576582b79fc9da12193630d7c9", "candidates": [ { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_opcodes.py", "score": 3, "test": "test_block_access_lists_opcodes.py::test_bal_create2_selfdestruct_then_recreate_same_block", "tokens": [ "SELFDESTRUCT", "SLOAD", "SSTORE" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_opcodes.py", "score": 3, "test": "test_block_access_lists_opcodes.py::test_bal_create_storage_op_then_selfdestruct_same_tx", "tokens": [ "SELFDESTRUCT", "SLOAD", "SSTORE" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_opcodes.py", "score": 3, "test": "test_block_access_lists_opcodes.py::test_bal_dirty_account_selfdestruct", "tokens": [ "SELFDESTRUCT", "SLOAD", "SSTORE" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_opcodes.py", "score": 3, "test": "test_block_access_lists_opcodes.py::test_bal_sstore_and_oog", "tokens": [ "access_cost", "SLOAD", "SSTORE" ] } ], "commit": "c304610716ce55e457333e1d09074e4acb54c66f", "constants": [], "date": "2026-10-01T17:41:39-06:00", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex c574b304..da98465f 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -157,7 +157,7 @@ The following table specifies pre-state validation costs in addition to the base\n \n Where:\n \n-- `access_cost`: For account-accessing opcodes: `COLD_ACCOUNT_ACCESS_COST` if cold, `WARM_STORAGE_READ_COST` if warm. For storage-accessing opcodes (`SLOAD` and `SSTORE`): `COLD_SLOAD_COST` if cold, `WARM_STORAGE_READ_COST` if warm.\n+- `access_cost`: For account-accessing opcodes, `COLD_ACCOUNT_ACCESS_COST` if cold and `WARM_STORAGE_READ_COST` if warm, except for a warm `SELFDESTRUCT` beneficiary, which has zero access cost as specified by [EIP-2929](./eip-2929.md). For storage-accessing opcodes (`SLOAD` and `SSTORE`), `COLD_SLOAD_COST` if cold and `WARM_STORAGE_READ_COST` if warm.\n - `memory_expansion`: Gas cost to expand memory for input/output regions\n \n Post-state costs (e.g., `GAS_NEW_ACCOUNT` for calls to empty accounts, `GAS_SELF_DESTRUCT_NEW_ACCOUNT` if beneficiary does not exist) do not affect BAL inclusion since the target has already been accessed.\n", "order": 79, "subject": "Update EIP-7928: clarify warm `SELFDESTRUCT` beneficiary access cost", "tokens": [ "access_cost", "COLD_ACCOUNT_ACCESS_COST", "WARM_STORAGE_READ_COST", "SELFDESTRUCT", "SLOAD", "SSTORE", "COLD_SLOAD_COST" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-02T08:11:20-06:00", "commit": "b38646c72e48d882210dafc72009bcb06d8a17d7", "subject": "feat(test-specs, tests): tests for BAL parallel execution (#3670)" }, { "author_date": "2026-10-01T03:49:05+05:30", "commit": "df57a532bdf8bc943763353ffed48623b8b63542", "subject": "feat(tests): cover SYSTEM_ADDRESS accessed via delegation and withdrawal (EIP-7928) (#3681)" }, { "author_date": "2026-09-28T23:03:15+05:30", "commit": "a606ff5dae508bc2e0018acc850f2eeaab14f5c9", "subject": "feat(tests): cover BAL same-index nonce keep and code replace (#3654)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-24T05:08:47-06:00", "commit": "4a05b82ea94ed5dbc73972ea87cfca19eade0fbd", "subject": "fix(tests): isolate the BAL factory create-chain collision pre-alloc group (#3640)" } ] }, { "blob": "d70db88d1406e81907ae46566af653959ac3a9f3", "candidates": [ { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists.py", "score": 2, "test": "test_block_access_lists.py::test_bal_cross_tx_funding_chain", "tokens": [ "BlockAccessList", "0xc0" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip2935.py", "score": 2, "test": "test_block_access_lists_eip2935.py::test_bal_2935_absent_contract", "tokens": [ "BlockAccessList", "AccountChanges" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip4788.py", "score": 2, "test": "test_block_access_lists_eip4788.py::test_bal_4788_absent_contract", "tokens": [ "BlockAccessList", "AccountChanges" ] } ], "commit": "356a0046e9e7ae4afcdd0cf2507698e04d7f9a37", "constants": [], "date": "2026-10-02T02:33:16Z", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex da98465f..d70db88d 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -29,7 +29,7 @@ This proposal enforces access lists at the block level, enabling:\n \n ### Block Structure Modification\n \n-We introduce a new field to the block header, `block_access_list_hash`, which contains the Keccak-256 hash of the RLP-encoded block access list. When no state changes are present, this field is the hash of an empty RLP list `0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347`, i.e. `keccak256(rlp.encode([]))`.\n+We introduce a new field to the block header, `block_access_list_hash`, which contains the Keccak-256 hash of the RLP-encoded block access list. For an empty block access list, this is `keccak256(rlp.encode([])) = 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347`.\n \n ```python\n class Header:\n@@ -39,7 +39,7 @@ class Header:\n block_access_list_hash: Hash32 = keccak256(rlp.encode(block_access_list))\n ```\n \n-The `BlockAccessList` is not included in the block body. The EL stores BALs separately and transmits them as a field in the `ExecutionPayload` via the engine API. The BAL is RLP-encoded as a list of `AccountChanges`. When no state changes are present, this field is the empty RLP list `0xc0`, i.e. `rlp.encode([])`.\n+The `BlockAccessList` is not included in the block body. The EL stores BALs separately and transmits them as a field in the `ExecutionPayload` via the engine API. The BAL is RLP-encoded as a list of `AccountChanges`. An empty block access list encodes as `0xc0`, i.e. `rlp.encode([])`.\n \n ### RLP Data Structures\n \n", "order": 80, "subject": "Update EIP-7928: clarify empty BAL conditions", "tokens": [ "block_access_list_hash", "keccak256(rlp.encode([])) = 0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "BlockAccessList", "ExecutionPayload", "AccountChanges", "0xc0", "rlp.encode([])" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-02T08:11:20-06:00", "commit": "b38646c72e48d882210dafc72009bcb06d8a17d7", "subject": "feat(test-specs, tests): tests for BAL parallel execution (#3670)" }, { "author_date": "2026-10-01T03:49:05+05:30", "commit": "df57a532bdf8bc943763353ffed48623b8b63542", "subject": "feat(tests): cover SYSTEM_ADDRESS accessed via delegation and withdrawal (EIP-7928) (#3681)" }, { "author_date": "2026-09-28T23:03:15+05:30", "commit": "a606ff5dae508bc2e0018acc850f2eeaab14f5c9", "subject": "feat(tests): cover BAL same-index nonce keep and code replace (#3654)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-24T05:08:47-06:00", "commit": "4a05b82ea94ed5dbc73972ea87cfca19eade0fbd", "subject": "fix(tests): isolate the BAL factory create-chain collision pre-alloc group (#3640)" } ] }, { "blob": "c9108d3239308fca9055368643462bbbf8393958", "candidates": [], "commit": "ac912ca6a9685590345dd8e5736cda75976d0131", "constants": [], "date": "2026-10-02T04:32:54-06:00", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex d70db88d..c9108d32 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -177,8 +177,8 @@ Note: Delegated accounts cannot be empty, so `GAS_NEW_ACCOUNT` never applies whe\n The following ordering rules MUST apply:\n \n - **Accounts**: Lexicographic by address\n-- **storage_changes**: Slots lexicographic by storage key; within each slot, changes by block access index (ascending)\n-- **storage_reads**: Lexicographic by storage key\n+- **storage_changes**: Slots by storage key value (ascending); within each slot, changes by block access index (ascending)\n+- **storage_reads**: By storage key value (ascending)\n - **balance_changes, nonce_changes, code_changes**: By block access index (ascending)\n \n The following uniqueness constraints MUST hold:\n", "order": 81, "subject": "Update EIP-7928: Clarify storage key ordering", "tokens": [], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-02T08:11:20-06:00", "commit": "b38646c72e48d882210dafc72009bcb06d8a17d7", "subject": "feat(test-specs, tests): tests for BAL parallel execution (#3670)" }, { "author_date": "2026-10-01T03:49:05+05:30", "commit": "df57a532bdf8bc943763353ffed48623b8b63542", "subject": "feat(tests): cover SYSTEM_ADDRESS accessed via delegation and withdrawal (EIP-7928) (#3681)" }, { "author_date": "2026-09-28T23:03:15+05:30", "commit": "a606ff5dae508bc2e0018acc850f2eeaab14f5c9", "subject": "feat(tests): cover BAL same-index nonce keep and code replace (#3654)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-24T05:08:47-06:00", "commit": "4a05b82ea94ed5dbc73972ea87cfca19eade0fbd", "subject": "fix(tests): isolate the BAL factory create-chain collision pre-alloc group (#3640)" } ] }, { "blob": "f5828f59cd5073eca7856b62c6d16389d5a2c09d", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex c9108d32..f5828f59 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -4,7 +4,8 @@ title: Block-Level Access Lists\n description: Enforced block access lists with state locations and post-transaction state diffs\n author: Toni Wahrst\u00e4tter (@nerolation), Dankrad Feist (@dankrad), Francesco D`Amato (@fradamt), Jochem Brouwer (@jochem-brouwer), Ignacio Hagopian (@jsign), Felipe Selmo (@fselmo), Rahul (@raxhvl), Stefan (@qu0b)\n discussions-to: https://ethereum-magicians.org/t/eip-7928-block-level-access-lists/23337\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-03-31\n", "order": 82, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-02T08:11:20-06:00", "commit": "b38646c72e48d882210dafc72009bcb06d8a17d7", "subject": "feat(test-specs, tests): tests for BAL parallel execution (#3670)" }, { "author_date": "2026-10-01T03:49:05+05:30", "commit": "df57a532bdf8bc943763353ffed48623b8b63542", "subject": "feat(tests): cover SYSTEM_ADDRESS accessed via delegation and withdrawal (EIP-7928) (#3681)" }, { "author_date": "2026-09-28T23:03:15+05:30", "commit": "a606ff5dae508bc2e0018acc850f2eeaab14f5c9", "subject": "feat(tests): cover BAL same-index nonce keep and code replace (#3654)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-24T05:08:47-06:00", "commit": "4a05b82ea94ed5dbc73972ea87cfca19eade0fbd", "subject": "fix(tests): isolate the BAL factory create-chain collision pre-alloc group (#3640)" } ] }, { "blob": "96933027a9d8619b0e123b4cb123178855499c59", "candidates": [ { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py", "score": 4, "test": "test_block_access_lists_cross_index.py::test_bal_withdrawals_and_dequeues_net_balance_at_last_index", "tokens": [ "BlockAccessList", "0", "storage_reads", "balance_changes" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip2935.py", "score": 4, "test": "test_block_access_lists_eip2935.py::test_bal_2935_invalid_calldata_size", "tokens": [ "BlockAccessList", "0", "storage_reads", "balance_changes" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip2935.py", "score": 4, "test": "test_block_access_lists_eip2935.py::test_bal_2935_query", "tokens": [ "BlockAccessList", "0", "storage_reads", "balance_changes" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip4788.py", "score": 4, "test": "test_block_access_lists_eip4788.py::test_bal_4788_invalid_calldata_size", "tokens": [ "BlockAccessList", "0", "storage_reads", "balance_changes" ] }, { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_eip4788.py", "score": 4, "test": "test_block_access_lists_eip4788.py::test_bal_4788_query", "tokens": [ "BlockAccessList", "0", "storage_reads", "balance_changes" ] } ], "commit": "41a838decba33325d01bd99b1cd6072c51214fac", "constants": [], "date": "2026-10-19T08:19:17Z", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex f5828f59..96933027 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -2,7 +2,7 @@\n eip: 7928\n title: Block-Level Access Lists\n description: Enforced block access lists with state locations and post-transaction state diffs\n-author: Toni Wahrst\u00e4tter (@nerolation), Dankrad Feist (@dankrad), Francesco D`Amato (@fradamt), Jochem Brouwer (@jochem-brouwer), Ignacio Hagopian (@jsign), Felipe Selmo (@fselmo), Rahul (@raxhvl), Stefan (@qu0b)\n+author: Toni Wahrst\u00e4tter (@nerolation), Dankrad Feist (@dankrad), Francesco D'Amato (@fradamt), Jochem Brouwer (@jochem-brouwer), Ignacio Hagopian (@jsign), Felipe Selmo (@fselmo), Rahul (@raxhvl), Stefan (@qu0b)\n discussions-to: https://ethereum-magicians.org/t/eip-7928-block-level-access-lists/23337\n status: Last Call\n last-call-deadline: 2026-11-01\n@@ -36,11 +36,11 @@ We introduce a new field to the block header, `block_access_list_hash`, which co\n class Header:\n # Existing fields\n ...\n- \n+\n block_access_list_hash: Hash32 = keccak256(rlp.encode(block_access_list))\n ```\n \n-The `BlockAccessList` is not included in the block body. The EL stores BALs separately and transmits them as a field in the `ExecutionPayload` via the engine API. The BAL is RLP-encoded as a list of `AccountChanges`. An empty block access list encodes as `0xc0`, i.e. `rlp.encode([])`.\n+The `BlockAccessList` is not included in the block body. The execution layer (EL) stores BALs separately and transmits them as a field in the `ExecutionPayload` via the engine API. The BAL is RLP-encoded as a list of `AccountChanges`. An empty block access list encodes as `0xc0`, i.e. `rlp.encode([])`.\n \n ### RLP Data Structures\n \n@@ -90,13 +90,13 @@ BlockAccessList = List[AccountChanges]\n \n ### Scope and Inclusion\n \n-**`BlockAccessList`** is the set of all addresses accessed during block execution. \n+**`BlockAccessList`** is the set of all addresses accessed during block execution.\n \n It MUST include:\n- \n+\n - Addresses with state changes (storage, balance, nonce, or code).\n - Addresses accessed without state changes, including:\n- \n+\n - Targets of `BALANCE`, `EXTCODESIZE`, `EXTCODECOPY`, `EXTCODEHASH` opcodes\n - Targets of `CALL`, `CALLCODE`, `DELEGATECALL`, `STATICCALL` (even if they revert; see [Gas Validation Before State Access](#gas-validation-before-state-access) for inclusion conditions)\n - Target addresses of `CREATE`/`CREATE2` only once the EVM accesses the computed address: on post-access out-of-gas, on creation collision, or when creation setup increments the new account's nonce; not on address computation alone, nor when creation fails before access (e.g. insufficient sender balance for the endowment, nonce overflow, or call stack depth limit)\n@@ -195,9 +195,9 @@ The following uniqueness constraints MUST hold:\n \n `BlockAccessIndex` values MUST be assigned as follows:\n \n-- `0` for **pre\u2011execution** system contract calls.\n-- `1 \u2026 n` for transactions (in block order).\n-- `n + 1` for **post\u2011execution** system contract calls.\n+- `0` for **pre-execution** system contract calls.\n+- `1 ... n` for transactions (in block order).\n+- `n + 1` for **post-execution** system contract calls.\n \n ### Recording Semantics by Change Type\n \n@@ -205,9 +205,9 @@ The following uniqueness constraints MUST hold:\n \n - **Writes include:**\n \n- - Any value change (post\u2011value \u2260 pre\u2011value).\n- - **Zeroing** a slot (pre\u2011value exists, post\u2011value is zero).\n- \n+ - Any value change (post-value \u2260 pre-value).\n+ - **Zeroing** a slot (pre-value exists, post-value is zero).\n+\n - **Reads include:**\n \n - Slots accessed via `SLOAD` that are not written.\n@@ -217,7 +217,7 @@ Note: Implementations MUST compare each write against the storage value as of im\n \n #### Balance (`balance_changes`)\n \n-Record **post\u2011transaction** balances (`uint256`) for:\n+Record **post-transaction** balances (`uint256`) for:\n \n - Transaction **senders** (gas + value).\n - Transaction **recipients** (only if `value > 0`).\n@@ -241,11 +241,11 @@ A zero-value block reward MUST NOT trigger a balance change in the block access\n \n #### Code\n \n-Track **post\u2011transaction runtime bytecode** for deployed or modified contracts, and **delegation indicators** for successful delegations as defined in [EIP-7702](./eip-7702.md).\n+Track **post-transaction runtime bytecode** for deployed or modified contracts, and **delegation indicators** for successful delegations as defined in [EIP-7702](./eip-7702.md).\n \n #### Nonce\n \n-Record **post\u2011transaction nonces** for:\n+Record **post-transaction nonces** for:\n \n - EOA senders.\n - Contracts that performed a successful `CREATE` or `CREATE2`.\n@@ -257,26 +257,26 @@ Record **post\u2011transaction nonces** for:\n - **COINBASE / Fee Recipient:** The COINBASE address follows the same inclusion rules as any other account. It is included when accessed (e.g., during transaction fee accounting) and excluded when not accessed (e.g., empty blocks with no relevant withdrawals).\n - **Precompiled contracts:** Precompiles MUST be included when accessed. If a precompile receives value, it is recorded with a balance change. Otherwise, it is included with empty change lists.\n - **SENDALL:** For positive-value selfdestructs, the sender and beneficiary are recorded with a balance change.\n-- **SELFDESTRUCT (in-transaction):** Accounts destroyed within a transaction MUST be included in `AccountChanges` without nonce or code changes. However, if the account had a positive balance pre-transaction, the balance change to zero MUST be recorded. Storage keys within the self-destructed contracts that were modified or read MUST be included as a `storage_reads` entry. \n+- **SELFDESTRUCT (in-transaction):** Accounts destroyed within a transaction MUST be included in `AccountChanges` without nonce or code changes. However, if the account had a positive balance pre-transaction, the balance change to zero MUST be recorded. Storage keys within the self-destructed contracts that were modified or read MUST be included as a `storage_reads` entry.\n - **Accessed but unchanged:** Include the address with empty changes (e.g., targets of `EXTCODEHASH`, `EXTCODESIZE`, `BALANCE`, `STATICCALL`, etc.).\n-- **Zero\u2011value transfers / Unchanged balance in transaction:** Include the address; omit from `balance_changes`.\n+- **Zero-value transfers / Unchanged balance in transaction:** Include the address; omit from `balance_changes`.\n - **Gas refunds:** Record the **final** balance of the sender after each transaction.\n - **Block rewards:** Record the **final** balance of the fee recipient after each transaction.\n - **Exceptional halts:** Record the **final** nonce and balance of the sender, and the **final** balance of the fee recipient after each transaction. State changes from the reverted call are discarded, but all accessed addresses MUST be included. If no changes remain, addresses are included with empty lists; if storage was read, the corresponding keys MUST appear in `storage_reads`. A transaction can halt on a runtime gas charge before the recipient is loaded (e.g., during [EIP-7702](./eip-7702.md) authorization processing); the recipient is then never accessed and MUST NOT be included unless accessed for another reason.\n-- **Pre\u2011execution system contract calls:** All state changes MUST use `block_access_index = 0`.\n-- **Post\u2011execution system contract calls:** All state changes MUST use `block_access_index = len(transactions) + 1`.\n+- **Pre-execution system contract calls:** All state changes MUST use `block_access_index = 0`.\n+- **Post-execution system contract calls:** All state changes MUST use `block_access_index = len(transactions) + 1`.\n - **EIP-7702 Delegations:** The authority address MUST be included with nonce and code changes after any successful delegation set, update, or clear. If authorization fails after the authority address has been loaded and added to `accessed_addresses` (per [EIP-2929](./eip-2929.md)), it MUST still be included with an empty change set; if authorization fails before the authority is loaded, it MUST NOT be included. The delegation target MUST NOT be included during delegation creation or modification and MUST only be included once it is actually loaded as an execution target (e.g., via `CALL`/`CALLCODE`/`DELEGATECALL`/`STATICCALL` under authority execution).\n-- **EIP\u20114895 (Consensus layer withdrawals):** Recipients are recorded with their final balance after the withdrawal.\n-- **EIP\u20112935 (block hash):** Record system contract storage diffs of the **single** updated storage slot in the ring buffer.\n-- **EIP\u20114788 (beacon root):** Record system contract storage diffs of the **two** updated storage slots in the ring buffer.\n-- **EIP\u20117002 (withdrawals):** Record system contract storage diffs of storage slots **0\u20133** (4 slots) after the dequeuing call. The dequeue also reads up to 3 \u00d7 `MAX_WITHDRAWAL_REQUESTS_PER_BLOCK` queue data slots (from slot 4 onward), which appear as storage_reads.\n-- **EIP\u20117251 (consolidations):** Record system contract storage diffs of storage slots **0\u20133** (4 slots) after the dequeuing call. The dequeue also reads up to 4 \u00d7 `MAX_CONSOLIDATION_REQUESTS_PER_BLOCK` queue data slots (from slot 4 onward), which appear as storage_reads.\n+- **EIP-4895 (Consensus layer withdrawals):** Recipients are recorded with their final balance after the withdrawal.\n+- **EIP-2935 (block hash):** Record system contract storage diffs of the **single** updated storage slot in the ring buffer.\n+- **EIP-4788 (beacon root):** Record system contract storage diffs of the **two** updated storage slots in the ring buffer.\n+- **EIP-7002 (withdrawals):** Record system contract storage diffs of storage slots **0\u20133** (4 slots) after the dequeuing call. The dequeue also reads up to 3 \u00d7 `MAX_WITHDRAWAL_REQUESTS_PER_BLOCK` queue data slots (from slot 4 onward), which appear as `storage_reads`.\n+- **EIP-7251 (consolidations):** Record system contract storage diffs of storage slots **0\u20133** (4 slots) after the dequeuing call. The dequeue also reads up to 4 \u00d7 `MAX_CONSOLIDATION_REQUESTS_PER_BLOCK` queue data slots (from slot 4 onward), which appear as `storage_reads`.\n \n ### Engine API\n \n The Engine API is extended with new structures and methods to support block-level access lists:\n \n-**ExecutionPayloadV4** extends ExecutionPayloadV3 with:\n+**ExecutionPayloadV4** extends `ExecutionPayloadV3` with:\n \n - `blockAccessList`: RLP-encoded block access list\n \n@@ -310,22 +310,22 @@ The execution layer provides the RLP-encoded `blockAccessList` to the consensus\n \n The `blockAccessList` field contains the RLP-encoded BAL or `null` for pre-Amsterdam blocks or when data has been pruned.\n \n-The EL MUST retain BALs for at least the duration of the weak subjectivity period (`=3533 epochs`) to support synchronization with re-execution after being offline for less than the WSP.\n+The EL MUST retain BALs for at least the duration of the weak subjectivity period (3533 epochs) to support synchronization with re-execution after being offline for less than the WSP.\n \n ### State Transition Function\n \n-The state transition function must validate that the provided BAL matches the actual state accesses.\n+The state transition function MUST validate that the provided BAL matches the actual state accesses.\n \n **Implementation Note:** The BAL itself does not need to enter the state transition function. Implementations MAY validate by generating a virtual BAL during execution, hashing it, and comparing against the `block_access_list_hash` in the header. This is the approach used in the execution-specs reference implementation.\n \n-```python \n+```python\n def validate_block(execution_payload, block_header):\n # 1. Compute hash from received BAL and set in header\n- block_header.block_access_list_hash = keccak(execution_payload.blockAccessList)\n- \n+ block_header.block_access_list_hash = keccak256(execution_payload.blockAccessList)\n+\n # 2. Execute block and collect actual accesses\n actual_bal = execute_and_collect_accesses(execution_payload)\n- \n+\n # 3. Verify actual execution matches provided BAL\n # If this fails, the block is invalid (the hash in the header would be wrong)\n assert rlp.encode(actual_bal) == execution_payload.blockAccessList\n@@ -333,22 +333,22 @@ def validate_block(execution_payload, block_header):\n def execute_and_collect_accesses(block):\n \"\"\"Execute block and collect all state accesses into BAL format\"\"\"\n accesses = {}\n- \n+\n # Pre-execution system contracts (block_access_index = 0)\n track_system_contracts_pre(block, accesses, block_access_index=0)\n- \n+\n # Execute transactions (block_access_index = 1..n)\n for i, tx in enumerate(block.transactions):\n execute_transaction(tx)\n track_state_changes(tx, accesses, block_access_index=i+1)\n- \n+\n # Withdrawals and post-execution (block_access_index = len(txs) + 1)\n post_index = len(block.transactions) + 1\n for withdrawal in block.withdrawals:\n apply_withdrawal(withdrawal)\n track_balance_change(withdrawal.address, accesses, post_index)\n track_system_contracts_post(block, accesses, post_index)\n- \n+\n # Convert to BAL format and sort\n return build_bal(accesses)\n \n@@ -363,18 +363,18 @@ def track_state_changes(tx, accesses, block_access_index):\n 'nonce_changes': [],\n 'code_changes': []\n }\n- \n+\n # Track storage changes\n for slot, value in get_storage_writes(addr).items():\n if slot not in accesses[addr]['storage_writes']:\n accesses[addr]['storage_writes'][slot] = []\n accesses[addr]['storage_writes'][slot].append((block_access_index, value))\n- \n+\n # Track reads (slots accessed but not written)\n for slot in get_storage_reads(addr):\n if slot not in accesses[addr]['storage_writes']:\n accesses[addr]['storage_reads'].add(slot)\n- \n+\n # Track balance, nonce, code changes\n if balance_changed(addr):\n accesses[addr]['balance_changes'].append((block_access_index, get_balance(addr)))\n@@ -388,11 +388,11 @@ def build_bal(accesses):\n bal = []\n for addr in sorted(accesses.keys()): # Sort addresses lexicographically\n data = accesses[addr]\n- \n+\n # Format storage changes: [slot, [[index, value], ...]]\n- storage_changes = [[slot, sorted(changes)] \n+ storage_changes = [[slot, sorted(changes)]\n for slot, changes in sorted(data['storage_writes'].items())]\n- \n+\n # Account entry: [address, storage_changes, reads, balance_changes, nonce_changes, code_changes]\n bal.append([\n addr,\n@@ -402,7 +402,7 @@ def build_bal(accesses):\n sorted(data['nonce_changes']),\n sorted(data['code_changes'])\n ])\n- \n+\n return bal\n ```\n \n@@ -456,7 +456,7 @@ Resulting BAL (RLP structure):\n [], # nonce_changes\n [] # code_changes\n ],\n- [ # AccountChanges for 0xaaaa... (Alice - sender tx 0)\n+ [ # AccountChanges for 0xaaaa... (Alice - sender of tx 1)\n 0xaaaa...,\n [], # storage_changes\n [], # storage_reads\n@@ -472,7 +472,7 @@ Resulting BAL (RLP structure):\n [], # nonce_changes\n [] # code_changes\n ],\n- [ # AccountChanges for 0xbbbb... (Bob - recipient tx 0)\n+ [ # AccountChanges for 0xbbbb... (Bob - recipient of tx 1)\n 0xbbbb...,\n [], # storage_changes\n [], # storage_reads\n@@ -480,7 +480,7 @@ Resulting BAL (RLP structure):\n [], # nonce_changes\n [] # code_changes\n ],\n- [ # AccountChanges for 0xcccc... (Charlie - sender tx 1)\n+ [ # AccountChanges for 0xcccc... (Charlie - sender of tx 2)\n 0xcccc...,\n [], # storage_changes\n [], # storage_reads\n@@ -550,7 +550,7 @@ This design variant was chosen for several key reasons:\n \n Smaller than current worst-case calldata blocks.\n \n-An empirical analysis has been done [here](../assets/eip-7928/bal_size_analysis.md). An updated analysis for a 60 million block gas limit can be found [here](../assets/eip-7928/bal_size_analysis_60m.md), and a refreshed one over more recent blocks (October 2026) [here](../assets/eip-7928/bal_size_analysis_60m_2026_10.md).\n+The figures above are taken from an analysis of 1000 mainnet blocks from October 2026, available [here](../assets/eip-7928/bal_size_analysis_60m_2026_10.md). Earlier analyses are available for the initial SSZ-based design [here](../assets/eip-7928/bal_size_analysis.md) and for an earlier 1000-block sample at a 60 million block gas limit [here](../assets/eip-7928/bal_size_analysis_60m.md).\n \n ### Asynchronous Validation\n \n@@ -568,7 +568,7 @@ Validating access lists and balance diffs adds validation overhead but is essent\n \n ### Block Size\n \n-Increased block size impacts propagation but overhead (~70 KiB average) is reasonable for performance gains.\n+Increased block size impacts propagation but overhead (~90 KiB average) is reasonable for performance gains.\n \n ### Spurious Storage Reads\n \n", "order": 83, "subject": "Update EIP-7928: Fix block size figure and polish wording", "tokens": [ "BlockAccessList", "ExecutionPayload", "AccountChanges", "0xc0", "rlp.encode([])", "0", "1 ... n", "n + 1", "uint256", "storage_reads", "balance_changes", "block_access_index = 0", "block_access_index = len(transactions) + 1", "MAX_WITHDRAWAL_REQUESTS_PER_BLOCK", "MAX_CONSOLIDATION_REQUESTS_PER_BLOCK", "ExecutionPayloadV3" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" } ] }, { "blob": "da3508ff6d73d53c9ffa9fc55f0724fb4c99198b", "candidates": [], "commit": "068e50ad2afa94c3bd967ce584867fb27d371c01", "constants": [], "date": "2026-10-19T17:20:16Z", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex 96933027..da3508ff 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -310,7 +310,7 @@ The execution layer provides the RLP-encoded `blockAccessList` to the consensus\n \n The `blockAccessList` field contains the RLP-encoded BAL or `null` for pre-Amsterdam blocks or when data has been pruned.\n \n-The EL MUST retain BALs for at least the duration of the weak subjectivity period (3533 epochs) to support synchronization with re-execution after being offline for less than the WSP.\n+The EL MUST keep BALs available via `engine_getPayloadBodiesBy*V2` for at least `HISTORY_PRUNE_EPOCHS` (14299 epochs), the retention window of block bodies, so that consensus clients can serve full execution payloads for as long as the p2p network requires them.\n \n ### State Transition Function\n \n", "order": 84, "subject": "Update EIP-7928: align BAL retention with the history expiry window", "tokens": [ "engine_getPayloadBodiesBy*V2", "HISTORY_PRUNE_EPOCHS" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" } ] }, { "blob": "3c4d4ad300e4946303db45710bba02cfb836f9eb", "candidates": [ { "path": "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py", "score": 5, "test": "test_block_access_lists_cross_index.py::test_bal_withdrawal_predeploy_balance_observed_cross_tx", "tokens": [ "Balance", "Nonce", "1", "Address", "Bytecode" ] } ], "commit": "d4c575521d99ec881a444ab3af604e684b5f0743", "constants": [], "date": "2026-10-27T10:04:29-06:00", "diff": "diff --git a/EIPS/eip-7928.md b/EIPS/eip-7928.md\nindex da3508ff..3c4d4ad3 100644\n--- a/EIPS/eip-7928.md\n+++ b/EIPS/eip-7928.md\n@@ -42,7 +42,7 @@ class Header:\n \n The `BlockAccessList` is not included in the block body. The execution layer (EL) stores BALs separately and transmits them as a field in the `ExecutionPayload` via the engine API. The BAL is RLP-encoded as a list of `AccountChanges`. An empty block access list encodes as `0xc0`, i.e. `rlp.encode([])`.\n \n-### RLP Data Structures\n+### RLP Encoding\n \n BALs use RLP encoding following the pattern: `address -> field -> block_access_index -> change`.\n \n@@ -88,6 +88,8 @@ AccountChanges = [\n BlockAccessList = List[AccountChanges]\n ```\n \n+All integer-typed fields (`StorageKey`, `StorageValue`, `Balance`, `Nonce` and `BlockAccessIndex`) MUST be RLP-encoded as unsigned integers in minimal big-endian form with no leading zero bytes, exactly as scalar fields are encoded in transactions and block headers: zero encodes as the empty byte string (`0x80`), storage key `1` encodes as `0x01`, and keys and values are never zero-padded to 32 bytes. `Address` MUST be encoded as a 20-byte string and `Bytecode` as a variable-length byte string. Because `block_access_list_hash` commits to these bytes, any other encoding of the same values (for example a fixed 32-byte string for a storage key) yields a different hash and therefore an invalid block.\n+\n ### Scope and Inclusion\n \n **`BlockAccessList`** is the set of all addresses accessed during block execution.\n@@ -441,7 +443,7 @@ Resulting BAL (RLP structure):\n [ # AccountChanges for 0x0000F90827F1C53a10cb7A02335B175320002935 (Block hash contract)\n 0x0000F90827F1C53a10cb7A02335B175320002935,\n [ # storage_changes\n- [b'\\x00...\\x0f\\xa0', [[0, b'...']]] # slot, [[block_access_index, parent_hash]]\n+ [0xfa0, [[0, 0x...]]] # slot (integer), [[block_access_index, parent_hash as integer]]\n ],\n [], # storage_reads\n [], # balance_changes\n@@ -468,7 +470,7 @@ Resulting BAL (RLP structure):\n 0xabcd...,\n [], # storage_changes\n [], # storage_reads\n- [[3, 0x...5f5e100]], # balance_changes: 100 ETH withdrawal\n+ [[3, 0x56bc75e2d63100000]], # balance_changes: 100 ETH (10**20 wei) withdrawal; assumes Eve held 0 wei before\n [], # nonce_changes\n [] # code_changes\n ],\n@@ -476,7 +478,7 @@ Resulting BAL (RLP structure):\n 0xbbbb...,\n [], # storage_changes\n [], # storage_reads\n- [[1, 0x...b9aca00]], # balance_changes: +1 ETH\n+ [[1, 0xde0b6b3a7640000]], # balance_changes: post balance after receiving 1 ETH (10**18 wei); assumes Bob held 0 wei before\n [], # nonce_changes\n [] # code_changes\n ],\n@@ -507,7 +509,7 @@ Resulting BAL (RLP structure):\n [ # AccountChanges for 0xffff... (Factory contract)\n 0xffff...,\n [ # storage_changes\n- [b'\\x00...\\x01', [[2, b'\\x00...\\xdd\\xdd...']]] # slot 1, deployed address\n+ [0x01, [[2, 0xdddd...]]] # slot 1 (integer), deployed address stored as an integer value\n ],\n [], # storage_reads\n [], # balance_changes\n", "order": 85, "subject": "Update EIP-7928: specify BAL integer encoding", "tokens": [ "StorageKey", "StorageValue", "Balance", "Nonce", "BlockAccessIndex", "0x80", "1", "0x01", "Address", "Bytecode", "block_access_list_hash" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" } ] } ], "eip": "7928", "head": "d4c575521d99ec881a444ab3af604e684b5f0743", "head_blob": "3c4d4ad300e4946303db45710bba02cfb836f9eb", "head_date": "2026-10-27T10:04:29-06:00", "path": "EIPS/eip-7928.md", "pending": [], "pin": { "ambiguous": false, "blob": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040", "commit": "d2a64c2d4cc44f2f507577d0ebfb110dcc21d358", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7928_block_level_access_lists/spec.py" }, "pin_history": [ { "blob": "35732baa14cfea785d9c58d5f18033392b7ed886", "commit": "190987440755dced5d2f93432fb80f2299a10749", "date": "2025-09-04T00:15:13+02:00", "files": [ "__init__.py", "test_block_access_lists.py", "test_block_access_lists_invalid.py", "test_cases.md" ], "pr": 2067, "release": null, "subject": "feat(tests): Support for EIP-7928 - Block-Level Access Lists (#2067)", "superseded": true }, { "blob": "e7f0963a024b3d0dedc4488a7553bf7c70dedb3e", "commit": "d8f5e3835dc1a1b9ecc6d6e420c1450976ab89de", "date": "2025-10-09T17:58:18+01:00", "files": [], "pr": 2282, "release": null, "subject": "feat(checklists,tests): complete eip7934 checklist + update checklist template + add missing test cases (#2282)", "superseded": true }, { "blob": "e7f0963a024b3d0dedc4488a7553bf7c70dedb3e", "commit": "2648ffcda8d32cf38c22943d50e325edcb34e504", "date": "2025-10-21T16:50:11+01:00", "files": [ "__init__.py", "test_block_access_lists.py", "test_block_access_lists_eip7702.py", "test_block_access_lists_invalid.py", "test_block_access_lists_opcodes.py", "test_cases.md" ], "pr": 1636, "release": null, "subject": "chore(tests): move tests/eest to top-level tests/ directory (#1636)", "superseded": true }, { "blob": "aca88aa0932580c29d0233f902cb4390e88b8c41", "commit": "9b90b4c8b7e6fc6400cc242dc126273cab550516", "date": "2026-03-30T08:25:13-06:00", "files": [], "pr": 2033, "release": "tests@v20.0.0", "subject": "feat(tests): add worst-case BAL read test (#2033)", "superseded": false }, { "blob": "aca88aa0932580c29d0233f902cb4390e88b8c41", "commit": "554bd418ba77f543940ca3b460c365c575eb72bd", "date": "2026-04-20T09:11:42+02:00", "files": [], "pr": 2713, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): EIP-7928 - Update BAL index to uint64 (#2713)", "superseded": false }, { "blob": "aca88aa0932580c29d0233f902cb4390e88b8c41", "commit": "97c13c14cce1ff6955ef3a9e6dd6b1c74e4ccc57", "date": "2026-04-20T09:12:21-06:00", "files": [], "pr": 2730, "release": "tests@v20.0.0", "subject": "refactor: use uint32 instead of uint64 for block access index (#2730)", "superseded": false }, { "blob": "aca88aa0932580c29d0233f902cb4390e88b8c41", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "d6f0b763bcb92d19ea342d3e09550853c741246e", "commit": "6eb68ed3e611a25c8d96292ec61e0aee37f894b4", "date": "2026-08-31T16:29:04-06:00", "files": [ "test_block_access_lists_opcodes.py", "test_cases.md" ], "pr": 3482, "release": null, "subject": "feat(tests): EIP-7928 max nonce boundary check for BAL; update refspec (#3482)", "superseded": true }, { "blob": "d6f0b763bcb92d19ea342d3e09550853c741246e", "commit": "ef914fe55dd252b60a718fec013ae2a6ee15054e", "date": "2026-09-01T11:44:01-06:00", "files": [ "test_block_access_lists_opcodes.py" ], "pr": 3496, "release": null, "subject": "chore(tests): clean up EIP-7928 spec.py ``Spec`` class (#3496)", "superseded": true }, { "blob": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040", "commit": "622620d84a70efe1337abdafaecd7bdfeb254b92", "date": "2026-09-10T09:24:58-06:00", "files": [ "test_block_access_lists_cross_index.py", "test_block_access_lists_eip7002.py", "test_block_access_lists_eip7251.py", "test_block_access_lists_eip8282.py", "test_block_access_lists_invalid.py", "test_block_access_lists_system_call_reads.py", "test_cases.md", "test_fork_transition.py" ], "pr": 3484, "release": "tests@v21.0.0", "subject": "feat(tests,forks): tests BAL early validation; refactor system contracts (#3484)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "aca88aa0932580c29d0233f902cb4390e88b8c41", "tests@v20.0.1": "aca88aa0932580c29d0233f902cb4390e88b8c41", "tests@v20.0.2": "aca88aa0932580c29d0233f902cb4390e88b8c41", "tests@v21.0.0": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040", "tests@v21.0.1": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040", "tests@v21.0.2": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040" }, "revisions": [ { "blob": "5a14a43bd8be919109e4d3a21fee787a9031e974", "commit": "1b4e9a44c1fd51ffd8afe4f0c404cf51d84cff64", "date": "2026-07-04T18:17:07+08:00", "subject": "Update EIP-7928: SSTORE access cost check" }, { "blob": "a2d300144e75a4f312c6b2f38f8eae70d8f8ea4e", "commit": "9f5c44394559d065ad8260fca09703fb195f8919", "date": "2026-07-07T17:28:23Z", "subject": "Update EIP-7928: Move to Review" }, { "blob": "d6f0b763bcb92d19ea342d3e09550853c741246e", "commit": "6c666b8d646df8ea6dcef9638de7b48e3c45ab96", "date": "2026-07-09T23:16:40+08:00", "subject": "Update EIP-7928: exclude the recipient when a runtime halt precedes i\u2026" }, { "blob": "f834f0004aa5110a5f1ac0d6b80e3dc4b842d040", "commit": "d2a64c2d4cc44f2f507577d0ebfb110dcc21d358", "date": "2026-09-09T09:17:05-06:00", "subject": "Update EIP-7928: Amend storage-read gas-feasibility check" }, { "blob": "c574b304bedc762ff878e31b9337f46077f52fd7", "commit": "943f8d14e39ef91d96f79b0dde32ccafdd58e7db", "date": "2026-10-01T12:35:00Z", "subject": "Update EIP-7928: Update size numbers" }, { "blob": "da98465f4a68bc576582b79fc9da12193630d7c9", "commit": "c304610716ce55e457333e1d09074e4acb54c66f", "date": "2026-10-01T17:41:39-06:00", "subject": "Update EIP-7928: clarify warm `SELFDESTRUCT` beneficiary access cost" }, { "blob": "d70db88d1406e81907ae46566af653959ac3a9f3", "commit": "356a0046e9e7ae4afcdd0cf2507698e04d7f9a37", "date": "2026-10-02T02:33:16Z", "subject": "Update EIP-7928: clarify empty BAL conditions" }, { "blob": "c9108d3239308fca9055368643462bbbf8393958", "commit": "ac912ca6a9685590345dd8e5736cda75976d0131", "date": "2026-10-02T04:32:54-06:00", "subject": "Update EIP-7928: Clarify storage key ordering" }, { "blob": "f5828f59cd5073eca7856b62c6d16389d5a2c09d", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "96933027a9d8619b0e123b4cb123178855499c59", "commit": "41a838decba33325d01bd99b1cd6072c51214fac", "date": "2026-10-19T08:19:17Z", "subject": "Update EIP-7928: Fix block size figure and polish wording" }, { "blob": "da3508ff6d73d53c9ffa9fc55f0724fb4c99198b", "commit": "068e50ad2afa94c3bd967ce584867fb27d371c01", "date": "2026-10-19T17:20:16Z", "subject": "Update EIP-7928: align BAL retention with the history expiry window" }, { "blob": "3c4d4ad300e4946303db45710bba02cfb836f9eb", "commit": "d4c575521d99ec881a444ab3af604e684b5f0743", "date": "2026-10-27T10:04:29-06:00", "subject": "Update EIP-7928: specify BAL integer encoding" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7928_block_level_access_lists", "title": "Block-Level Access Lists" }, "7954": { "category": "Core", "deltas": [ { "blob": "e1b5c551c9d5cd6b007c5ce0ccab167965d4a661", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7954.md b/EIPS/eip-7954.md\nindex 2e62d6a8..e1b5c551 100644\n--- a/EIPS/eip-7954.md\n+++ b/EIPS/eip-7954.md\n@@ -4,7 +4,8 @@ title: Increase Maximum Contract Size\n description: Raise the maximum contract code size from 24KiB to 64KiB and initcode size from 48KiB to 128KiB.\n author: Giulio Rebuffo (@Giulio2002), Ben Adams (@benaadams)\n discussions-to: https://ethereum-magicians.org/t/increase-maximum-contract-size-to-48kb/24509\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-06-09\n", "order": 5, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" } ] }, { "blob": "850e9d488f1f7280bdfece3d38a94a3facc0d933", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-7954.md b/EIPS/eip-7954.md\nindex e1b5c551..850e9d48 100644\n--- a/EIPS/eip-7954.md\n+++ b/EIPS/eip-7954.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7954\n title: Increase Maximum Contract Size\n-description: Raise the maximum contract code size from 24KiB to 64KiB and initcode size from 48KiB to 128KiB.\n+description: Raise the maximum contract code size from 24KiB to 64KiB and initcode size from 48KiB to 128KiB\n author: Giulio Rebuffo (@Giulio2002), Ben Adams (@benaadams)\n discussions-to: https://ethereum-magicians.org/t/increase-maximum-contract-size-to-48kb/24509\n status: Last Call\n", "order": 6, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "7954", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "850e9d488f1f7280bdfece3d38a94a3facc0d933", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7954.md", "pending": [], "pin": { "ambiguous": false, "blob": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3", "commit": "fcef3c3c1cd610ff0f4cbee77867026fe5c97898", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7954_increase_max_contract_size/spec.py" }, "pin_history": [ { "blob": "b1f5bf8f70ba9306400f5e13313f781c35acc860", "commit": "c198ebf00ab3897f66ed49bc28cc4c50aa61a858", "date": "2026-05-14T20:41:18-06:00", "files": [ "__init__.py", "conftest.py", "test_cases.md", "test_eip_mainnet.py", "test_fork_transition.py", "test_max_code_size.py", "test_max_initcode_size.py" ], "pr": 2850, "release": null, "subject": "feat(spec-specs, tests): add EIP-7954 Increase Maximum Contract Size (#2850)", "superseded": true }, { "blob": "1dc9bc870f864d7ad1095fc73ba8ca098d02c732", "commit": "e35d103be5007a0b98eb1a69af1c584a6e79d862", "date": "2026-06-16T19:29:24+02:00", "files": [ "test_cases.md", "test_fork_transition.py" ], "pr": 2987, "release": "tests@v20.0.0", "subject": "feat(tests, spec-specs): raise EIP-7954 max code size to 64KiB (#2987)", "superseded": false }, { "blob": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3", "commit": "f9bbb765c953bf5c5425085cbcc35172304348ef", "date": "2026-09-22T10:54:20+02:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_cases.md", "test_fork_transition.py", "test_max_code_size.py", "test_max_initcode_size.py" ], "pr": 3546, "release": "tests@v21.0.0", "subject": "feat(tests): close out eip-7954 checklist (#3546)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "1dc9bc870f864d7ad1095fc73ba8ca098d02c732", "tests@v20.0.1": "1dc9bc870f864d7ad1095fc73ba8ca098d02c732", "tests@v20.0.2": "1dc9bc870f864d7ad1095fc73ba8ca098d02c732", "tests@v21.0.0": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3", "tests@v21.0.1": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3", "tests@v21.0.2": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3" }, "revisions": [ { "blob": "8b192b28eaabc80e75ad496c1d6967a6196ac376", "commit": "210666499e3939653f91652c4f695a3e2fa1aadd", "date": "2025-06-23T14:37:40+08:00", "subject": "Add EIP: Increase Maximum Contract Size" }, { "blob": "d3dde5b7cd6564fb8aefb26050abcd5b02a2ffb7", "commit": "e43e899bb103f267a7844599c7cd3226518b519d", "date": "2026-01-18T08:29:01+08:00", "subject": "(bot 1272989785) moving EIPS/eip-7954.md to stagnant (#10986)" }, { "blob": "b1f5bf8f70ba9306400f5e13313f781c35acc860", "commit": "83509e66344741895858ad756f9e3d290e5a88f4", "date": "2026-01-21T02:23:32+08:00", "subject": "Update EIP-7954: Move to Draft" }, { "blob": "3464f08ab646630e7767a4581c8546e66ef17a09", "commit": "1dc9bc870f864d7ad1095fc73ba8ca098d02c732", "date": "2026-05-21T16:40:22Z", "subject": "Update EIP-7954: Raise contract code size to 64KiB" }, { "blob": "2e62d6a88aa596e4efbf3592cda7706f8a51dac3", "commit": "fcef3c3c1cd610ff0f4cbee77867026fe5c97898", "date": "2026-07-08T00:05:02+08:00", "subject": "Update EIP-7954: Move to Review" }, { "blob": "e1b5c551c9d5cd6b007c5ce0ccab167965d4a661", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "850e9d488f1f7280bdfece3d38a94a3facc0d933", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7954_increase_max_contract_size", "title": "Increase Maximum Contract Size" }, "7975": { "category": "Networking", "checked": "tests/amsterdam/eip7975_*", "deltas": [], "eip": "7975", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "20f2bcf741f3aaf8f42f1071564f286e855c83a6", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7975.md", "pending": [], "pin": null, "revisions": [ { "blob": "979cbba7665aca28f3e13994d085cc15813d7d83", "commit": "217c749051ce5c850986aecc2f2583c868dcd175", "date": "2025-06-27T20:09:51+08:00", "subject": "Add EIP: eth/70 - partial block receipt lists" }, { "blob": "9cbbcc81973c19859dcc19b4e881a05f1b9a4ee8", "commit": "52841e00b04da548f76280a53a67b5284b3dc3f3", "date": "2025-11-24T11:11:15+08:00", "subject": "Update EIP-7975: Update EIP-7975" }, { "blob": "f6d766d66b851f620d3052b3aacf1c3bc6525d2f", "commit": "1db46ea3dcdbede94d55754f3a78cc31dec75b0f", "date": "2026-03-04T00:21:21+08:00", "subject": "Update EIP-7975: fix typo" }, { "blob": "01b4b8a83941263b9231dbf5b6195182d7a66c38", "commit": "ea3c80c4b91db6cefe1f404ecec0f108aa899dfb", "date": "2026-08-04T16:46:31Z", "subject": "Update EIP-7975: clarify upper bound" }, { "blob": "d65d30198c64c13078fd055e8636c1a3a4ef008e", "commit": "d9e35f776d9b2b8434ba7dc2690c89aa22d80a71", "date": "2026-08-04T18:27:40Z", "subject": "Update EIP-7975: Move to Review" }, { "blob": "7a50753a8da587a2bff70825dcc17b382a8eb6e8", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "20f2bcf741f3aaf8f42f1071564f286e855c83a6", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "eth/70 - Partial Block Receipt Lists" }, "7976": { "category": "Core", "deltas": [ { "blob": "ce88f4131e93ffe6a898cac714b8a5cb6ce65070", "candidates": [], "commit": "337df2cb4657de5beba79671a57dbdd0c71e5203", "constants": [ { "after": [ "4" ], "before": [], "name": "STANDARD_TOKEN_COST" }, { "after": [ "15" ], "before": [], "name": "TOTAL_COST_FLOOR_PER_TOKEN" } ], "date": "2025-06-25T00:07:49+08:00", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nnew file mode 100644\nindex 00000000..ce88f413\n--- /dev/null\n+++ b/EIPS/eip-7976.md\n@@ -0,0 +1,108 @@\n+---\n+eip: 7976\n+title: Further increase calldata cost\n+description: Further increase calldata cost to 15/60 gas per byte to reduce maximum block size\n+author: Toni Wahrst\u00e4tter (@nerolation)\n+discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n+status: Draft\n+type: Standards Track\n+category: Core\n+created: 2025-06-18\n+requires: 7623\n+---\n+\n+## Abstract\n+\n+Following the implementation of [EIP-7623](./eip-7623.md), this EIP proposes a further adjustment to calldata pricing by raising the floor cost from 10/40 to 15/60 gas per zero/non-zero byte. This change aims to provide additional reduction in maximum block size and variance while maintaining compatibility with regular user transactions that involve significant EVM computation.\n+\n+## Motivation\n+\n+While [EIP-7623](./eip-7623.md) successfully reduced the maximum possible block size by introducing a floor cost of 10/40 gas per byte for data-heavy transactions, continued increases in gas limit demands further optimization. The current floor cost still permits relatively large data-heavy payloads that contribute to block size variance.\n+\n+By increasing the floor cost to 15/60 gas per byte, this proposal aims to:\n+\n+- Further reduce the maximum possible block size for data-heavy transactions\n+- Create additional headroom for potential block gas limit increases\n+- Maintain the same exemption for transactions with significant EVM computation\n+\n+## Specification\n+\n+| Parameter | Value |\n+| ---------------------------- | ----- |\n+| `STANDARD_TOKEN_COST` | `4` |\n+| `TOTAL_COST_FLOOR_PER_TOKEN` | `15` |\n+\n+Let `tokens_in_calldata = zero_bytes_in_calldata + nonzero_bytes_in_calldata * 4`.\n+\n+Let `isContractCreation` be a boolean indicating the respective event.\n+\n+Let `execution_gas_used` be the gas used for EVM execution with the gas refund subtracted.\n+\n+Let `INITCODE_WORD_COST` be 2 as defined in [EIP-3860](./eip-3860.md).\n+\n+The formula for determining the gas used per transaction changes from [EIP-7623](./eip-7623.md)'s implementation to:\n+\n+```python\n+tx.gasUsed = (\n+ 21000\n+ +\n+ max(\n+ STANDARD_TOKEN_COST * tokens_in_calldata\n+ + execution_gas_used\n+ + isContractCreation * (32000 + INITCODE_WORD_COST * words(calldata)),\n+ TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata\n+ )\n+)\n+```\n+\n+Any transaction with a gas limit below `21000 + TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata` or below its intrinsic gas cost (take the maximum of these two calculations) is considered invalid. This limitation exists because transactions must cover the floor price of their calldata without relying on the execution of the transaction. There are valid cases where `gasUsed` will be below this floor price, but the floor price needs to be reserved in the transaction gas limit.\n+\n+## Rationale\n+\n+With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 0.72 MB (`30_000_000/40`). This EIP further reduces this to approximately 0.47 MB (`30_000_000/60`) for zero bytes and maintains proportional costs for non-zero bytes.\n+\n+By increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:\n+\n+- **Enhanced block size reduction**: Maximum data-heavy payload size drops to ~0.47 MB\n+- **Maintained user experience**: Regular users engaging in DeFi, token transfers, and other EVM-heavy operations remain unaffected\n+- **Better blob incentivization**: Higher calldata costs further encourage migration to blob usage for data availability\n+\n+The floor cost mechanism ensures that transactions involving significant EVM computation continue to pay the standard 4/16 gas per byte for calldata, preserving the user experience for regular Ethereum operations.\n+\n+## Backwards Compatibility\n+\n+This is a backwards incompatible gas repricing that requires a scheduled network upgrade.\n+\n+Wallet developers and node operators MUST update gas estimation handling to accommodate the new calldata cost rules. Specifically:\n+\n+1. **Wallets**: Wallets using `eth_estimateGas` MUST be updated to ensure that they correctly account for the updated `TOTAL_COST_FLOOR_PER_TOKEN` parameter of 15. Failure to do so could result in underestimating gas, leading to failed transactions.\n+\n+2. **Node Software**: RPC methods such as `eth_estimateGas` MUST incorporate the updated formula for gas calculation with the new floor cost values.\n+\n+Users can maintain their usual workflows without modification, as wallet and RPC updates will handle these changes.\n+\n+## Test Cases\n+\n+Testing for this EIP should verify the correct application of the new calldata cost floor of 15/60 gas per zero/non-zero byte:\n+\n+1. **Data-heavy transactions**: Verify transactions with minimal EVM execution pay the floor cost of 15 gas per calldata token\n+2. **EVM-heavy transactions**: Confirm transactions with significant computation continue using standard 4/16 gas per byte\n+3. **Edge cases**: Test transactions at the boundary where execution gas equals or exceeds the floor cost\n+4. **Gas estimation**: Validate that `eth_estimateGas` correctly accounts for the new `TOTAL_COST_FLOOR_PER_TOKEN` value\n+5. **Invalid transactions**: Ensure transactions with insufficient gas limits are properly rejected\n+\n+## Security Considerations\n+\n+As the maximum possible block size is further reduced compared to [EIP-7623](./eip-7623.md), no additional security concerns are introduced beyond those already addressed in the original proposal.\n+\n+The same transaction bundling considerations from [EIP-7623](./eip-7623.md) apply:\n+\n+1. Transaction bundling was already possible and remains so\n+2. Bundling does not compromise the block size reduction objectives\n+3. Practical limitations (trust, coordination) continue to limit widespread bundling\n+\n+The increased floor cost strengthens the incentive structure for appropriate data availability method selection without introducing new attack vectors.\n+\n+## Copyright\n+\n+Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 0, "subject": "Add EIP: Further increase calldata cost", "tokens": [ "STANDARD_TOKEN_COST", "4", "TOTAL_COST_FLOOR_PER_TOKEN", "15", "tokens_in_calldata = zero_bytes_in_calldata + nonzero_bytes_in_calldata * 4", "isContractCreation", "execution_gas_used", "INITCODE_WORD_COST", "python\ntx.gasUsed = (\n 21000\n +\n max(\n STANDARD_TOKEN_COST * tokens_in_calldata\n + execution_gas_used\n + isContractCreation * (32000 + INITCODE_WORD_COST * words(calldata)),\n TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata\n )\n)\n", "\n\nAny transaction with a gas limit below ", " or below its intrinsic gas cost (take the maximum of these two calculations) is considered invalid. This limitation exists because transactions must cover the floor price of their calldata without relying on the execution of the transaction. There are valid cases where ", " will be below this floor price, but the floor price needs to be reserved in the transaction gas limit.\n\n## Rationale\n\nWith [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 0.72 MB (", "). This EIP further reduces this to approximately 0.47 MB (", ") for zero bytes and maintains proportional costs for non-zero bytes.\n\nBy increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:\n\n- **Enhanced block size reduction**: Maximum data-heavy payload size drops to ~0.47 MB\n- **Maintained user experience**: Regular users engaging in DeFi, token transfers, and other EVM-heavy operations remain unaffected\n- **Better blob incentivization**: Higher calldata costs further encourage migration to blob usage for data availability\n\nThe floor cost mechanism ensures that transactions involving significant EVM computation continue to pay the standard 4/16 gas per byte for calldata, preserving the user experience for regular Ethereum operations.\n\n## Backwards Compatibility\n\nThis is a backwards incompatible gas repricing that requires a scheduled network upgrade.\n\nWallet developers and node operators MUST update gas estimation handling to accommodate the new calldata cost rules. Specifically:\n\n1. **Wallets**: Wallets using ", " MUST be updated to ensure that they correctly account for the updated ", " parameter of 15. Failure to do so could result in underestimating gas, leading to failed transactions.\n\n2. **Node Software**: RPC methods such as ", " MUST incorporate the updated formula for gas calculation with the new floor cost values.\n\nUsers can maintain their usual workflows without modification, as wallet and RPC updates will handle these changes.\n\n## Test Cases\n\nTesting for this EIP should verify the correct application of the new calldata cost floor of 15/60 gas per zero/non-zero byte:\n\n1. **Data-heavy transactions**: Verify transactions with minimal EVM execution pay the floor cost of 15 gas per calldata token\n2. **EVM-heavy transactions**: Confirm transactions with significant computation continue using standard 4/16 gas per byte\n3. **Edge cases**: Test transactions at the boundary where execution gas equals or exceeds the floor cost\n4. **Gas estimation**: Validate that ", " correctly accounts for the new " ], "window": [] }, { "blob": "4d5904c24634313051cef7fda1f03c2030be07b6", "candidates": [], "commit": "c582d21e5075522a6d5852f53156045f1c77f86d", "constants": [], "date": "2025-09-03T08:10:21Z", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex ce88f413..4d5904c2 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7976\n-title: Further increase calldata cost\n-description: Further increase calldata cost to 15/60 gas per byte to reduce maximum block size\n+title: Increase calldata floor cost\n+description: Increase the calldata floor cost to 15/60 gas per byte to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n status: Draft\n@@ -59,11 +59,11 @@ Any transaction with a gas limit below `21000 + TOTAL_COST_FLOOR_PER_TOKEN * tok\n \n ## Rationale\n \n-With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 0.72 MB (`30_000_000/40`). This EIP further reduces this to approximately 0.47 MB (`30_000_000/60`) for zero bytes and maintains proportional costs for non-zero bytes.\n+With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 1.07 MB (`45s_000_000/40`). This EIP further reduces this to approximately 0.72 MB (`45_000_000/60`) for non zero bytes and maintains proportional costs for non-zero bytes.\n \n By increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:\n \n-- **Enhanced block size reduction**: Maximum data-heavy payload size drops to ~0.47 MB\n+- **Enhanced block size reduction**: Maximum data-heavy payload size drops by ~33%\n - **Maintained user experience**: Regular users engaging in DeFi, token transfers, and other EVM-heavy operations remain unaffected\n - **Better blob incentivization**: Higher calldata costs further encourage migration to blob usage for data availability\n \n", "order": 1, "subject": "Update EIP-7976: Update gas limit assumptions to 45M", "tokens": [ "45s_000_000/40", "45_000_000/60" ], "window": [] }, { "blob": "68011764990183640e14c5a81813136b1e8f9ec5", "candidates": [], "commit": "5aea12c20ee27b3d85f7c2ec9e6a09e451fd81f0", "constants": [], "date": "2025-09-04T12:47:19Z", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 4d5904c2..68011764 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -1,6 +1,6 @@\n ---\n eip: 7976\n-title: Increase calldata floor cost\n+title: Increase Calldata Floor Cost\n description: Increase the calldata floor cost to 15/60 gas per byte to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n@@ -13,7 +13,7 @@ requires: 7623\n \n ## Abstract\n \n-Following the implementation of [EIP-7623](./eip-7623.md), this EIP proposes a further adjustment to calldata pricing by raising the floor cost from 10/40 to 15/60 gas per zero/non-zero byte. This change aims to provide additional reduction in maximum block size and variance while maintaining compatibility with regular user transactions that involve significant EVM computation.\n+This EIP proposes an adjustment to calldata pricing by raising the floor cost from 10/40 to 15/60 gas per zero/non-zero calldata byte. This reduces the worst-case block size by ~33% with minimal impact.\n \n ## Motivation\n \n@@ -24,6 +24,7 @@ By increasing the floor cost to 15/60 gas per byte, this proposal aims to:\n - Further reduce the maximum possible block size for data-heavy transactions\n - Create additional headroom for potential block gas limit increases\n - Maintain the same exemption for transactions with significant EVM computation\n+- Have minimal impact on users\n \n ## Specification\n \n@@ -63,12 +64,14 @@ With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10\n \n By increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:\n \n-- **Enhanced block size reduction**: Maximum data-heavy payload size drops by ~33%\n+- **Enhanced block size reduction**: Maximum data-heavy payload size drops by ~33%.\n - **Maintained user experience**: Regular users engaging in DeFi, token transfers, and other EVM-heavy operations remain unaffected\n - **Better blob incentivization**: Higher calldata costs further encourage migration to blob usage for data availability\n \n The floor cost mechanism ensures that transactions involving significant EVM computation continue to pay the standard 4/16 gas per byte for calldata, preserving the user experience for regular Ethereum operations.\n \n+Analyzing the block range 20644414 - 23272414 (Sept. 2024 - Sept. 2025), 1.5% of all transactions would have been affected.\n+\n ## Backwards Compatibility\n \n This is a backwards incompatible gas repricing that requires a scheduled network upgrade.\n", "order": 2, "subject": "Update EIP-7976: improve wording", "tokens": [], "window": [] }, { "blob": "7310f62b56234d3d2e7715cdd9d10ea173116d65", "candidates": [], "commit": "173fe4aade1b70114347b6566bb96ed17959c696", "constants": [], "date": "2025-11-04T14:01:49Z", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 68011764..7310f62b 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -72,6 +72,8 @@ The floor cost mechanism ensures that transactions involving significant EVM com\n \n Analyzing the block range 20644414 - 23272414 (Sept. 2024 - Sept. 2025), 1.5% of all transactions would have been affected.\n \n+An empirical analysis summarizing the impact of this EIP can be found in [this](../assets/eip-7976/eip7976_empirical_analysis.md) report.\n+\n ## Backwards Compatibility\n \n This is a backwards incompatible gas repricing that requires a scheduled network upgrade.\n", "order": 3, "subject": "Update EIP-7976: Add empirical report with impact analysis", "tokens": [], "window": [] }, { "blob": "57af840f568c5743b5bdb4bff72ff29145efe8a5", "candidates": [], "commit": "137a1323c80fd69f87b39183e13efea2f9904ecd", "constants": [ { "after": [ "16" ], "before": [ "15" ], "name": "TOTAL_COST_FLOOR_PER_TOKEN" } ], "date": "2026-02-15T22:52:28+08:00", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 7310f62b..57af840f 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7976\n title: Increase Calldata Floor Cost\n-description: Increase the calldata floor cost to 15/60 gas per byte to reduce maximum block size\n+description: Increase the calldata floor cost to 64/64 gas per byte to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n status: Draft\n@@ -13,13 +13,13 @@ requires: 7623\n \n ## Abstract\n \n-This EIP proposes an adjustment to calldata pricing by raising the floor cost from 10/40 to 15/60 gas per zero/non-zero calldata byte. This reduces the worst-case block size by ~33% with minimal impact.\n+This EIP proposes an adjustment to calldata pricing by raising the floor cost from 10/40 to 64/64 gas per calldata byte. This reduces the worst-case block size by ~37% with minimal impact.\n \n ## Motivation\n \n-While [EIP-7623](./eip-7623.md) successfully reduced the maximum possible block size by introducing a floor cost of 10/40 gas per byte for data-heavy transactions, continued increases in gas limit demands further optimization. The current floor cost still permits relatively large data-heavy payloads that contribute to block size variance.\n+While [EIP-7623](./eip-7623.md) successfully reduced the maximum possible block size by introducing a floor cost of 10/40 gas per byte for data-heavy transactions, continued increases in gas limit demands further optimization. The current floor cost still permits relatively large data-heavy payloads that contribute to block size variance. With 64/64 pricing, a 10 MiB uncompressed execution payload would require ~671M gas instead of ~105M gas under 10/40 pricing, providing significant headroom for gas limit increases.\n \n-By increasing the floor cost to 15/60 gas per byte, this proposal aims to:\n+By increasing the floor cost to 64/64 gas per byte, this proposal aims to:\n \n - Further reduce the maximum possible block size for data-heavy transactions\n - Create additional headroom for potential block gas limit increases\n@@ -31,10 +31,12 @@ By increasing the floor cost to 15/60 gas per byte, this proposal aims to:\n | Parameter | Value |\n | ---------------------------- | ----- |\n | `STANDARD_TOKEN_COST` | `4` |\n-| `TOTAL_COST_FLOOR_PER_TOKEN` | `15` |\n+| `TOTAL_COST_FLOOR_PER_TOKEN` | `16` |\n \n Let `tokens_in_calldata = zero_bytes_in_calldata + nonzero_bytes_in_calldata * 4`.\n \n+Let `floor_tokens_in_calldata = (zero_bytes_in_calldata + nonzero_bytes_in_calldata) * 4`.\n+\n Let `isContractCreation` be a boolean indicating the respective event.\n \n Let `execution_gas_used` be the gas used for EVM execution with the gas refund subtracted.\n@@ -51,20 +53,20 @@ tx.gasUsed = (\n STANDARD_TOKEN_COST * tokens_in_calldata\n + execution_gas_used\n + isContractCreation * (32000 + INITCODE_WORD_COST * words(calldata)),\n- TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata\n+ TOTAL_COST_FLOOR_PER_TOKEN * floor_tokens_in_calldata\n )\n )\n ```\n \n-Any transaction with a gas limit below `21000 + TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata` or below its intrinsic gas cost (take the maximum of these two calculations) is considered invalid. This limitation exists because transactions must cover the floor price of their calldata without relying on the execution of the transaction. There are valid cases where `gasUsed` will be below this floor price, but the floor price needs to be reserved in the transaction gas limit.\n+Any transaction with a gas limit below `21000 + TOTAL_COST_FLOOR_PER_TOKEN * floor_tokens_in_calldata` or below its intrinsic gas cost (take the maximum of these two calculations) is considered invalid. This limitation exists because transactions must cover the floor price of their calldata without relying on the execution of the transaction. There are valid cases where `gasUsed` will be below this floor price, but the floor price needs to be reserved in the transaction gas limit.\n \n ## Rationale\n \n-With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 1.07 MB (`45s_000_000/40`). This EIP further reduces this to approximately 0.72 MB (`45_000_000/60`) for non zero bytes and maintains proportional costs for non-zero bytes.\n+With [EIP-7623](./eip-7623.md)'s implementation, data-heavy transactions cost 10/40 gas per zero/non-zero byte, reducing the maximum possible EL payload size to approximately 1.07 MB (`45_000_000/40`). This EIP further reduces this to approximately 0.67 MB (`45_000_000/64`).\n \n-By increasing calldata costs from 10/40 to 15/60 gas per byte for data-heavy transactions, this EIP provides:\n+By increasing calldata costs from 10/40 to 64/64 gas per byte for data-heavy transactions, this EIP provides:\n \n-- **Enhanced block size reduction**: Maximum data-heavy payload size drops by ~33%.\n+- **Enhanced block size reduction**: Maximum data-heavy payload size drops by ~37%.\n - **Maintained user experience**: Regular users engaging in DeFi, token transfers, and other EVM-heavy operations remain unaffected\n - **Better blob incentivization**: Higher calldata costs further encourage migration to blob usage for data availability\n \n@@ -80,7 +82,7 @@ This is a backwards incompatible gas repricing that requires a scheduled network\n \n Wallet developers and node operators MUST update gas estimation handling to accommodate the new calldata cost rules. Specifically:\n \n-1. **Wallets**: Wallets using `eth_estimateGas` MUST be updated to ensure that they correctly account for the updated `TOTAL_COST_FLOOR_PER_TOKEN` parameter of 15. Failure to do so could result in underestimating gas, leading to failed transactions.\n+1. **Wallets**: Wallets using `eth_estimateGas` MUST be updated to ensure that they correctly account for the updated `TOTAL_COST_FLOOR_PER_TOKEN` parameter of 16. Failure to do so could result in underestimating gas, leading to failed transactions.\n \n 2. **Node Software**: RPC methods such as `eth_estimateGas` MUST incorporate the updated formula for gas calculation with the new floor cost values.\n \n@@ -88,9 +90,9 @@ Users can maintain their usual workflows without modification, as wallet and RPC\n \n ## Test Cases\n \n-Testing for this EIP should verify the correct application of the new calldata cost floor of 15/60 gas per zero/non-zero byte:\n+Testing for this EIP should verify the correct application of the new calldata cost floor of 64/64 gas per byte:\n \n-1. **Data-heavy transactions**: Verify transactions with minimal EVM execution pay the floor cost of 15 gas per calldata token\n+1. **Data-heavy transactions**: Verify transactions with minimal EVM execution pay the floor cost of 64 gas per calldata byte\n 2. **EVM-heavy transactions**: Confirm transactions with significant computation continue using standard 4/16 gas per byte\n 3. **Edge cases**: Test transactions at the boundary where execution gas equals or exceeds the floor cost\n 4. **Gas estimation**: Validate that `eth_estimateGas` correctly accounts for the new `TOTAL_COST_FLOOR_PER_TOKEN` value\n", "order": 4, "subject": "Update EIP-7976: Increase floor data cost to 64/64", "tokens": [ "TOTAL_COST_FLOOR_PER_TOKEN", "16", "floor_tokens_in_calldata = (zero_bytes_in_calldata + nonzero_bytes_in_calldata) * 4", "21000 + TOTAL_COST_FLOOR_PER_TOKEN * floor_tokens_in_calldata", "gasUsed", "45_000_000/40", "45_000_000/64", "eth_estimateGas" ], "window": [] }, { "blob": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "candidates": [], "commit": "15e4f96ccd6a2e9d5dd307a52be1d4e60ec6eed1", "constants": [], "date": "2026-04-15T13:59:42Z", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 57af840f..83d473b0 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -37,6 +37,8 @@ Let `tokens_in_calldata = zero_bytes_in_calldata + nonzero_bytes_in_calldata * 4\n \n Let `floor_tokens_in_calldata = (zero_bytes_in_calldata + nonzero_bytes_in_calldata) * 4`.\n \n+Equivalently, the floor cost is `64` gas per calldata byte (both zero and non-zero), since `TOTAL_COST_FLOOR_PER_TOKEN * 4 = 64`. The token abstraction is retained only for consistency with [EIP-7623](./eip-7623.md).\n+\n Let `isContractCreation` be a boolean indicating the respective event.\n \n Let `execution_gas_used` be the gas used for EVM execution with the gas refund subtracted.\n", "order": 5, "subject": "Update EIP-7976: clarify token abstraction", "tokens": [ "64", "TOTAL_COST_FLOOR_PER_TOKEN * 4 = 64" ], "window": [] }, { "blob": "35cdae2ce171eb734dba6ccc8dfe5a760e1bcd86", "candidates": [], "commit": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "constants": [], "date": "2026-07-08T00:49:17+08:00", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 83d473b0..35cdae2c 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -4,7 +4,7 @@ title: Increase Calldata Floor Cost\n description: Increase the calldata floor cost to 64/64 gas per byte to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n-status: Draft\n+status: Review\n type: Standards Track\n category: Core\n created: 2025-06-18\n", "order": 6, "subject": "Update EIP-7976: Move to Review", "tokens": [], "window": [ { "author_date": "2026-07-14T08:29:01+02:00", "commit": "31f948fc04693e7d11d93eacf5236d1b32ae28ba", "subject": "docs(tests): remove legacy `abstract:` prefix from test module docstrings (#3162)" }, { "author_date": "2026-07-13T13:36:50+02:00", "commit": "77e95ef10593cbeabcdefef41c130abee8760f91", "subject": "feat(spec-specs,test-tests): update the EIP-2780 implementation (#3126)" }, { "author_date": "2026-07-08T19:36:30+01:00", "commit": "695e5ef1540d63c8d8c24aa1687911811c66a90b", "subject": "fix(spec-specs, tests): anchor calldata floor on decomposed EIP-2780 base (#3120)" }, { "author_date": "2026-07-03T00:25:05+02:00", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)" }, { "author_date": "2026-06-30T12:49:45-06:00", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)" } ] }, { "blob": "15abf8001a4296864141700add3bf66c9f1b8721", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7976.md b/EIPS/eip-7976.md\nindex 35cdae2c..15abf800 100644\n--- a/EIPS/eip-7976.md\n+++ b/EIPS/eip-7976.md\n@@ -4,7 +4,8 @@ title: Increase Calldata Floor Cost\n description: Increase the calldata floor cost to 64/64 gas per byte to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7976-further-increase-calldata-cost/24597\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-06-18\n", "order": 7, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" } ] } ], "eip": "7976", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "15abf8001a4296864141700add3bf66c9f1b8721", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-7976.md", "pending": [], "pin": { "ambiguous": false, "blob": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "commit": null, "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7976_increase_calldata_floor_cost/spec.py" }, "pin_history": [ { "blob": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "commit": "852715c86bd553bfcce408e8f42f88e6d9307095", "date": "2026-05-19T12:17:59+02:00", "files": [ "__init__.py", "conftest.py", "helpers.py", "test_additional_coverage.py", "test_eip_mainnet.py", "test_execution_gas.py", "test_refunds.py", "test_transaction_validity.py" ], "pr": 2861, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): Add EIP-7976 Increase Calldata Floor Cost (#2861)", "superseded": false }, { "blob": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "commit": "178d9f9257fbf7ec8c9b55c3e5da3c6f20c583db", "date": "2026-07-29T12:04:09+02:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_additional_coverage.py", "test_execution_gas.py", "test_fork_transition.py" ], "pr": 3222, "release": "tests@v20.0.2", "subject": "chore(tests): improve EIP-7976 coverage, checklist, and ref-spec pin (#3222)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "tests@v20.0.1": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "tests@v20.0.2": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "tests@v21.0.0": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "tests@v21.0.1": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "tests@v21.0.2": "c998ef94eb16a6af8a9b8e2084f947b17ea14865" }, "revisions": [ { "blob": "ce88f4131e93ffe6a898cac714b8a5cb6ce65070", "commit": "337df2cb4657de5beba79671a57dbdd0c71e5203", "date": "2025-06-25T00:07:49+08:00", "subject": "Add EIP: Further increase calldata cost" }, { "blob": "4d5904c24634313051cef7fda1f03c2030be07b6", "commit": "c582d21e5075522a6d5852f53156045f1c77f86d", "date": "2025-09-03T08:10:21Z", "subject": "Update EIP-7976: Update gas limit assumptions to 45M" }, { "blob": "68011764990183640e14c5a81813136b1e8f9ec5", "commit": "5aea12c20ee27b3d85f7c2ec9e6a09e451fd81f0", "date": "2025-09-04T12:47:19Z", "subject": "Update EIP-7976: improve wording" }, { "blob": "7310f62b56234d3d2e7715cdd9d10ea173116d65", "commit": "173fe4aade1b70114347b6566bb96ed17959c696", "date": "2025-11-04T14:01:49Z", "subject": "Update EIP-7976: Add empirical report with impact analysis" }, { "blob": "57af840f568c5743b5bdb4bff72ff29145efe8a5", "commit": "137a1323c80fd69f87b39183e13efea2f9904ecd", "date": "2026-02-15T22:52:28+08:00", "subject": "Update EIP-7976: Increase floor data cost to 64/64" }, { "blob": "83d473b0504d316a06ce58ae581e7f03b5d54fe1", "commit": "15e4f96ccd6a2e9d5dd307a52be1d4e60ec6eed1", "date": "2026-04-15T13:59:42Z", "subject": "Update EIP-7976: clarify token abstraction" }, { "blob": "35cdae2ce171eb734dba6ccc8dfe5a760e1bcd86", "commit": "c998ef94eb16a6af8a9b8e2084f947b17ea14865", "date": "2026-07-08T00:49:17+08:00", "subject": "Update EIP-7976: Move to Review" }, { "blob": "15abf8001a4296864141700add3bf66c9f1b8721", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7976_increase_calldata_floor_cost", "title": "Increase Calldata Floor Cost" }, "7981": { "category": "Core", "deltas": [ { "blob": "aaf7a767fe5ccbd6699099ff39fcbda1195b48e7", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7981.md b/EIPS/eip-7981.md\nindex 8da3cf91..aaf7a767 100644\n--- a/EIPS/eip-7981.md\n+++ b/EIPS/eip-7981.md\n@@ -4,7 +4,8 @@ title: Increase Access List Cost\n description: Price access lists for data to reduce maximum block size\n author: Toni Wahrst\u00e4tter (@nerolation)\n discussions-to: https://ethereum-magicians.org/t/eip-7981-increase-access-list-cost/24680\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2024-12-27\n", "order": 12, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" } ] } ], "eip": "7981", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "aaf7a767fe5ccbd6699099ff39fcbda1195b48e7", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-7981.md", "pending": [], "pin": { "ambiguous": false, "blob": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257", "commit": "747b78c0edfdf04e9e2933ad1bec592d3318e1d9", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7981_increase_access_list_cost/spec.py" }, "pin_history": [ { "blob": "954963fb6315dffadd9c40d48e4dae313e20cff5", "commit": "db42a899a55dc7de9fd5a9000847b12b5ff4f9e5", "date": "2026-05-19T07:51:41-06:00", "files": [ "__init__.py", "conftest.py", "helpers.py", "test_access_list_cost.py", "test_eip_mainnet.py", "test_transaction_validity.py" ], "pr": 2877, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): Add EIP-7981 Increase Access List Cost (#2877)", "superseded": false }, { "blob": "954963fb6315dffadd9c40d48e4dae313e20cff5", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "747b78c0edfdf04e9e2933ad1bec592d3318e1d9", "commit": "e0ce65c82db289e07f01378491c1150fffb1edb4", "date": "2026-07-28T17:39:01+02:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_access_list_cost.py", "test_eip_mainnet.py", "test_floor_boundary_exact_balance.py", "test_fork_transition.py", "test_transaction_validity.py" ], "pr": 3223, "release": "tests@v20.0.2", "subject": "chore(tests): improve EIP-7981 coverage, checklist, and ref-spec pin (#3223)", "superseded": false }, { "blob": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257", "commit": "127be12aa488fc6ac7101ff9f2daeaa7f9dc11c8", "date": "2026-09-21T08:16:59+02:00", "files": [ "conftest.py", "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_access_list_cost.py", "test_execution_gas.py", "test_floor_boundary_exact_balance.py", "test_fork_transition.py", "test_transaction_validity.py" ], "pr": 3537, "release": "tests@v21.0.0", "subject": "feat(tests): complete EIP-7981 coverage and testing checklist (#3537)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "954963fb6315dffadd9c40d48e4dae313e20cff5", "tests@v20.0.1": "954963fb6315dffadd9c40d48e4dae313e20cff5", "tests@v20.0.2": "747b78c0edfdf04e9e2933ad1bec592d3318e1d9", "tests@v21.0.0": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257", "tests@v21.0.1": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257", "tests@v21.0.2": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257" }, "revisions": [ { "blob": "1ede555736f7407e2f96e719d41f03e53983d298", "commit": "2fbffe5f4d590876fba00489a597e2a0ef675a5b", "date": "2025-08-21T14:36:01Z", "subject": "Update EIP-7981: increase the data cost for ALs" }, { "blob": "7947d1cc630194a6fbcae98344cc8650c4110255", "commit": "acc2533ec925d0659d2001d64edc3e6466e62400", "date": "2025-08-24T10:46:57Z", "subject": "Update EIP-7981: Add EELS spec implementation" }, { "blob": "f6215747399f93b1d5e47c1925841d82a50fc21f", "commit": "5aea12c20ee27b3d85f7c2ec9e6a09e451fd81f0", "date": "2025-09-04T12:47:19Z", "subject": "Update EIP-7976: improve wording" }, { "blob": "574043df793a3bb59f266fed5edcf0311c325358", "commit": "0fdeb4ce5d592907b12532dc9aa0da62899d786d", "date": "2026-01-20T11:36:27Z", "subject": "Update EIP-7981: use 7976 reference, update eip name" }, { "blob": "235b789d502b1d5b0f8023554a2f415406de81d1", "commit": "1356811a1522f1be9df1a2a600f2ac7a750cf7ba", "date": "2026-01-21T17:40:01Z", "subject": "Update EIP-7981: add access list cost to eip-7623 floor formula" }, { "blob": "f0f874b8ed796a4e172fcaf2339c3bfaade92860", "commit": "87def23e7d59b4c01a28744a23c42edde0c97938", "date": "2026-03-27T20:15:07+08:00", "subject": "Update EIP-7981: Align with EIP-7976 updates" }, { "blob": "eb801490ef06a99d97afb2d70cfba0805d512487", "commit": "15e4f96ccd6a2e9d5dd307a52be1d4e60ec6eed1", "date": "2026-04-15T13:59:42Z", "subject": "Update EIP-7976: clarify token abstraction" }, { "blob": "44e336dde5699c27f7184e5579dd413fa9a8eb9c", "commit": "706296e06bf9b700bf046cfaa80bd5c3ebbc89c3", "date": "2026-04-23T11:15:54Z", "subject": "Update EIP-7981: Simplify pseudocode in reference implementation" }, { "blob": "83fdb046649608201de6eb9e028f35a2a1d15681", "commit": "71d3353c3f6776485539fe2ec526b7cc80780bfc", "date": "2026-05-05T17:16:00+08:00", "subject": "Update EIP-7981: Simplify spec" }, { "blob": "954963fb6315dffadd9c40d48e4dae313e20cff5", "commit": "ff38d6d99bc34721d33b77d79dd3ab4b86079cb7", "date": "2026-05-07T09:28:59Z", "subject": "Update EIP-7981: Update reference implementation" }, { "blob": "8da3cf91d4bc688c43cc25f2f03b7c86c7bbc257", "commit": "747b78c0edfdf04e9e2933ad1bec592d3318e1d9", "date": "2026-07-07T17:08:18Z", "subject": "Update EIP-7981: Move to Review" }, { "blob": "aaf7a767fe5ccbd6699099ff39fcbda1195b48e7", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7981_increase_access_list_cost", "title": "Increase Access List Cost" }, "7997": { "category": "Core", "deltas": [ { "blob": "9a4600a229edc4d1fafcc42c3a935cdc1474b72c", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-7997.md b/EIPS/eip-7997.md\nindex 192193fa..9a4600a2 100644\n--- a/EIPS/eip-7997.md\n+++ b/EIPS/eip-7997.md\n@@ -4,7 +4,8 @@ title: Deterministic Factory Contract\n description: A minimal `CREATE2` factory shared by EVM chains.\n author: Francisco Giordano (@frangio), Toni Wahrst\u00e4tter (@nerolation), Nick Johnson (@Arachnid), Jochem Brouwer (@jochem-brouwer)\n discussions-to: https://ethereum-magicians.org/t/eip-7997-deterministic-factory-predeploy/24998\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-08-03\n", "order": 13, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" } ] }, { "blob": "96a932023940e8b5d27539b51499592c5b3cb841", "candidates": [ { "path": "tests/amsterdam/eip7997_deterministic_factory_contract/test_fork_transition.py", "score": 1, "test": "test_fork_transition.py::test_factory_deploys_across_transition", "tokens": [ "CREATE2" ] }, { "path": "tests/amsterdam/eip7997_deterministic_factory_contract/test_keyless_deployment.py", "score": 1, "test": "test_keyless_deployment.py::test_keyless_deployment_before_fork", "tokens": [ "CREATE2" ] } ], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-7997.md b/EIPS/eip-7997.md\nindex 9a4600a2..96a93202 100644\n--- a/EIPS/eip-7997.md\n+++ b/EIPS/eip-7997.md\n@@ -1,7 +1,7 @@\n ---\n eip: 7997\n title: Deterministic Factory Contract\n-description: A minimal `CREATE2` factory shared by EVM chains.\n+description: A minimal `CREATE2` factory shared by EVM chains\n author: Francisco Giordano (@frangio), Toni Wahrst\u00e4tter (@nerolation), Nick Johnson (@Arachnid), Jochem Brouwer (@jochem-brouwer)\n discussions-to: https://ethereum-magicians.org/t/eip-7997-deterministic-factory-predeploy/24998\n status: Last Call\n", "order": 14, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [ "CREATE2" ], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" } ] } ], "eip": "7997", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "96a932023940e8b5d27539b51499592c5b3cb841", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-7997.md", "pending": [], "pin": { "ambiguous": false, "blob": "192193facea01dfb8b87ad59d67e8385bf9304b1", "commit": "e239a2e8a2a7f4100f5c6605805ae0ca8624b5b9", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip7997_deterministic_factory_contract/spec.py" }, "pin_history": [ { "blob": "192193facea01dfb8b87ad59d67e8385bf9304b1", "commit": "d4c28bfe7aa35e91ee0cd50febd316eb90d92a37", "date": "2026-09-18T10:31:45+02:00", "files": [ "__init__.py", "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_eip_mainnet.py", "test_factory.py", "test_fork_transition.py", "test_keyless_deployment.py" ], "pr": 3614, "release": "tests@v21.0.0", "subject": "chore(tests): expand and harden EIP-7997 factory coverage (#3614)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "a0a7f5adb491fc6ad4b008f307899c30f348db22", "tests@v20.0.1": "a0a7f5adb491fc6ad4b008f307899c30f348db22", "tests@v20.0.2": "a0a7f5adb491fc6ad4b008f307899c30f348db22", "tests@v21.0.0": "192193facea01dfb8b87ad59d67e8385bf9304b1", "tests@v21.0.1": "192193facea01dfb8b87ad59d67e8385bf9304b1", "tests@v21.0.2": "192193facea01dfb8b87ad59d67e8385bf9304b1" }, "revisions": [ { "blob": "c6dedb12313dca55ec5a4830ba28762234ccfa46", "commit": "a9ca3432e0541a23f17d18c8c22cdaa2dabbb014", "date": "2025-10-28T02:03:10+08:00", "subject": "Update EIP-7997: replace 'nonce' with 'salt' in Input validation" }, { "blob": "3ac0f2270c8efcc662053137642a298e2026a7bc", "commit": "ec05b85e530a7ea97ea52a1f0312d88eb0eb1be2", "date": "2025-11-05T22:05:32Z", "subject": "Update EIP-7997: Update address and add backward compat section" }, { "blob": "72b02fe7076bc4f543824cc7dc989450a4623c82", "commit": "a0a7f5adb491fc6ad4b008f307899c30f348db22", "date": "2026-06-09T20:01:38Z", "subject": "Update EIP-7997: Switch to Arachnid factory" }, { "blob": "cca5049a074f62d88253ee6b2b0078e7ca1acfbf", "commit": "0b59e164e21764ffdc5bca33ee0cf191e73b6002", "date": "2026-07-02T13:27:44+08:00", "subject": "Update EIP-7997: remove specification of nonce" }, { "blob": "bcf127812e87a08099103d03816c0eb9d8a793fd", "commit": "f63ba053296dbb684aafdcfb9e4be7c972e88f5d", "date": "2026-07-02T06:42:54Z", "subject": "Update EIP-7997: clarify nonce for irregular state transition" }, { "blob": "3a3fd09695a5336833f8db274cac1eda18d5f09b", "commit": "f0015e02590db2a44cc0597e37075c5a2c3cf61d", "date": "2026-07-02T13:09:57Z", "subject": "Update EIP-7997: Add nonzero nonce to summary requirements" }, { "blob": "79fcd2f021a16ad4de636ce3c3f5a69eb69c2455", "commit": "40ff72bf386aa554ebaeca9c8ae62d8d8762af83", "date": "2026-07-04T18:24:33Z", "subject": "Update EIP-7997: Replace Yul with mnemonics" }, { "blob": "f667c5fcbe41c0aea96e51fae67e7e886504a74a", "commit": "d490ca552a36b103426fac04fd0bb4eab82e6165", "date": "2026-07-05T07:39:04+08:00", "subject": "Update EIP-7997: Add EAS-like bytecode + add required EIP" }, { "blob": "b225480058c7cae400a1bbe7f722746d7be6b410", "commit": "e960dd69bd7b6d81647db09bdfd985a3706bc3f9", "date": "2026-07-08T00:42:51+08:00", "subject": "Update EIP-7997: Move to Review" }, { "blob": "192193facea01dfb8b87ad59d67e8385bf9304b1", "commit": "e239a2e8a2a7f4100f5c6605805ae0ca8624b5b9", "date": "2026-07-17T13:03:30Z", "subject": "Update EIP-7997: Remove irregular state transition and state lookup" }, { "blob": "9a4600a229edc4d1fafcc42c3a935cdc1474b72c", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "96a932023940e8b5d27539b51499592c5b3cb841", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip7997_deterministic_factory_contract", "title": "Deterministic Factory Contract" }, "8024": { "category": "Core", "deltas": [ { "blob": "b519c1ce6054ddfdbcb580af246786b466667522", "candidates": [], "commit": "28578c7ba0e3c7831a91a9784e85ce9b400c29a8", "constants": [], "date": "2025-09-18T01:24:56+08:00", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nnew file mode 100644\nindex 00000000..b519c1ce\n--- /dev/null\n+++ b/EIPS/eip-8024.md\n@@ -0,0 +1,183 @@\n+---\n+eip: 8024\n+title: Backward compatible SWAPN, DUPN, EXCHANGE\n+description: Introduce additional instructions for manipulating the stack which allow accessing the stack at higher depths\n+author: Francisco Giordano (@frangio), Charles Cooper (@charles-cooper), Alex Beregszaszi (@axic)\n+discussions-to: https://ethereum-magicians.org/t/eip-8024-backward-compatible-swapn-dupn-exchange/25486\n+status: Review\n+type: Standards Track\n+category: Core\n+created: 2025-08-16\n+---\n+\n+## Abstract\n+\n+Currently, `SWAP*` and `DUP*` instructions are limited to a stack depth of 16. Introduce three new instructions, `SWAPN`, `DUPN` and `EXCHANGE` which lift this limitation and allow accessing the stack at higher depths.\n+\n+## Motivation\n+\n+While the stack is 1024 items deep, easy access is only possible for the top 16 items. Supporting more local variables is possible via manually keeping them in memory or through a \"stack to memory elevation\" in a compiler. This can result in complex and inefficient code.\n+\n+Furthermore, implementing higher level constructs, such as functions, on top of EVM will result in a list of input and output parameters as well as an instruction offset to return to.\n+\n+The number of these arguments (or stack items) can easily exceed 16 and thus will require extra care from a compiler to lay them out in a way that all of them are still accessible.\n+\n+Lastly, swapping items besides the 1st and Nth items in the stack is very important for compilers implementing stack scheduling algorithms (the analog of register allocation for stack machines), which try to minimize stack traffic given a set of variables and usage analysis.\n+\n+Introducing `SWAPN`, `DUPN`, and `EXCHANGE` will provide an option to compilers to simplify accessing deep stack items.\n+\n+## Specification\n+\n+We introduce three new instructions:\n+\n+- `DUPN` (`0xe6`)\n+- `SWAPN` (`0xe7`)\n+- `EXCHANGE` (`0xe8`)\n+\n+Each instruction carries one or two immediate operands. Informally, using 1-based indexing, the semantics are:\n+\n+- `DUPN n`: The `n`'th stack item is duplicated at the top of the stack.\n+- `SWAPN n`: The `n + 1`'th stack item is swapped with the top of the stack.\n+- `EXCHANGE n m`: The `n + 1`'th stack item is swapped with the `m + 1`'th stack item.\n+\n+Formally, when `code[pc]` is one of these opcodes, the VM executes as follows:\n+\n+- `DUPN`:\n+ 1. Charge 3 gas.\n+ 2. Let `x = code[pc + 1]`.\n+ 3. If `90 < x < 128` revert, consuming all gas.\n+ 4. Let `n = decode_single(x)`.\n+ 5. Push `stack[top - n + 1]` on the stack.\n+ 6. Set `pc = pc + 2`.\n+- `SWAPN`:\n+ 1. Charge 3 gas.\n+ 2. Let `x = code[pc + 1]`.\n+ 3. If `90 < x < 128` revert, consuming all gas.\n+ 4. Let `n = decode_single(x)`.\n+ 5. Swap `stack[top - n]` and `stack[top]`.\n+ 6. Set `pc = pc + 2`.\n+- `EXCHANGE`:\n+ 1. Charge 3 gas.\n+ 2. Let `x = code[pc + 1]`.\n+ 3. If `79 < x < 128` revert, consuming all gas.\n+ 4. Let `n, m = decode_pair(x)`.\n+ 5. Swap `stack[top - n]` and `stack[top - m]`.\n+ 6. Set `pc = pc + 2`.\n+\n+> `top` denotes the index of the value at the top of the stack.\n+\n+`JUMPDEST` analysis is unchanged. In particular, if `code[i]` is at an instruction boundary and is one of these opcodes, and `code[i + 1]` is `0x5b` (`JUMPDEST`), then `code[i + 1]` is a valid jump target. Note that in this case the execution of `code[i]` would halt at step 2 above (because `x = code[i + 1] = 0x5b = 91`). Disassemblers must decode such `code[i]` as `INVALID` (or `INVALID_DUPN`, etc.) and `code[i + 1]` as `JUMPDEST`.\n+\n+The auxiliary functions `decode_single` and `decode_pair` are defined by the following Python code:\n+\n+```python\n+def decode_single(x: int) -> int:\n+ assert 0 <= x <= 90 or 128 <= x <= 255\n+ if x <= 90:\n+ return x + 17\n+ else:\n+ return x - 20\n+\n+def decode_pair(x: int) -> tuple[int, int]:\n+ assert 0 <= x <= 79 or 128 <= x <= 255\n+ k = x if x <= 79 else x - 48\n+ q, r = divmod(k, 16)\n+ if q < r:\n+ return q + 2, r + 2\n+ else:\n+ return r + 2, 30 - q\n+```\n+\n+Assemblers and compilers must emit a 1-byte immediate after each of these opcodes that decodes to the required `n, m` operands. For reference, this can be done by `encode_single` and `encode_pair`:\n+ \n+```python\n+def encode_single(n: int) -> int:\n+ assert 17 <= n <= 235\n+ if n <= 107:\n+ return n - 17\n+ else:\n+ return n + 20\n+\n+def encode_pair(n: int, m: int) -> int:\n+ assert 2 <= n <= 14 and n < m <= 30 and n + m <= 32\n+ if m <= 17:\n+ q, r = n - 2, m - 2\n+ else:\n+ q, r = 30 - m, n - 2\n+ k = 16 * q + r\n+ return k if k <= 79 else k + 48\n+```\n+\n+## Rationale\n+\n+### Use of an immediate operand\n+\n+Allowing dynamic selection of the arguments to swap or dup could be used to prevent static analysis of the contents of the stack. Since static analysis is an important tool for security auditors we want to do what we can to make their jobs easier. Hence, the operands require an immediate operand that is not dynamic in nature. \n+\n+### Disallowed immediate range\n+\n+Allowing the encoding of the immediate operand to take the values `0x5b` or `0x60` to `0x7f` would create a backwards incompatibility. These values correspond to the `JUMPDEST` and `PUSH1` to `PUSH32` opcodes. Consider the bytecode sequence `e6 5b` that currently decodes to `INVALID JUMPDEST`. If the `DUPN` opcode accepted any subsequent byte as an immediate, once the instruction is introduced to the EVM the same bytecode sequence would then decode to `DUPN 0x5b`, eliminating a previously present `JUMPDEST` and possibly invalidating jumps necessary for the functioning of the contract. A similar thing can happen with push opcodes, for example, `e6 60 5b` would transform from `INVALID PUSH1 0x5b` to `DUPN 0x60 JUMPDEST` upon introduction of such an instruction, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n+\n+Since the EVM doesn't offer a dedicated section for data, arbitrary data may be embedded in code and serve as immutable data storage accessed via `CODECOPY`. Therefore, we must assume that arbitrary byte sequences may be found in contracts that have been deployed or are \"counterfactual\" deployments-in-waiting.\n+\n+The current version of the EIP is designed to uphold the following backwards compatibility guarantee: every possible execution trace on a given bytecode that does not attempt to execute an undefined opcode must continue to produce the same effect after the introduction of an instruction. No new `JUMPDEST`s must be created in a given bytecode by the introduction of an instruction and none may be removed.\n+\n+While it would be safe to allow the values `0x5c` to `0x5f`, these were also omitted to simplify decoding, and wouldn't significantly increase the reachable stack items.\n+\n+### `EXCHANGE` immediate\n+\n+A previous formulation of `EXCHANGE` allowed swapping stack elements only if they were within some distance. As a result, it would be possible to swap the elements at indices 30 and 29, but not possible to move an element from index 30 to 2 with a single instruction. The current formulation prioritizes the latter, on the assumption that it is more valuable to move elements closer to the top of the stack than it is to rearrange elements deeper in the stack.\n+\n+In addition, the exact formulation was chosen to make `decode_pair` a simple function using only basic arithmetic, bitwise operations (division by 16), and few branches. A small trade-off in the number of addressable pairs was made to reduce the number of necessary branches; this implies some of the immediate range is not allocated, and it could be used to add a dozen more addressable pairs at the cost of more decoding complexity, potentially in a future network upgrade.\n+\n+### Size of immediate operand\n+\n+For `DUPN` and `SWAPN` a 16-bit size was considered to accommodate the full stack space of 1024 items, however:\n+\n+1. that would require an additional restriction/check (`n < 1024`)\n+2. the 256 depth is a large improvement over the current 16 and the overhead of an extra byte would make it less useful\n+\n+Similarly for `EXCHANGE`, the proposed scheme allows addressing of 30 items.\n+\n+### Gas cost\n+\n+The gas cost for these operations is the same as for existing `DUP*` and `SWAP*` instructions, because they are just implemented as pointer swaps and immediate decoding is negligible.\n+\n+### `EXCHANGE` vs `SWAPN`\n+\n+As mentioned before, `EXCHANGE` is important to compilers implementing stack scheduling algorithms. Specifically, in the case that a stack item is scheduled to be consumed deeper in the stack (for instance, the 3rd item in the stack needs to be moved into 2nd position in order to be consumed by the next operation), that currently takes three instructions, `SWAP2 SWAP3 SWAP2`. However, in the EVM implementation, the implementation is just a pointer swap, so it could be implemented in a single instruction at no extra runtime cost to the client.\n+\n+## Backwards Compatibility\n+\n+This has no effect on contracts that would never attempt to execute the opcodes allocated by this EIP. The jump targets of existing contracts are preserved.\n+\n+## Test Cases\n+\n+### Assembly/Disassembly\n+\n+- `e600` is `[DUPN 17]`\n+- `e780` is `[SWAPN 108]`\n+- `e6005b` is `[DUPN 17, JUMPDEST]`\n+- `e75b` is `[INVALID_SWAPN, JUMPDEST]`\n+- `e6605b` is `[INVALID_DUPN, PUSH1 0x5b]`\n+- `e7610000` is `[INVALID_SWAPN, PUSH2 0x0000]`\n+- `e65f` is `[INVALID_DUPN, PUSH0]`\n+- `e812` is `[EXCHANGE 3 4]`\n+- `e8d0` is `[EXCHANGE 2 20]`\n+- `e850` is `[INVALID_EXCHANGE, POP]`\n+\n+### Execution\n+\n+- `60016000808080808080808080808080808080e600` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 1, the rest valued 0\n+- `600160008080808080808080808080808080806002e700` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 2, the rest valued 0\n+- `600060016002e801` results in 3 stack items, from top to bottom: [2, 0, 1]\n+- `e75b` reverts \n+- `600456e65b` executes successfully (`PUSH 04 JUMP INVALID_DUPN JUMPDEST`)\n+\n+## Security Considerations\n+\n+The authors are not aware of any additional risks introduced here. The EVM stack is fixed at 1024 items and most implementations keep that in memory at all times. This change will increase the number of stack items accessible via single instruction.\n+\n+## Copyright\n+\n+Copyright and related rights waived via [CC0](../LICENSE.md).\n", "order": 0, "subject": "Add EIP: Backward compatible SWAPN, DUPN, EXCHANGE", "tokens": [ "SWAP*", "DUP*", "SWAPN", "DUPN", "EXCHANGE", "0xe6", "0xe7", "0xe8", "DUPN n", "n", "SWAPN n", "n + 1", "EXCHANGE n m", "m + 1", "code[pc]", "x = code[pc + 1]", "90 < x < 128", "n = decode_single(x)", "stack[top - n + 1]", "pc = pc + 2", "stack[top - n]", "stack[top]", "79 < x < 128", "n, m = decode_pair(x)", "stack[top - m]", "top", "JUMPDEST", "code[i]", "code[i + 1]", "0x5b", "x = code[i + 1] = 0x5b = 91", "INVALID", "INVALID_DUPN", "decode_single", "decode_pair", "python\ndef decode_single(x: int) -> int:\n assert 0 <= x <= 90 or 128 <= x <= 255\n if x <= 90:\n return x + 17\n else:\n return x - 20\n\ndef decode_pair(x: int) -> tuple[int, int]:\n assert 0 <= x <= 79 or 128 <= x <= 255\n k = x if x <= 79 else x - 48\n q, r = divmod(k, 16)\n if q < r:\n return q + 2, r + 2\n else:\n return r + 2, 30 - q\n", "\n\nAssemblers and compilers must emit a 1-byte immediate after each of these opcodes that decodes to the required ", " operands. For reference, this can be done by ", " and ", ":\n \n", "python\ndef encode_single(n: int) -> int:\n assert 17 <= n <= 235\n if n <= 107:\n return n - 17\n else:\n return n + 20\n\ndef encode_pair(n: int, m: int) -> int:\n assert 2 <= n <= 14 and n < m <= 30 and n + m <= 32\n if m <= 17:\n q, r = n - 2, m - 2\n else:\n q, r = 30 - m, n - 2\n k = 16 * q + r\n return k if k <= 79 else k + 48\n", "\n\n## Rationale\n\n### Use of an immediate operand\n\nAllowing dynamic selection of the arguments to swap or dup could be used to prevent static analysis of the contents of the stack. Since static analysis is an important tool for security auditors we want to do what we can to make their jobs easier. Hence, the operands require an immediate operand that is not dynamic in nature. \n\n### Disallowed immediate range\n\nAllowing the encoding of the immediate operand to take the values ", " or ", " to ", " would create a backwards incompatibility. These values correspond to the ", " opcodes. Consider the bytecode sequence ", " that currently decodes to ", ". If the ", " opcode accepted any subsequent byte as an immediate, once the instruction is introduced to the EVM the same bytecode sequence would then decode to ", ", eliminating a previously present ", " and possibly invalidating jumps necessary for the functioning of the contract. A similar thing can happen with push opcodes, for example, ", " would transform from ", " upon introduction of such an instruction, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n\nSince the EVM doesn't offer a dedicated section for data, arbitrary data may be embedded in code and serve as immutable data storage accessed via ", ". Therefore, we must assume that arbitrary byte sequences may be found in contracts that have been deployed or are \"counterfactual\" deployments-in-waiting.\n\nThe current version of the EIP is designed to uphold the following backwards compatibility guarantee: every possible execution trace on a given bytecode that does not attempt to execute an undefined opcode must continue to produce the same effect after the introduction of an instruction. No new ", "s must be created in a given bytecode by the introduction of an instruction and none may be removed.\n\nWhile it would be safe to allow the values ", ", these were also omitted to simplify decoding, and wouldn't significantly increase the reachable stack items.\n\n### ", " immediate\n\nA previous formulation of ", " allowed swapping stack elements only if they were within some distance. As a result, it would be possible to swap the elements at indices 30 and 29, but not possible to move an element from index 30 to 2 with a single instruction. The current formulation prioritizes the latter, on the assumption that it is more valuable to move elements closer to the top of the stack than it is to rearrange elements deeper in the stack.\n\nIn addition, the exact formulation was chosen to make ", " a simple function using only basic arithmetic, bitwise operations (division by 16), and few branches. A small trade-off in the number of addressable pairs was made to reduce the number of necessary branches; this implies some of the immediate range is not allocated, and it could be used to add a dozen more addressable pairs at the cost of more decoding complexity, potentially in a future network upgrade.\n\n### Size of immediate operand\n\nFor ", " a 16-bit size was considered to accommodate the full stack space of 1024 items, however:\n\n1. that would require an additional restriction/check (", ")\n2. the 256 depth is a large improvement over the current 16 and the overhead of an extra byte would make it less useful\n\nSimilarly for ", ", the proposed scheme allows addressing of 30 items.\n\n### Gas cost\n\nThe gas cost for these operations is the same as for existing ", " instructions, because they are just implemented as pointer swaps and immediate decoding is negligible.\n\n### ", " vs ", "\n\nAs mentioned before, ", " is important to compilers implementing stack scheduling algorithms. Specifically, in the case that a stack item is scheduled to be consumed deeper in the stack (for instance, the 3rd item in the stack needs to be moved into 2nd position in order to be consumed by the next operation), that currently takes three instructions, ", ". However, in the EVM implementation, the implementation is just a pointer swap, so it could be implemented in a single instruction at no extra runtime cost to the client.\n\n## Backwards Compatibility\n\nThis has no effect on contracts that would never attempt to execute the opcodes allocated by this EIP. The jump targets of existing contracts are preserved.\n\n## Test Cases\n\n### Assembly/Disassembly\n\n- ", " is ", "\n- ", "\n\n### Execution\n\n- ", " results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 1, the rest valued 0\n- ", " results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 2, the rest valued 0\n- ", " results in 3 stack items, from top to bottom: [2, 0, 1]\n- ", " reverts \n- ", " executes successfully (" ], "window": [] }, { "blob": "6d23fa7554175e3b14c2523fe118525e97f15bc1", "candidates": [], "commit": "db5c483ea122c6735cd92ff135de985f0e9253e2", "constants": [], "date": "2025-11-04T03:54:51Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex b519c1ce..6d23fa75 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -83,9 +83,9 @@ def decode_pair(x: int) -> tuple[int, int]:\n k = x if x <= 79 else x - 48\n q, r = divmod(k, 16)\n if q < r:\n- return q + 2, r + 2\n+ return q + 1, r + 1\n else:\n- return r + 2, 30 - q\n+ return r + 1, 29 - q\n ```\n \n Assemblers and compilers must emit a 1-byte immediate after each of these opcodes that decodes to the required `n, m` operands. For reference, this can be done by `encode_single` and `encode_pair`:\n@@ -99,11 +99,11 @@ def encode_single(n: int) -> int:\n return n + 20\n \n def encode_pair(n: int, m: int) -> int:\n- assert 2 <= n <= 14 and n < m <= 30 and n + m <= 32\n- if m <= 17:\n- q, r = n - 2, m - 2\n+ assert 1 <= n <= 13 and n < m <= 29 and n + m <= 30\n+ if m <= 16:\n+ q, r = n - 1, m - 1\n else:\n- q, r = 30 - m, n - 2\n+ q, r = 29 - m, n - 1\n k = 16 * q + r\n return k if k <= 79 else k + 48\n ```\n@@ -130,6 +130,8 @@ A previous formulation of `EXCHANGE` allowed swapping stack elements only if the\n \n In addition, the exact formulation was chosen to make `decode_pair` a simple function using only basic arithmetic, bitwise operations (division by 16), and few branches. A small trade-off in the number of addressable pairs was made to reduce the number of necessary branches; this implies some of the immediate range is not allocated, and it could be used to add a dozen more addressable pairs at the cost of more decoding complexity, potentially in a future network upgrade.\n \n+Finally, note that the operands in the assembly instruction `EXCHANGE n m` appear \"off by one\", i.e. it operates on the stack elements at depths `n + 1` and `m + 1`. These offsets were chosen to match the `SWAP` and `SWAPN` opcodes such that `EXCHANGE n m` has an effect equivalent to the sequence `SWAP{n} SWAP{m} SWAP{n}`.\n+\n ### Size of immediate operand\n \n For `DUPN` and `SWAPN` a 16-bit size was considered to accommodate the full stack space of 1024 items, however:\n@@ -162,8 +164,8 @@ This has no effect on contracts that would never attempt to execute the opcodes\n - `e6605b` is `[INVALID_DUPN, PUSH1 0x5b]`\n - `e7610000` is `[INVALID_SWAPN, PUSH2 0x0000]`\n - `e65f` is `[INVALID_DUPN, PUSH0]`\n-- `e812` is `[EXCHANGE 3 4]`\n-- `e8d0` is `[EXCHANGE 2 20]`\n+- `e812` is `[EXCHANGE 2 3]`\n+- `e8d0` is `[EXCHANGE 1 19]`\n - `e850` is `[INVALID_EXCHANGE, POP]`\n \n ### Execution\n", "order": 1, "subject": "Update EIP-8024: Fix pair encoding to match intent", "tokens": [ "EXCHANGE n m", "n + 1", "m + 1", "SWAP", "SWAPN", "SWAP{n} SWAP{m} SWAP{n}", "e812", "[EXCHANGE 2 3]", "e8d0", "[EXCHANGE 1 19]" ], "window": [] }, { "blob": "ef1bb05df88ad590471ee0cae1de6067497f200c", "candidates": [], "commit": "5e6b0c27237e369623376cbfc02d887848e9c21b", "constants": [], "date": "2025-12-01T19:08:43Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 6d23fa75..ef1bb05d 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -175,6 +175,7 @@ This has no effect on contracts that would never attempt to execute the opcodes\n - `600060016002e801` results in 3 stack items, from top to bottom: [2, 0, 1]\n - `e75b` reverts \n - `600456e65b` executes successfully (`PUSH 04 JUMP INVALID_DUPN JUMPDEST`)\n+- `600060006000e80115` results in 3 stack items, the top of the stack valued 1, the rest valued 0\n \n ## Security Considerations\n \n", "order": 2, "subject": "Update EIP-8024: Add test case for PC increment", "tokens": [ "600060006000e80115" ], "window": [] }, { "blob": "5bdcc2745c651d9515ab14530a073015a04f8d2c", "candidates": [], "commit": "dcbc74e19eb66678144dcc43ec40d1ac660843d6", "constants": [], "date": "2025-12-11T01:20:09Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex ef1bb05d..5bdcc274 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -45,22 +45,25 @@ Formally, when `code[pc]` is one of these opcodes, the VM executes as follows:\n - `DUPN`:\n 1. Charge 3 gas.\n 2. Let `x = code[pc + 1]`.\n- 3. If `90 < x < 128` revert, consuming all gas.\n+ 3. If `90 < x < 128`, halt with exceptional failure.\n 4. Let `n = decode_single(x)`.\n+ 5. If `n > len(stack)`, halt with exceptional failure.\n 5. Push `stack[top - n + 1]` on the stack.\n 6. Set `pc = pc + 2`.\n - `SWAPN`:\n 1. Charge 3 gas.\n 2. Let `x = code[pc + 1]`.\n- 3. If `90 < x < 128` revert, consuming all gas.\n+ 3. If `90 < x < 128`, halt with exceptional failure.\n 4. Let `n = decode_single(x)`.\n+ 5. If `n + 1 > len(stack)`, halt with exceptional failure.\n 5. Swap `stack[top - n]` and `stack[top]`.\n 6. Set `pc = pc + 2`.\n - `EXCHANGE`:\n 1. Charge 3 gas.\n 2. Let `x = code[pc + 1]`.\n- 3. If `79 < x < 128` revert, consuming all gas.\n+ 3. If `79 < x < 128`, halt with exceptional failure.\n 4. Let `n, m = decode_pair(x)`.\n+ 5. If `m + 1 > len(stack)`, halt with exceptional failure.\n 5. Swap `stack[top - n]` and `stack[top - m]`.\n 6. Set `pc = pc + 2`.\n \n", "order": 3, "subject": "Update EIP-8024: Add explicit halting conditions", "tokens": [ "90 < x < 128", "n > len(stack)", "n + 1 > len(stack)", "79 < x < 128", "m + 1 > len(stack)" ], "window": [] }, { "blob": "9842e867b5c75b9624d1e62b4eb532d3b219e70d", "candidates": [], "commit": "0377ea19d4d7e0cffeded97e01ce4d5293e83260", "constants": [], "date": "2025-12-11T01:59:50Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 5bdcc274..9842e867 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -179,6 +179,7 @@ This has no effect on contracts that would never attempt to execute the opcodes\n - `e75b` reverts \n - `600456e65b` executes successfully (`PUSH 04 JUMP INVALID_DUPN JUMPDEST`)\n - `600060006000e80115` results in 3 stack items, the top of the stack valued 1, the rest valued 0\n+- `6000808080808080808080808080808080e600` results in exceptional halt\n \n ## Security Considerations\n \n", "order": 4, "subject": "Update EIP-8024: Add test case for exceptional halt", "tokens": [ "6000808080808080808080808080808080e600" ], "window": [] }, { "blob": "b1724fe279aa9477e5e3fa0bdfbd9eeb06e9f582", "candidates": [], "commit": "099cdbc4d8c83a2d04b086b93453bb525301091e", "constants": [], "date": "2026-01-15T14:26:30Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 9842e867..b1724fe2 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -67,7 +67,9 @@ Formally, when `code[pc]` is one of these opcodes, the VM executes as follows:\n 5. Swap `stack[top - n]` and `stack[top - m]`.\n 6. Set `pc = pc + 2`.\n \n-> `top` denotes the index of the value at the top of the stack.\n+`code[pc + 1]` evaluates to `0` if beyond the end of the code, matching `PUSH` behavior.\n+\n+`top` denotes the index of the value at the top of the stack.\n \n `JUMPDEST` analysis is unchanged. In particular, if `code[i]` is at an instruction boundary and is one of these opcodes, and `code[i + 1]` is `0x5b` (`JUMPDEST`), then `code[i + 1]` is a valid jump target. Note that in this case the execution of `code[i]` would halt at step 2 above (because `x = code[i + 1] = 0x5b = 91`). Disassemblers must decode such `code[i]` as `INVALID` (or `INVALID_DUPN`, etc.) and `code[i + 1]` as `JUMPDEST`.\n \n", "order": 5, "subject": "Update EIP-8024: Specify behavior at end of code", "tokens": [ "code[pc + 1]", "0", "PUSH", "top" ], "window": [] }, { "blob": "b54accd182b0e2e040ce2ba1a8a61bff6ca9fa0e", "candidates": [], "commit": "0f224ab230ffbdcfa28aa69b8aa78e20fe293360", "constants": [], "date": "2026-01-16T06:58:14-07:00", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex b1724fe2..b54accd1 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -176,8 +176,11 @@ This has no effect on contracts that would never attempt to execute the opcodes\n ### Execution\n \n - `60016000808080808080808080808080808080e600` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 1, the rest valued 0\n+ - `60016000808080808080808080808080808080e6` at the end of the code is equivalent to above\n - `600160008080808080808080808080808080806002e700` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 2, the rest valued 0\n+ - `600160008080808080808080808080808080806002e7` at the end of the code is equivalent to above\n - `600060016002e801` results in 3 stack items, from top to bottom: [2, 0, 1]\n+- `600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060016002e8` results in 30 stack items, the top of the stack valued 2, the bottom of the stack valued 1, the rest valued 0\n - `e75b` reverts \n - `600456e65b` executes successfully (`PUSH 04 JUMP INVALID_DUPN JUMPDEST`)\n - `600060006000e80115` results in 3 stack items, the top of the stack valued 1, the rest valued 0\n", "order": 6, "subject": "Update EIP-8024: Add tests for the specified behavior at end of code (#11095)", "tokens": [ "60016000808080808080808080808080808080e6", "600160008080808080808080808080808080806002e7", "600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060016002e8" ], "window": [] }, { "blob": "b9a5fa56ec91e4d82243e832d134c4f2984e1197", "candidates": [], "commit": "05146bfcf2a3b0b5962b289ab2bd79b706a45906", "constants": [], "date": "2026-02-07T01:32:09Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex b54accd1..b9a5fa56 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -121,13 +121,17 @@ Allowing dynamic selection of the arguments to swap or dup could be used to prev\n \n ### Disallowed immediate range\n \n-Allowing the encoding of the immediate operand to take the values `0x5b` or `0x60` to `0x7f` would create a backwards incompatibility. These values correspond to the `JUMPDEST` and `PUSH1` to `PUSH32` opcodes. Consider the bytecode sequence `e6 5b` that currently decodes to `INVALID JUMPDEST`. If the `DUPN` opcode accepted any subsequent byte as an immediate, once the instruction is introduced to the EVM the same bytecode sequence would then decode to `DUPN 0x5b`, eliminating a previously present `JUMPDEST` and possibly invalidating jumps necessary for the functioning of the contract. A similar thing can happen with push opcodes, for example, `e6 60 5b` would transform from `INVALID PUSH1 0x5b` to `DUPN 0x60 JUMPDEST` upon introduction of such an instruction, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n+A property the EVM has is that it's not possible to jump to the middle of an instruction. In order to guarantee this property, the immediate operands of `PUSH*` instructions are masked from jumpdest analysis so that the occurrence of `0x5b` in them is not mistaken for a `JUMPDEST` instruction, which should be considered a valid jump target elsewhere.\n \n-Since the EVM doesn't offer a dedicated section for data, arbitrary data may be embedded in code and serve as immutable data storage accessed via `CODECOPY`. Therefore, we must assume that arbitrary byte sequences may be found in contracts that have been deployed or are \"counterfactual\" deployments-in-waiting.\n+The new instructions in this EIP preserve this property without changing jumpdest analysis by making it invalid for their immediates to contain `0x5b`, in addition to `0x60` to `0x7f` (`PUSH1` to `PUSH32`) since those would cause the subsequent instructions to be masked.\n \n-The current version of the EIP is designed to uphold the following backwards compatibility guarantee: every possible execution trace on a given bytecode that does not attempt to execute an undefined opcode must continue to produce the same effect after the introduction of an instruction. No new `JUMPDEST`s must be created in a given bytecode by the introduction of an instruction and none may be removed.\n+The alternative, changing jumpdest analysis to introduce new masked opcodes, would create a backwards incompatibility if done without bytecode versioning (EOF). Consider the bytecode sequence `e6 5b` that decodes to `INVALID JUMPDEST` prior to this EIP, and thus contains a valid jump target. If an instruction `DUPN x` were introduced with encoding `e6 {x}` (opcode immediately followed by operand), and jumpdest analysis changed to mask the operand to `e6`, the same bytecode sequence `e6 5b` would then decode to `DUPN 0x5b`. As a result of the upgrade, `e6` would become an invalid jump target, breaking contracts that include this sequence. The opposite can happen with push opcodes, for example, `e6 60 5b` would transform from `INVALID PUSH1 0x5b` to `DUPN 0x60 JUMPDEST`, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n \n-While it would be safe to allow the values `0x5c` to `0x5f`, these were also omitted to simplify decoding, and wouldn't significantly increase the reachable stack items.\n+Since the EVM doesn't offer a dedicated section for data, arbitrary data may be embedded in code and serve as immutable data storage accessed via `CODECOPY`. Therefore, we must assume that arbitrary byte sequences may be found in contracts that have been deployed or are included in transactions yet to be published on chain.\n+\n+This EIP is designed to uphold the following backwards compatibility guarantee: every possible execution trace on a given bytecode that does not attempt to execute an undefined opcode must continue to produce the same effect after the introduction of an instruction. No new `JUMPDEST`s must be created in a given bytecode by the introduction of an instruction and none may be removed.\n+\n+This encoding can be reused in future instructions with immediate operands, although it is not necessary if the range of the operand naturally does not include the bytes `0x5b` (`JUMPDEST`) or `0x60` (`PUSH1`) to `0x7f` (`PUSH32`), in which case masking is not necessary.\n \n ### `EXCHANGE` immediate\n \n", "order": 7, "subject": "Update EIP-8024: Improve rationale", "tokens": [ "PUSH*", "0x5b", "JUMPDEST", "0x60", "0x7f", "PUSH1", "PUSH32", "e6 5b", "INVALID JUMPDEST", "DUPN x", "e6 {x}", "e6", "DUPN 0x5b", "e6 60 5b", "INVALID PUSH1 0x5b", "DUPN 0x60 JUMPDEST", "CODECOPY" ], "window": [] }, { "blob": "8f1302d6b69eed54f5c7b32b2412a0044baa8bb0", "candidates": [], "commit": "d0b75a60e8b8cd79048a439c78fb3b3d1c3c9adb", "constants": [], "date": "2026-02-25T21:39:44+08:00", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex b9a5fa56..8f1302d6 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -2,7 +2,7 @@\n eip: 8024\n title: Backward compatible SWAPN, DUPN, EXCHANGE\n description: Introduce additional instructions for manipulating the stack which allow accessing the stack at higher depths\n-author: Francisco Giordano (@frangio), Charles Cooper (@charles-cooper), Alex Beregszaszi (@axic)\n+author: Francisco Giordano (@frangio), Charles Cooper (@charles-cooper), Alex Beregszaszi (@axic), Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8024-backward-compatible-swapn-dupn-exchange/25486\n status: Review\n type: Standards Track\n@@ -61,7 +61,7 @@ Formally, when `code[pc]` is one of these opcodes, the VM executes as follows:\n - `EXCHANGE`:\n 1. Charge 3 gas.\n 2. Let `x = code[pc + 1]`.\n- 3. If `79 < x < 128`, halt with exceptional failure.\n+ 3. If `81 < x < 128`, halt with exceptional failure.\n 4. Let `n, m = decode_pair(x)`.\n 5. If `m + 1 > len(stack)`, halt with exceptional failure.\n 5. Swap `stack[top - n]` and `stack[top - m]`.\n@@ -78,14 +78,11 @@ The auxiliary functions `decode_single` and `decode_pair` are defined by the fol\n ```python\n def decode_single(x: int) -> int:\n assert 0 <= x <= 90 or 128 <= x <= 255\n- if x <= 90:\n- return x + 17\n- else:\n- return x - 20\n+ return (x + 145) % 256\n \n def decode_pair(x: int) -> tuple[int, int]:\n- assert 0 <= x <= 79 or 128 <= x <= 255\n- k = x if x <= 79 else x - 48\n+ assert 0 <= x <= 81 or 128 <= x <= 255\n+ k = x ^ 143\n q, r = divmod(k, 16)\n if q < r:\n return q + 1, r + 1\n@@ -98,19 +95,16 @@ Assemblers and compilers must emit a 1-byte immediate after each of these opcode\n ```python\n def encode_single(n: int) -> int:\n assert 17 <= n <= 235\n- if n <= 107:\n- return n - 17\n- else:\n- return n + 20\n+ return (n + 111) % 256\n \n def encode_pair(n: int, m: int) -> int:\n- assert 1 <= n <= 13 and n < m <= 29 and n + m <= 30\n+ assert 1 <= n <= 14 and n < m <= 29 and n + m <= 30\n if m <= 16:\n q, r = n - 1, m - 1\n else:\n q, r = 29 - m, n - 1\n k = 16 * q + r\n- return k if k <= 79 else k + 48\n+ return k ^ 143\n ```\n \n ## Rationale\n@@ -166,29 +160,31 @@ This has no effect on contracts that would never attempt to execute the opcodes\n \n ### Assembly/Disassembly\n \n-- `e600` is `[DUPN 17]`\n-- `e780` is `[SWAPN 108]`\n-- `e6005b` is `[DUPN 17, JUMPDEST]`\n+- `e680` is `[DUPN 17]`\n+- `e7db` is `[SWAPN 108]`\n+- `e6805b` is `[DUPN 17, JUMPDEST]`\n - `e75b` is `[INVALID_SWAPN, JUMPDEST]`\n - `e6605b` is `[INVALID_DUPN, PUSH1 0x5b]`\n - `e7610000` is `[INVALID_SWAPN, PUSH2 0x0000]`\n - `e65f` is `[INVALID_DUPN, PUSH0]`\n-- `e812` is `[EXCHANGE 2 3]`\n-- `e8d0` is `[EXCHANGE 1 19]`\n-- `e850` is `[INVALID_EXCHANGE, POP]`\n+- `e89d` is `[EXCHANGE 2 3]`\n+- `e82f` is `[EXCHANGE 1 19]`\n+- `e850` is `[EXCHANGE 14 16]`\n+- `e851` is `[EXCHANGE 14 15]`\n+- `e852` is `[INVALID_EXCHANGE, MSTORE]`\n \n ### Execution\n \n-- `60016000808080808080808080808080808080e600` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 1, the rest valued 0\n- - `60016000808080808080808080808080808080e6` at the end of the code is equivalent to above\n-- `600160008080808080808080808080808080806002e700` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 2, the rest valued 0\n- - `600160008080808080808080808080808080806002e7` at the end of the code is equivalent to above\n-- `600060016002e801` results in 3 stack items, from top to bottom: [2, 0, 1]\n-- `600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060006000600060016002e8` results in 30 stack items, the top of the stack valued 2, the bottom of the stack valued 1, the rest valued 0\n+- `60016000808080808080808080808080808080e680` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 1, the rest valued 0\n+- `600160008080808080808080808080808080806002e780` results in 18 stack items, the top of the stack valued 1, the bottom of the stack valued 2, the rest valued 0\n+- `600260008080808080600160008080808080808080e8` at the end of code results in 17 stack items, the bottom of the stack valued 1, the 10th stack item from the top valued 2, the rest valued 0\n+- `600060016002e88e` results in 3 stack items, from top to bottom: [2, 0, 1]\n+- `600080808080808080808080808080808080808080808080808080808060016002e88f` results in 30 stack items, the top of the stack valued 2, the bottom of the stack valued 1, the rest valued 0\n - `e75b` reverts \n - `600456e65b` executes successfully (`PUSH 04 JUMP INVALID_DUPN JUMPDEST`)\n-- `600060006000e80115` results in 3 stack items, the top of the stack valued 1, the rest valued 0\n-- `6000808080808080808080808080808080e600` results in exceptional halt\n+- `60008080e88e15` results in 3 stack items, the top of the stack valued 1, the rest valued 0\n+- `e852` reverts\n+- `6000808080808080808080808080808080e680` results in exceptional halt\n \n ## Security Considerations\n \n", "order": 8, "subject": "Update EIP-8024: Switch to branchless normalization and extend EXCHANGE", "tokens": [ "81 < x < 128", "e680", "[DUPN 17]", "e7db", "[SWAPN 108]", "e6805b", "[DUPN 17, JUMPDEST]", "e89d", "[EXCHANGE 2 3]", "e82f", "[EXCHANGE 1 19]", "e850", "[EXCHANGE 14 16]", "e851", "[EXCHANGE 14 15]", "e852", "[INVALID_EXCHANGE, MSTORE]", "60016000808080808080808080808080808080e680", "600160008080808080808080808080808080806002e780", "600260008080808080600160008080808080808080e8", "600060016002e88e", "600080808080808080808080808080808080808080808080808080808060016002e88f", "60008080e88e15", "6000808080808080808080808080808080e680" ], "window": [] }, { "blob": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "candidates": [], "commit": "c0aa8d79038e0bf60ab8f15ff32ef17ba3b80882", "constants": [], "date": "2026-02-25T15:46:37Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 8f1302d6..380cb028 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -77,10 +77,12 @@ The auxiliary functions `decode_single` and `decode_pair` are defined by the fol\n \n ```python\n def decode_single(x: int) -> int:\n+ \"\"\"Returns n with 17 <= n <= 235.\"\"\"\n assert 0 <= x <= 90 or 128 <= x <= 255\n return (x + 145) % 256\n \n def decode_pair(x: int) -> tuple[int, int]:\n+ \"\"\"Returns (n, m) with 1 <= n <= 14 and n < m <= 30 - n.\"\"\"\n assert 0 <= x <= 81 or 128 <= x <= 255\n k = x ^ 143\n q, r = divmod(k, 16)\n@@ -98,7 +100,7 @@ def encode_single(n: int) -> int:\n return (n + 111) % 256\n \n def encode_pair(n: int, m: int) -> int:\n- assert 1 <= n <= 14 and n < m <= 29 and n + m <= 30\n+ assert 1 <= n < m and n + m <= 30\n if m <= 16:\n q, r = n - 1, m - 1\n else:\n", "order": 9, "subject": "Update EIP-8024: Document decoding range", "tokens": [], "window": [] }, { "blob": "7aa9a848e864147c34a5d9147ece9f9179d0ac70", "candidates": [ { "path": "tests/amsterdam/eip8024_dupn_swapn_exchange/test_eip_vectors.py", "score": 3, "test": "test_eip_vectors.py::test_vector_dupn_invalid_0x60", "tokens": [ "e6", "5b", "e6 60 5b" ] } ], "commit": "34b49095ca5f7343045da279f04e7ecd1e451393", "constants": [], "date": "2026-06-10T19:38:35Z", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 380cb028..7aa9a848 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -121,7 +121,7 @@ A property the EVM has is that it's not possible to jump to the middle of an ins\n \n The new instructions in this EIP preserve this property without changing jumpdest analysis by making it invalid for their immediates to contain `0x5b`, in addition to `0x60` to `0x7f` (`PUSH1` to `PUSH32`) since those would cause the subsequent instructions to be masked.\n \n-The alternative, changing jumpdest analysis to introduce new masked opcodes, would create a backwards incompatibility if done without bytecode versioning (EOF). Consider the bytecode sequence `e6 5b` that decodes to `INVALID JUMPDEST` prior to this EIP, and thus contains a valid jump target. If an instruction `DUPN x` were introduced with encoding `e6 {x}` (opcode immediately followed by operand), and jumpdest analysis changed to mask the operand to `e6`, the same bytecode sequence `e6 5b` would then decode to `DUPN 0x5b`. As a result of the upgrade, `e6` would become an invalid jump target, breaking contracts that include this sequence. The opposite can happen with push opcodes, for example, `e6 60 5b` would transform from `INVALID PUSH1 0x5b` to `DUPN 0x60 JUMPDEST`, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n+The alternative, changing jumpdest analysis to introduce new masked opcodes, would create a backwards incompatibility if done without bytecode versioning (EOF). Consider the bytecode sequence `e6 5b` that decodes to `INVALID JUMPDEST` prior to this EIP, and thus contains a valid jump target. If an instruction `DUPN x` were introduced with encoding `e6 {x}` (opcode immediately followed by operand), and jumpdest analysis changed to mask the operand to `e6`, the same bytecode sequence `e6 5b` would then decode to `DUPN 0x5b`. As a result of the upgrade, `5b` would become an invalid jump target, breaking contracts that include this sequence. The opposite can happen with push opcodes, for example, `e6 60 5b` would transform from `INVALID PUSH1 0x5b` to `DUPN 0x60 JUMPDEST`, creating a new valid jump target. Furthermore, this may have a cascading effect on arbitrarily many subsequent instructions.\n \n Since the EVM doesn't offer a dedicated section for data, arbitrary data may be embedded in code and serve as immutable data storage accessed via `CODECOPY`. Therefore, we must assume that arbitrary byte sequences may be found in contracts that have been deployed or are included in transactions yet to be published on chain.\n \n", "order": 10, "subject": "Update EIP-8024: Fix typo", "tokens": [ "e6 5b", "INVALID JUMPDEST", "DUPN x", "e6 {x}", "e6", "DUPN 0x5b", "5b", "e6 60 5b", "INVALID PUSH1 0x5b", "DUPN 0x60 JUMPDEST" ], "window": [ { "author_date": "2026-06-15T05:37:02-06:00", "commit": "ae18430131e62c22279100f1c64c1b854c6ec834", "subject": "feat(test-specs): Allow automatic transaction gas-limit (#2969)" }, { "author_date": "2026-06-09T17:42:14+01:00", "commit": "8ea50be3c640c2ce2be108fc634dc48a3d039cbd", "subject": "feat(spec-specs, tests): merge EIP-8037 to `forks/amsterdam` (#2901)" }, { "author_date": "2026-06-01T15:34:08+02:00", "commit": "d7def91be93d7ca5df7954fa3241bd8940e5f784", "subject": "feat(tests): add EIP-8024 gas boundary and SWAPN invalid-immediate tests (#2942)" } ] }, { "blob": "d9e7aebfcb8ef1a67e9f5564498dd605c022c30a", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex 7aa9a848..d9e7aebf 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -4,7 +4,8 @@ title: Backward compatible SWAPN, DUPN, EXCHANGE\n description: Introduce additional instructions for manipulating the stack which allow accessing the stack at higher depths\n author: Francisco Giordano (@frangio), Charles Cooper (@charles-cooper), Alex Beregszaszi (@axic), Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8024-backward-compatible-swapn-dupn-exchange/25486\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-08-16\n", "order": 11, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" } ] }, { "blob": "b15042f65157134c398a8dd0f2d6759893f2f81e", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-8024.md b/EIPS/eip-8024.md\nindex d9e7aebf..b15042f6 100644\n--- a/EIPS/eip-8024.md\n+++ b/EIPS/eip-8024.md\n@@ -1,6 +1,6 @@\n ---\n eip: 8024\n-title: Backward compatible SWAPN, DUPN, EXCHANGE\n+title: Backward Compatible SWAPN, DUPN, EXCHANGE\n description: Introduce additional instructions for manipulating the stack which allow accessing the stack at higher depths\n author: Francisco Giordano (@frangio), Charles Cooper (@charles-cooper), Alex Beregszaszi (@axic), Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8024-backward-compatible-swapn-dupn-exchange/25486\n", "order": 12, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "8024", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "b15042f65157134c398a8dd0f2d6759893f2f81e", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8024.md", "pending": [], "pin": { "ambiguous": false, "blob": "34b49095ca5f7343045da279f04e7ecd1e451393", "commit": null, "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8024_dupn_swapn_exchange/spec.py" }, "pin_history": [ { "blob": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "commit": "b52292054bdbb8eac4630fa1a7c0a19280830490", "date": "2026-05-19T14:59:56-06:00", "files": [ "__init__.py", "test_dupn.py", "test_eip_vectors.py", "test_endofcode_underflow.py", "test_exchange.py", "test_pc_advancement.py", "test_swapn.py" ], "pr": 2881, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): Add EIP-8024 Backward compatible SWAPN, DUPN, EXCHANGE (#2881)", "superseded": false }, { "blob": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "34b49095ca5f7343045da279f04e7ecd1e451393", "commit": "2384e39d17a226106a88f6ab34aad4461550ea63", "date": "2026-07-30T17:27:43+02:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_dupn.py", "test_eip_mainnet.py", "test_eip_vectors.py", "test_endofcode_underflow.py", "test_exchange.py", "test_execution_contexts.py", "test_fork_transition.py", "test_swapn.py" ], "pr": 3224, "release": "tests@v20.0.2", "subject": "chore(tests): improve EIP-8024 coverage, checklist, and ref-spec pin (#3224)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "tests@v20.0.1": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "tests@v20.0.2": "34b49095ca5f7343045da279f04e7ecd1e451393", "tests@v21.0.0": "34b49095ca5f7343045da279f04e7ecd1e451393", "tests@v21.0.1": "34b49095ca5f7343045da279f04e7ecd1e451393", "tests@v21.0.2": "34b49095ca5f7343045da279f04e7ecd1e451393" }, "revisions": [ { "blob": "6d23fa7554175e3b14c2523fe118525e97f15bc1", "commit": "db5c483ea122c6735cd92ff135de985f0e9253e2", "date": "2025-11-04T03:54:51Z", "subject": "Update EIP-8024: Fix pair encoding to match intent" }, { "blob": "ef1bb05df88ad590471ee0cae1de6067497f200c", "commit": "5e6b0c27237e369623376cbfc02d887848e9c21b", "date": "2025-12-01T19:08:43Z", "subject": "Update EIP-8024: Add test case for PC increment" }, { "blob": "5bdcc2745c651d9515ab14530a073015a04f8d2c", "commit": "dcbc74e19eb66678144dcc43ec40d1ac660843d6", "date": "2025-12-11T01:20:09Z", "subject": "Update EIP-8024: Add explicit halting conditions" }, { "blob": "9842e867b5c75b9624d1e62b4eb532d3b219e70d", "commit": "0377ea19d4d7e0cffeded97e01ce4d5293e83260", "date": "2025-12-11T01:59:50Z", "subject": "Update EIP-8024: Add test case for exceptional halt" }, { "blob": "b1724fe279aa9477e5e3fa0bdfbd9eeb06e9f582", "commit": "099cdbc4d8c83a2d04b086b93453bb525301091e", "date": "2026-01-15T14:26:30Z", "subject": "Update EIP-8024: Specify behavior at end of code" }, { "blob": "b54accd182b0e2e040ce2ba1a8a61bff6ca9fa0e", "commit": "0f224ab230ffbdcfa28aa69b8aa78e20fe293360", "date": "2026-01-16T06:58:14-07:00", "subject": "Update EIP-8024: Add tests for the specified behavior at end of code (#11095)" }, { "blob": "b9a5fa56ec91e4d82243e832d134c4f2984e1197", "commit": "05146bfcf2a3b0b5962b289ab2bd79b706a45906", "date": "2026-02-07T01:32:09Z", "subject": "Update EIP-8024: Improve rationale" }, { "blob": "8f1302d6b69eed54f5c7b32b2412a0044baa8bb0", "commit": "d0b75a60e8b8cd79048a439c78fb3b3d1c3c9adb", "date": "2026-02-25T21:39:44+08:00", "subject": "Update EIP-8024: Switch to branchless normalization and extend EXCHANGE" }, { "blob": "380cb02832a6ed5310bfde51591e580ca6d1f3cd", "commit": "c0aa8d79038e0bf60ab8f15ff32ef17ba3b80882", "date": "2026-02-25T15:46:37Z", "subject": "Update EIP-8024: Document decoding range" }, { "blob": "7aa9a848e864147c34a5d9147ece9f9179d0ac70", "commit": "34b49095ca5f7343045da279f04e7ecd1e451393", "date": "2026-06-10T19:38:35Z", "subject": "Update EIP-8024: Fix typo" }, { "blob": "d9e7aebfcb8ef1a67e9f5564498dd605c022c30a", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "b15042f65157134c398a8dd0f2d6759893f2f81e", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8024_dupn_swapn_exchange", "title": "Backward Compatible SWAPN, DUPN, EXCHANGE" }, "8037": { "category": "Core", "deltas": [ { "blob": "3f4e3ece24e16596f3e8b93359060c612e9511a5", "candidates": [], "commit": "94796f65120a8a17d3488ba948eed522912bef99", "constants": [], "date": "2026-09-30T01:31:01-06:00", "diff": "diff --git a/EIPS/eip-8037.md b/EIPS/eip-8037.md\nindex 19bdfb4f..3f4e3ece 100644\n--- a/EIPS/eip-8037.md\n+++ b/EIPS/eip-8037.md\n@@ -2,7 +2,7 @@\n eip: 8037\n title: State Creation Gas Cost Increase\n description: Harmonization, increase and separate metering of state creation gas costs to mitigate state growth and unblock scaling\n-author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita)\n+author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8037-state-creation-gas-cost-increase/25694\n status: Review\n type: Standards Track\n", "order": 42, "subject": "Update EIP-8037: add Pawe\u0142 Bylica as co-author", "tokens": [], "window": [ { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" }, { "author_date": "2026-10-05T21:03:05-06:00", "commit": "3aa522b21576685fe780a884bed505a9de70ece8", "subject": "feat(tests): pin the EIP-8037 intrinsic execution gas cap (#3709)" }, { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-30T10:57:15+02:00", "commit": "98e5eac95c08d87ddb62b67ca23589b880574f6d", "subject": "feat(tests): cover EIP-8037 partial-reservoir new-account charge and precompile OOG after spill (#3673)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-22T11:36:46+02:00", "commit": "80354f6e7e9e4814a4c05b3f8a20c504f6bfd774", "subject": "feat(tests): EIP-8037 - no refill for failed creates onto alive accounts (#3529)" }, { "author_date": "2026-09-21T14:52:05+02:00", "commit": "c335bc4e9e99f7b91024d9033bdc89ce54394848", "subject": "feat(spec-specs,forks,tests): EIP-8037 - cap tx.gas at TX_MAX_TOTAL_GAS_LIMIT (2^32-1) (#3582)" }, { "author_date": "2026-09-17T07:16:52-06:00", "commit": "a9792ab73b8195d5a8dc24b2ef6cca7687cd6b2b", "subject": "feat(tests,specs): eip7928 extended coverage (#3566)" } ] }, { "blob": "4e0d8cb84d7604044a12638beb2d4460f92a124a", "candidates": [], "commit": "eb9f828d6d80800c9823b34d47b0c8e46e06c463", "constants": [], "date": "2026-10-02T07:56:25Z", "diff": "diff --git a/EIPS/eip-8037.md b/EIPS/eip-8037.md\nindex 3f4e3ece..4e0d8cb8 100644\n--- a/EIPS/eip-8037.md\n+++ b/EIPS/eip-8037.md\n@@ -2,7 +2,7 @@\n eip: 8037\n title: State Creation Gas Cost Increase\n description: Harmonization, increase and separate metering of state creation gas costs to mitigate state growth and unblock scaling\n-author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast)\n+author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast), Spencer Taylor-Brown (@spencer-tb)\n discussions-to: https://ethereum-magicians.org/t/eip-8037-state-creation-gas-cost-increase/25694\n status: Review\n type: Standards Track\n", "order": 43, "subject": "Update EIP-8037: add Spencer Taylor-Brown as co-author", "tokens": [], "window": [ { "author_date": "2026-10-15T16:18:15-06:00", "commit": "f5f512f6b9f2adf4f56a36fee4299a9488c52410", "subject": "feat(tests): check gas allowance against canonical order (#3827)" }, { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" }, { "author_date": "2026-10-05T21:03:05-06:00", "commit": "3aa522b21576685fe780a884bed505a9de70ece8", "subject": "feat(tests): pin the EIP-8037 intrinsic execution gas cap (#3709)" }, { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-30T10:57:15+02:00", "commit": "98e5eac95c08d87ddb62b67ca23589b880574f6d", "subject": "feat(tests): cover EIP-8037 partial-reservoir new-account charge and precompile OOG after spill (#3673)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-22T11:36:46+02:00", "commit": "80354f6e7e9e4814a4c05b3f8a20c504f6bfd774", "subject": "feat(tests): EIP-8037 - no refill for failed creates onto alive accounts (#3529)" }, { "author_date": "2026-09-21T14:52:05+02:00", "commit": "c335bc4e9e99f7b91024d9033bdc89ce54394848", "subject": "feat(spec-specs,forks,tests): EIP-8037 - cap tx.gas at TX_MAX_TOTAL_GAS_LIMIT (2^32-1) (#3582)" } ] }, { "blob": "85d6cfd7076fa9f7fea417e4010c73f5014a64a8", "candidates": [], "commit": "5d012887e611d295d800a2031f6af9119f4f0737", "constants": [], "date": "2026-10-02T10:23:34Z", "diff": "diff --git a/EIPS/eip-8037.md b/EIPS/eip-8037.md\nindex 4e0d8cb8..85d6cfd7 100644\n--- a/EIPS/eip-8037.md\n+++ b/EIPS/eip-8037.md\n@@ -2,7 +2,7 @@\n eip: 8037\n title: State Creation Gas Cost Increase\n description: Harmonization, increase and separate metering of state creation gas costs to mitigate state growth and unblock scaling\n-author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast), Spencer Taylor-Brown (@spencer-tb)\n+author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast), Spencer Taylor-Brown (@spencer-tb), Gary Rong (@rjl493456442)\n discussions-to: https://ethereum-magicians.org/t/eip-8037-state-creation-gas-cost-increase/25694\n status: Review\n type: Standards Track\n", "order": 44, "subject": "Update EIP-8037: add Gary Rong as co-author", "tokens": [], "window": [ { "author_date": "2026-10-15T16:18:15-06:00", "commit": "f5f512f6b9f2adf4f56a36fee4299a9488c52410", "subject": "feat(tests): check gas allowance against canonical order (#3827)" }, { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" }, { "author_date": "2026-10-05T21:03:05-06:00", "commit": "3aa522b21576685fe780a884bed505a9de70ece8", "subject": "feat(tests): pin the EIP-8037 intrinsic execution gas cap (#3709)" }, { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-30T10:57:15+02:00", "commit": "98e5eac95c08d87ddb62b67ca23589b880574f6d", "subject": "feat(tests): cover EIP-8037 partial-reservoir new-account charge and precompile OOG after spill (#3673)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-22T11:36:46+02:00", "commit": "80354f6e7e9e4814a4c05b3f8a20c504f6bfd774", "subject": "feat(tests): EIP-8037 - no refill for failed creates onto alive accounts (#3529)" }, { "author_date": "2026-09-21T14:52:05+02:00", "commit": "c335bc4e9e99f7b91024d9033bdc89ce54394848", "subject": "feat(spec-specs,forks,tests): EIP-8037 - cap tx.gas at TX_MAX_TOTAL_GAS_LIMIT (2^32-1) (#3582)" } ] }, { "blob": "c8bc85b0bf866089f84d0745769fd848733c2958", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-8037.md b/EIPS/eip-8037.md\nindex 85d6cfd7..c8bc85b0 100644\n--- a/EIPS/eip-8037.md\n+++ b/EIPS/eip-8037.md\n@@ -4,7 +4,8 @@ title: State Creation Gas Cost Increase\n description: Harmonization, increase and separate metering of state creation gas costs to mitigate state growth and unblock scaling\n author: Maria Silva (@misilva73), Carlos Perez (@CPerezz), Jochem Brouwer (@jochem-brouwer), Ansgar Dietrichs (@adietrichs), \u0141ukasz Rozmej (@LukaszRozmej), Anders Elowsson (@anderselowsson), Francesco D'Amato (@fradamt), Dragan Rakita (@rakita), Pawe\u0142 Bylica (@chfast), Spencer Taylor-Brown (@spencer-tb), Gary Rong (@rjl493456442)\n discussions-to: https://ethereum-magicians.org/t/eip-8037-state-creation-gas-cost-increase/25694\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-10-01\n", "order": 45, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-19T23:39:03-06:00", "commit": "33f74a6bbf2c09e897c621e1a7a4c4fa00f45d02", "subject": "fix(tests): align intrinsic gas cases with the threshold that binds (#3837)" }, { "author_date": "2026-10-18T23:58:23+02:00", "commit": "19d4a72a059a15e618c2dab2614b512099dcf215", "subject": "feat(test-fill): make engine_x fixtures consumable via devp2p sync (#3364)" }, { "author_date": "2026-10-15T16:18:15-06:00", "commit": "f5f512f6b9f2adf4f56a36fee4299a9488c52410", "subject": "feat(tests): check gas allowance against canonical order (#3827)" }, { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-10-07T14:32:04-06:00", "commit": "3d544d73f2e01a9b68c2bb3faf6afb45f012758b", "subject": "feat(test-types): relative balance and nonce post-state expectations (#3699)" }, { "author_date": "2026-10-05T21:03:05-06:00", "commit": "3aa522b21576685fe780a884bed505a9de70ece8", "subject": "feat(tests): pin the EIP-8037 intrinsic execution gas cap (#3709)" }, { "author_date": "2026-10-01T05:46:07+08:00", "commit": "c89559e3c12490b12f7d557b339ef969c3ce1449", "subject": "feat(tests): extend EIP-7708, EIP-8024 and EIP-8037 coverage (#3678)" }, { "author_date": "2026-09-30T10:57:15+02:00", "commit": "98e5eac95c08d87ddb62b67ca23589b880574f6d", "subject": "feat(tests): cover EIP-8037 partial-reservoir new-account charge and precompile OOG after spill (#3673)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" } ] } ], "eip": "8037", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "c8bc85b0bf866089f84d0745769fd848733c2958", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-8037.md", "pending": [], "pin": { "ambiguous": false, "blob": "19bdfb4f97064dfbeb3d41d31efac211265b49a6", "commit": "dbc6d457cbf90d5f9d55552f3fd91d58b88cc898", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8037_state_creation_gas_cost_increase/spec.py" }, "pin_history": [ { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "8ea50be3c640c2ce2be108fc634dc48a3d039cbd", "date": "2026-06-09T17:42:14+01:00", "files": [ "__init__.py", "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_block_2d_gas_accounting.py", "test_eip_mainnet.py", "test_state_gas_call.py", "test_state_gas_calldata_floor.py", "test_state_gas_create.py", "test_state_gas_delegation_pointer.py", "test_state_gas_fork_transition.py", "test_state_gas_multi_block.py", "test_state_gas_ordering.py", "test_state_gas_pricing.py", "test_state_gas_reservoir.py", "test_state_gas_selfdestruct.py", "test_state_gas_set_code.py", "test_state_gas_sstore.py" ], "pr": 2901, "release": "tests@v20.0.0", "subject": "feat(spec-specs, tests): merge EIP-8037 to `forks/amsterdam` (#2901)", "superseded": false }, { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "63f20af493acc2eb71f7542ce8bfe250e465c70c", "date": "2026-06-30T12:49:45-06:00", "files": [], "pr": 3018, "release": "tests@v20.0.0", "subject": "chore(tests,test-forks): Address #2990 review comments (pkgutil, type: ignore, Spec dataclass) (#3018)", "superseded": false }, { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "date": "2026-07-02T16:25:05-06:00", "files": [ "test_block_2d_gas_accounting.py", "test_state_gas_call.py", "test_state_gas_create.py", "test_state_gas_multi_block.py", "test_state_gas_selfdestruct.py", "test_state_gas_set_code.py", "test_state_gas_sstore.py" ], "pr": 3052, "release": "tests@v20.0.0", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)", "superseded": false }, { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "593078295684ff46f686607726d5a839d50b6205", "date": "2026-07-29T19:47:14+02:00", "files": [ "test_block_2d_gas_accounting.py", "test_state_gas_call.py", "test_state_gas_calldata_floor.py", "test_state_gas_create.py", "test_state_gas_fork_transition.py", "test_state_gas_multi_block.py", "test_state_gas_ordering.py", "test_state_gas_pricing.py", "test_state_gas_reservoir.py", "test_state_gas_selfdestruct.py", "test_state_gas_set_code.py", "test_state_gas_sstore.py" ], "pr": 3238, "release": "tests@v20.0.0", "subject": "refactor(spec-specs,tests): rename EIP-8037 regular gas to execution gas (#3238)", "superseded": false }, { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "d3a58bbcd7443755763a6199554b35862f07a94e", "date": "2026-07-30T17:45:35+08:00", "files": [ "test_state_gas_set_code.py" ], "pr": 3263, "release": "tests@v20.0.0", "subject": "refactor(spec-specs,tests): rename REGULAR_PER_AUTH_BASE_COST to EXECUTION_PER_AUTH_BASE_COST (#3263)", "superseded": false }, { "blob": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "date": "2026-08-05T11:10:01+02:00", "files": [], "pr": 3293, "release": "tests@v20.0.0", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)", "superseded": false }, { "blob": "5a8c80897aeb0952322cd0dfff767c541002b8c3", "commit": "50f3df9ece9b3c448146c39e08dfadeaf21c7351", "date": "2026-08-26T11:51:33+02:00", "files": [ "test_block_2d_gas_accounting.py", "test_eip_mainnet.py", "test_state_gas_delegation_pointer.py", "test_state_gas_fork_transition.py", "test_state_gas_selfdestruct.py" ], "pr": 3383, "release": "tests@v20.0.2", "subject": "refactor(tests): EIP-8037 test gas calculation logic and post state verification (#3383)", "superseded": false }, { "blob": "5a8c80897aeb0952322cd0dfff767c541002b8c3", "commit": "bb95255f8316e0bf25c4cab39514382c5b1d4d88", "date": "2026-09-10T12:38:23+01:00", "files": [ "eip_checklist_external_coverage.txt", "test_block_2d_gas_accounting.py", "test_state_gas_call.py", "test_state_gas_create.py", "test_state_gas_fork_transition.py", "test_state_gas_system_calls.py" ], "pr": 3524, "release": "tests@v20.0.2", "subject": "feat(tests): cover EIP-8037 system gas and code-deposit boundaries (#3524)", "superseded": false }, { "blob": "19bdfb4f97064dfbeb3d41d31efac211265b49a6", "commit": "c335bc4e9e99f7b91024d9033bdc89ce54394848", "date": "2026-09-21T20:52:05+08:00", "files": [ "test_block_2d_gas_accounting.py", "test_state_gas_fork_transition.py" ], "pr": 3582, "release": "tests@v21.0.0", "subject": "feat(spec-specs,forks,tests): EIP-8037 - cap tx.gas at TX_MAX_TOTAL_GAS_LIMIT (2^32-1) (#3582)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "tests@v20.0.1": "a12902ae1b811c45a81b51bfce671cf7a1fb27f3", "tests@v20.0.2": "5a8c80897aeb0952322cd0dfff767c541002b8c3", "tests@v21.0.0": "19bdfb4f97064dfbeb3d41d31efac211265b49a6", "tests@v21.0.1": "19bdfb4f97064dfbeb3d41d31efac211265b49a6", "tests@v21.0.2": "19bdfb4f97064dfbeb3d41d31efac211265b49a6" }, "revisions": [ { "blob": "80e29ecea5e8b619e0bb3ace2843dc74f284a1f1", "commit": "65d177d431638639d35897d6e869301a5ea8a02c", "date": "2026-09-04T05:16:08-06:00", "subject": "Update EIP-8037: restore a frame's state-gas on rollback" }, { "blob": "03dda821afa5926c0a9e9feadab1687dbb360558", "commit": "58596a9911b945fc855caa80a904c5b3f4c4f254", "date": "2026-09-04T05:21:02-06:00", "subject": "Update EIP-8037: remove the duplicated calldata floor note" }, { "blob": "0e3ee284334054be73cb1133866a632cf990bf27", "commit": "c406bdb2ffbf2fbf9d85698e97b3b2e8b6e79112", "date": "2026-09-04T05:22:38-06:00", "subject": "Update EIP-8037: correct the general state-gas charge timing" }, { "blob": "7737c6eb3c3f03dfe9cafe5de445e79a41a4cfb7", "commit": "3ff5cff17a11ab31273ee14ebea0df8bbc4f4aef", "date": "2026-09-04T11:46:11Z", "subject": "Update EIP-8037: return state-gas to gas_left when a child merges" }, { "blob": "e9b489e9b680ecb0a7d6eb4d74151ac8bbefaefa", "commit": "052029f3625328d6f51dec8e62a7090201e66f17", "date": "2026-09-04T12:01:07Z", "subject": "Update EIP-8037: remove unused evm_execution_gas_used counter" }, { "blob": "30a13bfc817003a1acb7b99a337c84edafdefc5f", "commit": "9dcd72754f3fe4b48a4dbeffee669dc4c60f7ec5", "date": "2026-09-14T07:01:56-06:00", "subject": "Update EIP-8037: keep pre-execution state-gas out of the frame rollback" }, { "blob": "a89c58734eca42812f80d45fe7133b7dd4d8c206", "commit": "d7087803ca236498c73f64665df0ddac7d621950", "date": "2026-09-14T07:03:29-06:00", "subject": "Update EIP-8037: cap the transaction gas limit at 2^32-1" }, { "blob": "19bdfb4f97064dfbeb3d41d31efac211265b49a6", "commit": "dbc6d457cbf90d5f9d55552f3fd91d58b88cc898", "date": "2026-09-18T04:41:31-06:00", "subject": "Update EIP-8037: remove stale EIP-7610 collision rules" }, { "blob": "3f4e3ece24e16596f3e8b93359060c612e9511a5", "commit": "94796f65120a8a17d3488ba948eed522912bef99", "date": "2026-09-30T01:31:01-06:00", "subject": "Update EIP-8037: add Pawe\u0142 Bylica as co-author" }, { "blob": "4e0d8cb84d7604044a12638beb2d4460f92a124a", "commit": "eb9f828d6d80800c9823b34d47b0c8e46e06c463", "date": "2026-10-02T07:56:25Z", "subject": "Update EIP-8037: add Spencer Taylor-Brown as co-author" }, { "blob": "85d6cfd7076fa9f7fea417e4010c73f5014a64a8", "commit": "5d012887e611d295d800a2031f6af9119f4f0737", "date": "2026-10-02T10:23:34Z", "subject": "Update EIP-8037: add Gary Rong as co-author" }, { "blob": "c8bc85b0bf866089f84d0745769fd848733c2958", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8037_state_creation_gas_cost_increase", "title": "State Creation Gas Cost Increase" }, "8038": { "category": "Core", "deltas": [ { "blob": "94a7a4f13126d591c665bc75ae2cbb98ac5a851d", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-8038.md b/EIPS/eip-8038.md\nindex f8353146..94a7a4f1 100644\n--- a/EIPS/eip-8038.md\n+++ b/EIPS/eip-8038.md\n@@ -4,7 +4,8 @@ title: State-access gas cost update\n description: Increases the gas cost of state-access operations to reflect Ethereum\u2019s larger state\n author: Maria Silva (@misilva73), Wei Han Ng (@weiihann), Ansgar Dietrichs (@adietrichs)\n discussions-to: https://ethereum-magicians.org/t/eip-8038-state-access-gas-cost-update/25693\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2025-10-03\n", "order": 24, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" } ] }, { "blob": "e4d626af391afa0abdd36651625f319bac2b19d8", "candidates": [], "commit": "8b1cae50601fb194452db0ed857f4c237ca62c1f", "constants": [ { "after": [ "max(0" ], "before": [], "name": "ACCOUNT_WRITE" }, { "after": [ "max(0" ], "before": [], "name": "STORAGE_WRITE" } ], "date": "2026-10-15T14:33:13Z", "diff": "diff --git a/EIPS/eip-8038.md b/EIPS/eip-8038.md\nindex 94a7a4f1..e4d626af 100644\n--- a/EIPS/eip-8038.md\n+++ b/EIPS/eip-8038.md\n@@ -143,9 +143,7 @@ The cases for account-related operations and their corresponding cost components\n \n ### Empirical Estimation of Gas Costs\n \n-#### Selecting which Operations to Reprice\n-\n-The parameters selected for repricing in this EIP were chosen based on the estimated million gas per second (Mgas/s) performance of their respective operations. For this EIP, a performance target of **100 million gas per second** is chosen. With this performance target, we will be able to increase the base throughput of the chain by a factor of 5 from our current 20 Mgas/s performance.\n+The [supporting gas cost report](../assets/eip-8038/gas-cost-report.md) contains the latest evm-gasfit runtime and glue-opcode reports, the gas estimates converted at 75 Mgas/s, and a comparison with the values selected in this EIP.\n \n #### Data Collection\n \n@@ -161,19 +159,18 @@ All benchmarks were run on top of a snapshot with the same size as mainnet in Ma\n \n Ultimately, we require a single cost model that is independent of the client's implementation. Although the decision may be different in a specific situation, the general rule is to take the worst client result that cannot be optimized. This means that the worst-performing client on a given operation and resource combination will define the cost of that operation for the entire network. This is the safer and most conservative choice.\n \n+The [supporting report](../assets/eip-8038/gas-cost-report.md#relationship-to-the-eip-values) documents how the gas costs of each client compare with the final proposed values in this EIP.\n+\n #### Runtime Estimation\n \n To estimate the runtime of a single operation from the total execution time of the corresponding synthetic blocks, a **Non-Negative Least Squares Linear Regression** is used. This model enforces that all coefficients are non-negative, thus ensuring execution time cannot be negative. The model estimates runtime as a linear combination of:\n \n - **Constant term (intercept)**: Base overhead for executing the test, which includes setup and tear-down time\n - **Operation count (slope)**: Number of times the operation is executed in the test. This parameter is the one that allows us to estimate the per-operation runtime.\n-- **Operation-specific parameters (e.g., update)**: Extra per-operation runtime contributed by an additional, operation-specific binary or numeric input (e.g., whether a `CALL` is made with value, or whether the `SSTORE` writes a new value). The `update` coefficient gives the marginal runtime added per execution for storage writes.\n \n-For simple operations (i.e., without additional parameters), the model estimates: `runtime = intercept + slope \u00d7 operation_count`\n+The model estimates: `runtime = intercept + slope \u00d7 operation_count`\n \n-For variable operations, the model estimates: `runtime = intercept + slope \u00d7 operation_count + param1_coef \u00d7 operation_count \u00d7 param1 + param2_coef \u00d7 operation_count \u00d7 param2 + ...`\n-\n-Independent models are created for each client, operations, and configuration. Only operations and parameters with good model fits (R-squared > 0.5 and p-value < 0.05) are included in the gas cost proposal to ensure the reliability of the estimates.\n+Independent models are created for each client, operation, and configuration. Only operations and parameters with good model fits (R\u00b2 \u2265 0.5 and p-value < 0.05) are included in the gas cost proposal to ensure the reliability of the estimates. The results of all the regression models can be found in the [runtime estimation report](../assets/eip-8038/runtime_estimation_autogenerated_report.md).\n \n **Glue opcode adjustment**\n \n@@ -188,41 +185,52 @@ Where, for each glue opcode `i`:\n - `ratio_i` is the number of executions of glue opcode `i` per execution of the target opcode in the benchmark test.\n - `glue_runtime_i` is the estimated per-execution runtime of glue opcode `i`, taken from its own regression model.\n \n-Only glue opcodes with a statistically significant fit (p-value < 0.05) are included. The adjusted slope is clipped to a minimum of zero.\n+A glue opcode contribution is subtracted only if its fit has a p-value below 0.05 and R\u00b2 of at least 0.5. Contributions from fits that fail either threshold remain in the target runtime estimate. The adjusted slope is clipped to a minimum of zero. The results of glue adjustment estimation can be found in the [dedicated report](../assets/eip-8038/glue_opcodes_autogenerated_report.md).\n \n **Parameter mapping**\n \n-Each gas parameter is derived from one or more benchmark models by selecting a specific regression coefficient (`slope` or `update`) after applying the relevant filters (test name, cache strategy, account mode). The two coefficients correspond directly to the two cost components this EIP prices: the `slope` measures the cost of loading the object from the database (the access component), while the `update` coefficient measures the marginal cost of changing its value (the write component). The state-creation component is not estimated from runtime at all \u2014 it prices durable state growth rather than execution time \u2014 which is why it is derived separately in [EIP-8037](./eip-8037.md) and left unchanged here.\n+Each gas parameter is derived from one or more benchmark models by selecting its slope after applying the relevant filters (test name, cache strategy, account mode). Access cases and combined access and write cases are fitted separately. Their slopes, after glue adjustment, estimate access costs and combined access and write costs. The write cost is derived by subtraction. The state-creation component is not estimated from runtime at all \u2014 it prices durable state growth rather than execution time \u2014 which is why it is derived separately in [EIP-8037](./eip-8037.md) and left unchanged here.\n \n For each parameter and client, the worst-case value across all matching model configurations is used. The final proposal takes the worst case across clients.\n \n The following table lists the directly estimated parameters and their mapping to the regression models:\n \n-| Test name | Configuration | Model | Parameter mapping |\n-| :---: | :---: | :---: | :---: |\n-| `test_account_access` | `CacheStrategy = NO_CACHE` | runtime = intercept + slope \u00d7 operation_count + update \u00d7 value_sent x operation_count | `slope` \u2192 `COLD_ACCOUNT_ACCESS`; `update` \u2192 `ACCOUNT_WRITE` |\n-| `test_sload_bloated` | `CacheStrategy = NO_CACHE` | runtime = intercept + slope \u00d7 operation_count | `slope` \u2192 `COLD_STORAGE_ACCESS` |\n-| `test_sstore_bloated` | `CacheStrategy = NO_CACHE` | runtime = intercept + slope \u00d7 operation_count + update \u00d7 write_new_value x operation_count | `slope` \u2192 `COLD_STORAGE_ACCESS`; `update` \u2192 `STORAGE_WRITE` |\n-| `test_sload_same_key_benchmark` | \u2014 | runtime = intercept + slope \u00d7 operation_count | `slope` \u2192 `WARM_ACCESS` |\n-| `test_ext_account_query_warm` | \u2014 | runtime = intercept + slope \u00d7 operation_count | `slope` \u2192 `WARM_ACCESS` |\n+| Test name | Configuration | Parameter mapping |\n+| :---: | :---: | :---: |\n+| `test_account_access` | `CacheStrategy = NO_CACHE`, `value_sent = 0` | slope \u2192 `COLD_ACCOUNT_ACCESS` |\n+| `test_account_access` | `CacheStrategy = NO_CACHE`, `value_sent = 1` | slope \u2192 `COLD_ACCOUNT_WRITE`; subtract access estimates to derive `ACCOUNT_WRITE` |\n+| `test_sload_bloated` | `CacheStrategy = NO_CACHE` | slope \u2192 `COLD_STORAGE_ACCESS` |\n+| `test_sstore_bloated` | `CacheStrategy = NO_CACHE`, `write_new_value = False` | slope \u2192 `COLD_STORAGE_ACCESS` |\n+| `test_sstore_bloated` | `CacheStrategy = NO_CACHE`, `write_new_value = True` | slope \u2192 `COLD_STORAGE_WRITE`; subtract access to derive `STORAGE_WRITE` |\n+| `test_sload_same_key_benchmark` | \u2014 | slope \u2192 `WARM_ACCESS` |\n+| `test_ext_account_query_warm` | \u2014 | slope \u2192 `WARM_ACCESS` |\n \n `test_sstore_bloated` and `test_sload_bloated` targeted a bespoke contract with a storage size of 10 gigabytes, which is the size of the largest mainnet contract.\n \n #### Conversion to gas costs\n \n-New gas costs are calculated using the same target performance of 100 Mgas/s. The formula used is:\n+New gas costs are calculated using the target performance of 75 Mgas/s. The formula used is:\n \n ```\n-new_gas = (anchor_rate * runtime_ms) / 1000\n+raw_gas = ceil(anchor_rate * runtime_ms / 1000)\n ```\n \n Where:\n \n-- `anchor_rate` is the target performance expressed in gas per second (e.g., `100_000_000` for a 100 Mgas/s target).\n+- `anchor_rate` is the target performance expressed in gas per second (e.g., `75_000_000` for the 75 Mgas/s target).\n - `runtime_ms` is the estimated runtime per operation, in milliseconds, taken from the regression models (the `adjusted_slope` defined above).\n - The factor `1000` converts `runtime_ms` from milliseconds to seconds, so that the product with `anchor_rate` (gas/second) yields a result in gas units.\n \n-**Derived parameters** are computed from the directly estimated ones:\n+The raw estimate uses the unrounded runtime and is rounded up to a whole gas unit. The two raw write costs are then derived from the rounded estimates:\n+\n+```\n+STORAGE_WRITE = max(0, COLD_STORAGE_WRITE - COLD_STORAGE_ACCESS)\n+ACCOUNT_WRITE = max(0,\n+ COLD_ACCOUNT_CODE_WRITE - COLD_ACCOUNT_CODE_ACCESS,\n+ COLD_ACCOUNT_NOCODE_WRITE - COLD_ACCOUNT_NOCODE_ACCESS)\n+```\n+\n+The following parameters use the values selected for the EIP:\n \n ```\n STORAGE_CLEAR_REFUND = (STORAGE_WRITE + COLD_STORAGE_ACCESS) * (4800/5000)\n@@ -231,7 +239,7 @@ ACCESS_LIST_ADDRESS_COST = COLD_ACCOUNT_ACCESS - WARM_ACCESS\n CREATE_ACCESS = ACCOUNT_WRITE + COLD_ACCOUNT_ACCESS\n ```\n \n-The two access-list parameters price the same database load as their cold counterparts, so they are derived from those cold costs. `WARM_ACCESS` is subtracted because a slot or account named in the access list is already warm when the transaction touches it and is therefore still charged `WARM_ACCESS` at that point: prepaying via the access list must not cost more in access gas than taking the cold access. Without the subtraction, an access-list entry that is used exactly once would cost `COLD_ACCESS + WARM_ACCESS` in access gas, making the list strictly more expensive than not using it. The invariant covers the access component only; charges that other EIPs levy on the access list's bytes, such as floor costs, fall outside it.\n+The two access-list parameters price the same database load as their cold counterparts, so they are derived from those cold costs. `WARM_ACCESS` is subtracted because a slot or account named in the access list is already warm when the transaction touches it and is therefore still charged `WARM_ACCESS` at that point: prepaying via the access list must not cost more in access gas than taking the cold access. Without the subtraction, an access-list entry that is used exactly once would cost `COLD_ACCESS + WARM_ACCESS` in access gas, making the list strictly more expensive than not using it.\n \n ### Interaction with [EIP-7928](./eip-7928.md)\n \n", "order": 25, "subject": "Update EIP-8038: Expand gas estimation methodology and add supporting reports", "tokens": [ "runtime = intercept + slope \u00d7 operation_count", "test_account_access", "CacheStrategy = NO_CACHE", "value_sent = 0", "COLD_ACCOUNT_ACCESS", "value_sent = 1", "COLD_ACCOUNT_WRITE", "ACCOUNT_WRITE", "test_sload_bloated", "COLD_STORAGE_ACCESS", "test_sstore_bloated", "write_new_value = False", "write_new_value = True", "COLD_STORAGE_WRITE", "STORAGE_WRITE", "test_sload_same_key_benchmark", "WARM_ACCESS", "test_ext_account_query_warm", "anchor_rate", "75_000_000", "\nSTORAGE_WRITE = max(0, COLD_STORAGE_WRITE - COLD_STORAGE_ACCESS)\nACCOUNT_WRITE = max(0,\n COLD_ACCOUNT_CODE_WRITE - COLD_ACCOUNT_CODE_ACCESS,\n COLD_ACCOUNT_NOCODE_WRITE - COLD_ACCOUNT_NOCODE_ACCESS)\n", "\n\nThe following parameters use the values selected for the EIP:\nThe two access-list parameters price the same database load as their cold counterparts, so they are derived from those cold costs. ", " is subtracted because a slot or account named in the access list is already warm when the transaction touches it and is therefore still charged ", " at that point: prepaying via the access list must not cost more in access gas than taking the cold access. Without the subtraction, an access-list entry that is used exactly once would cost " ], "window": [] }, { "blob": "a1c73c4f5bffc6b4ed69556c497fec6c3d24e287", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-8038.md b/EIPS/eip-8038.md\nindex e4d626af..a1c73c4f 100644\n--- a/EIPS/eip-8038.md\n+++ b/EIPS/eip-8038.md\n@@ -1,7 +1,7 @@\n ---\n eip: 8038\n-title: State-access gas cost update\n-description: Increases the gas cost of state-access operations to reflect Ethereum\u2019s larger state\n+title: State-Access Gas Cost Update\n+description: Increases the gas cost of state-access operations to reflect Ethereum's larger state\n author: Maria Silva (@misilva73), Wei Han Ng (@weiihann), Ansgar Dietrichs (@adietrichs)\n discussions-to: https://ethereum-magicians.org/t/eip-8038-state-access-gas-cost-update/25693\n status: Last Call\n", "order": 26, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "8038", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "a1c73c4f5bffc6b4ed69556c497fec6c3d24e287", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8038.md", "pending": [], "pin": { "ambiguous": false, "blob": "f83531466a3862853424a81d000727b3043ef2cc", "commit": "4c7e2487e4da3131bcadc7399f8b153f5344c0b7", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8038_state_access_gas_cost_increase/spec.py" }, "pin_history": [ { "blob": "a8862ae6653a12a2989b64a50eca5334cfe8b3cb", "commit": "2dfaa3e9b17d74ea5c16f752326ff11b3a510bdc", "date": "2026-07-02T16:25:05-06:00", "files": [ "__init__.py", "test_access_list_gas.py", "test_call_gas.py", "test_create_gas.py", "test_eip_mainnet.py", "test_exact_balance_no_fallback.py", "test_ext_code_opcodes_gas.py", "test_fork_transition.py", "test_selfdestruct_gas.py", "test_set_code_auth_gas.py", "test_set_code_auth_refunds.py", "test_sload_gas.py", "test_sstore_gas.py", "test_sstore_refunds.py", "test_transient_storage_regression.py" ], "pr": 3052, "release": "tests@v20.0.1", "subject": "feat(spec-specs,test-tests): add EIP-2780 and EIP-8038 (#3052)", "superseded": false }, { "blob": "fc2322854d047ba1fd6e3ae9e61fb7a915535cb7", "commit": "7b6aed29c90bc0e8e99078044cc0a1474adcba76", "date": "2026-08-05T11:10:01+02:00", "files": [ "test_call_gas.py", "test_create_gas.py", "test_exact_balance_no_fallback.py", "test_fork_transition.py", "test_selfdestruct_gas.py", "test_sload_gas.py", "test_sstore_gas.py", "test_sstore_refunds.py" ], "pr": 3293, "release": "tests@v20.0.2", "subject": "feat(spec-specs,tests): apply revised EIP-8038 gas values (#3293)", "superseded": false }, { "blob": "f83531466a3862853424a81d000727b3043ef2cc", "commit": "d90f3975bd2713afe992df075ccd71664b1185a2", "date": "2026-09-22T20:47:44+02:00", "files": [ "__init__.py", "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_access_list_gas.py", "test_call_gas.py", "test_create_gas.py", "test_eip_mainnet.py", "test_exact_balance_no_fallback.py", "test_ext_code_opcodes_gas.py", "test_fork_transition.py", "test_selfdestruct_gas.py", "test_set_code_auth_gas.py", "test_set_code_auth_refunds.py", "test_sload_gas.py", "test_sstore_gas.py", "test_sstore_refunds.py", "test_sstore_refunds_revert.py", "test_transient_storage_regression.py" ], "pr": 3613, "release": "tests@v21.0.0", "subject": "feat(tests): improve EIP-8038 coverage, checklist, and ref-spec pin (#3613)", "superseded": false } ], "release_pins": { "tests@v20.0.1": "a8862ae6653a12a2989b64a50eca5334cfe8b3cb", "tests@v20.0.2": "fc2322854d047ba1fd6e3ae9e61fb7a915535cb7", "tests@v21.0.0": "f83531466a3862853424a81d000727b3043ef2cc", "tests@v21.0.1": "f83531466a3862853424a81d000727b3043ef2cc", "tests@v21.0.2": "f83531466a3862853424a81d000727b3043ef2cc" }, "revisions": [ { "blob": "0f06f410687ff9390f3cff6fc1db7cb0a0ab8088", "commit": "2e7e88bb8dc0ead4db7726ac6af89f576c221d93", "date": "2026-07-09T16:33:20Z", "subject": "Update EIP-2780: align with recent EIP-2780 changes" }, { "blob": "47503e42bb2f7acaf4b85cc9dc19564d78e1b9a9", "commit": "91d413a9e9aaad785f1986c4a9b2903a7d5dca6b", "date": "2026-07-22T16:01:07Z", "subject": "Update EIP-8038: document parameter provenance and drop EIP-7904 from requires" }, { "blob": "24cce57000e626ecbce896af21b673c0337fb42d", "commit": "b7491982cec3657684e3047f9647b4c60fc23d4d", "date": "2026-07-29T16:10:57Z", "subject": "Update EIP-8038: restate the gas schedule as an access/write/creation component model" }, { "blob": "ffb95755742531c70616ef68dd3e293e5d8c1b80", "commit": "0a1d42b3c7a455cd812ce73b4b937c16d6f20bd6", "date": "2026-07-30T12:54:28Z", "subject": "Update EIP-2780: Move to Review" }, { "blob": "2f6a3ad137399b25aa8028698f42c8eaaace660f", "commit": "341f3f8266d6cff87bce56c81bb3b2a740d42f6b", "date": "2026-07-31T12:28:35Z", "subject": "Update EIP-8038: derive access list costs from cold access costs" }, { "blob": "fc2322854d047ba1fd6e3ae9e61fb7a915535cb7", "commit": "8331fb3eed0a5366b28b25a016f1ad04fac0fa8e", "date": "2026-08-04T12:14:19Z", "subject": "Update EIP-2780: revise COLD_STORAGE_ACCESS and ACCOUNT_WRITE values" }, { "blob": "51f61a912d535fadd89112b14fe032c40ca54bc9", "commit": "286a88e75f7bb301ba58e534e3484aae86001ed2", "date": "2026-09-14T08:55:07-06:00", "subject": "Update EIP-8038: Preserve the warm SELFDESTRUCT access exemption" }, { "blob": "a3f1333eba8c0b950d36399a4648ebbd28c014ab", "commit": "1bbccfb3b9dd06d3b5668792eb8185d309b6e407", "date": "2026-09-15T14:16:55Z", "subject": "Update EIP-8038: clarify charge attribution and component definitions" }, { "blob": "f83531466a3862853424a81d000727b3043ef2cc", "commit": "4c7e2487e4da3131bcadc7399f8b153f5344c0b7", "date": "2026-09-18T01:10:36-06:00", "subject": "Update EIP-8038: use execution-gas wording, fix the CALLCODE creation cell and a stale benchmark test name" }, { "blob": "94a7a4f13126d591c665bc75ae2cbb98ac5a851d", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "e4d626af391afa0abdd36651625f319bac2b19d8", "commit": "8b1cae50601fb194452db0ed857f4c237ca62c1f", "date": "2026-10-15T14:33:13Z", "subject": "Update EIP-8038: Expand gas estimation methodology and add supporting reports" }, { "blob": "a1c73c4f5bffc6b4ed69556c497fec6c3d24e287", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8038_state_access_gas_cost_increase", "title": "State-Access Gas Cost Update" }, "8045": { "category": "Core", "checked": "tests/amsterdam/eip8045_*", "deltas": [], "eip": "8045", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "e1e2887cf958f03d25096aa03621f9e2cc1ad311", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8045.md", "pending": [], "pin": null, "revisions": [ { "blob": "7a79332f1b5e09d02edc33aab1a6c8901ff15bb2", "commit": "414a8404198c5afaa3cfed10a385a9aae1dfaae3", "date": "2025-10-21T23:04:01+08:00", "subject": "Add EIP: Exclude slashed validators from proposing" }, { "blob": "d38ce1654ef7cb0bba89802339c55438ea1c72e7", "commit": "fd5e8784b7c1c655054a7ba8e41793458feeed57", "date": "2026-07-30T01:24:23+08:00", "subject": "Update EIP-8045: Move to Review" }, { "blob": "cb587d68f0d79b003ac5446243f45e9bc88bceda", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "e1e2887cf958f03d25096aa03621f9e2cc1ad311", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Exclude Slashed Validators from Proposing" }, "8061": { "category": "Core", "checked": "tests/amsterdam/eip8061_*", "deltas": [], "eip": "8061", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "dadac31f4d7dfb97ff3cbdadf8c6997715ed3c87", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8061.md", "pending": [], "pin": null, "revisions": [ { "blob": "4c7de071cdd38db3cfc8939bed7e6143983f9e1e", "commit": "5f6918c73ae7526eed55083889124a1c4063d5b6", "date": "2025-10-29T10:01:56+08:00", "subject": "Add EIP: Increase churn limits" }, { "blob": "e411a520c8bbadc0737322e1f310051309cbbfd6", "commit": "98ac01edc3fbcd16e9856b172f0c6b4f9a2c29c2", "date": "2025-11-10T14:10:24Z", "subject": "Update EIP-8061: bring back deposit cap and let exits use the consolidation queue" }, { "blob": "af7cf7f6b651dc0e6328d7ba8b7b7d08ced48e92", "commit": "01f15c37c64114c478cb1136e0a6966084e4db14", "date": "2025-12-01T23:44:59Z", "subject": "Update EIP-8061: remove the overlap with EIP-8080" }, { "blob": "0f9092a01e2f7f4c2d62ded41bd730774d865425", "commit": "b282adbbc56828f6b07fe70555c0cd4783b28272", "date": "2026-07-30T15:31:25Z", "subject": "Update EIP-8061: Move to Review" }, { "blob": "6cfa9a34c77580ed47a1f2fd57d81596265dba0d", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "dadac31f4d7dfb97ff3cbdadf8c6997715ed3c87", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Increase Exit and Consolidation Churn" }, "8070": { "category": "Networking", "deltas": [ { "blob": "b65cda59d5a99acb3d20aef088630c9c4f7220f1", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-8070.md b/EIPS/eip-8070.md\nindex 5f1154bd..b65cda59 100644\n--- a/EIPS/eip-8070.md\n+++ b/EIPS/eip-8070.md\n@@ -4,7 +4,8 @@ title: eth/72 - Sparse Blobpool\n description: Introduce custody-aligned sampling in the EL blobpool to vacate bandwidth\n author: Ra\u00fal Kripalani (@raulk), Bosul Mun (@healthykim), Francesco D'Amato (@fradamt), Csaba Kiraly (@cskiraly), Felix Lange (@fjl), Marios Ioannou (@mariosioannou-create), Alex Stokes (@ralexstokes), Kamil Salakhiev (@kamilsa)\n discussions-to: https://ethereum-magicians.org/t/eip-8070-sparse-blobpool/26023\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Networking\n created: 2025-10-29\n", "order": 8, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-09-28T04:25:22+02:00", "commit": "2b19bf5fa4969dcad3a3fa1b7fa997416a03f5bf", "subject": "feat(tests): cover a null EIP-8070 custodyColumns and repin to the current EIP blob (#3622)" } ] } ], "eip": "8070", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "b65cda59d5a99acb3d20aef088630c9c4f7220f1", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-8070.md", "pending": [], "pin": { "ambiguous": false, "blob": "5f1154bdeba6fb473a49dbbb430383fa71bc5b3f", "commit": "23664b952e844057bc9814cc7a81978b3b80435b", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8070_sparse_blobpool/spec.py" }, "pin_history": [ { "blob": "64d1b463e1c75884c995f81d8ffab40401acbcaa", "commit": "3ae3d66cc2b3fd448a9578e58fb49bbae30752eb", "date": "2026-07-29T19:48:44+02:00", "files": [ "__init__.py", "conftest.py", "test_custody_columns.py", "test_get_cells.py" ], "pr": 2948, "release": null, "subject": "feat(tests): implement eip-8070 sparse blob pool tests (#2948)", "superseded": true }, { "blob": "43c7af020f1641924bed60565fde86f6ad3469df", "commit": "a2936ed61f8e8424d91acef49dbf27fe8c0cd09c", "date": "2026-08-12T16:48:02-06:00", "files": [ "test_get_cells.py" ], "pr": 3359, "release": "tests@v20.0.2", "subject": "fix(tests): use well-formed versioned hashes in getBlobs negative tests (#3359)", "superseded": false }, { "blob": "5f1154bdeba6fb473a49dbbb430383fa71bc5b3f", "commit": "2b19bf5fa4969dcad3a3fa1b7fa997416a03f5bf", "date": "2026-09-28T10:25:22+08:00", "files": [ "test_custody_columns.py" ], "pr": 3622, "release": "tests@v21.0.1", "subject": "feat(tests): cover a null EIP-8070 custodyColumns and repin to the current EIP blob (#3622)", "superseded": false } ], "release_pins": { "tests@v20.0.2": "43c7af020f1641924bed60565fde86f6ad3469df", "tests@v21.0.0": "43c7af020f1641924bed60565fde86f6ad3469df", "tests@v21.0.1": "5f1154bdeba6fb473a49dbbb430383fa71bc5b3f", "tests@v21.0.2": "5f1154bdeba6fb473a49dbbb430383fa71bc5b3f" }, "revisions": [ { "blob": "2312446758183e02b7ff51cffa0b10ea12e60ca2", "commit": "14c7ad3c5742a619985020e66a3336b24c83d039", "date": "2025-10-31T08:20:43+08:00", "subject": "Add EIP: Sparse Blobpool" }, { "blob": "8dc357f58ac4f4880c980256293cc8e86315f713", "commit": "66ad6b9a9f750e8e4f742ffe83fd38fa65f26da8", "date": "2026-04-09T06:32:24Z", "subject": "Update EIP-8070: Remove per-request column cap" }, { "blob": "8cd4c0c47eec4d8bc632963a63c9728259d75ccd", "commit": "255e414069dd4e4f707c136d5923103251ab865e", "date": "2026-04-15T11:59:40Z", "subject": "Update EIP-8070: Rename protocol version to eth/72 and fix typos" }, { "blob": "45ec9a77febb61664714b7ff49ae8e62479b87c6", "commit": "ea725b44a1ab60147814f8f0ddd5e26f74ce0643", "date": "2026-04-16T23:16:04+08:00", "subject": "Update EIP-8070: Prefix title with eth/72 protocol version" }, { "blob": "40f0307f2eaa983df3cd902af89b013139ea5824", "commit": "64d1b463e1c75884c995f81d8ffab40401acbcaa", "date": "2026-05-20T02:24:18+08:00", "subject": "Update EIP-8070: Update EIP-8070" }, { "blob": "11e6fff14a76b034142398e496e1c654af9f6ec2", "commit": "43c7af020f1641924bed60565fde86f6ad3469df", "date": "2026-08-05T01:50:53Z", "subject": "Update EIP-8070: Move to Review" }, { "blob": "7da52f3ce08264ceb70a07c05aad53acbfa87c20", "commit": "f516cef8b482bf123d554ee12ff5b421f5578d38", "date": "2026-08-12T21:26:48+08:00", "subject": "Update EIP-8070: Clarify custodyColumns `null` behavior" }, { "blob": "5f1154bdeba6fb473a49dbbb430383fa71bc5b3f", "commit": "23664b952e844057bc9814cc7a81978b3b80435b", "date": "2026-08-24T06:23:35-06:00", "subject": "Update EIP-8070: clarify RLP empty-list encoding" }, { "blob": "b65cda59d5a99acb3d20aef088630c9c4f7220f1", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8070_sparse_blobpool", "title": "eth/72 - Sparse Blobpool" }, "8136": { "category": "Networking", "checked": "tests/amsterdam/eip8136_*", "deltas": [], "eip": "8136", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "63ceeb9c08554e0c7d978bb68917043cd89c6408", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8136.md", "pending": [], "pin": null, "revisions": [ { "blob": "abe460c75c7aea53937e7fcd6bcc0b05b833592d", "commit": "49beda901dcf3747ed4b91f853a333595fb2cbc4", "date": "2026-02-28T17:53:33+08:00", "subject": "Add EIP: Cell-Level Deltas for Data Column Broadcast" }, { "blob": "e973ab63e4a6721409792d8d6e5d9a897082754f", "commit": "72c7fe56093b471a06f4ec857ce7a9d3c0ddd587", "date": "2026-08-12T00:53:31+08:00", "subject": "Update EIP-8136: Move to Review" }, { "blob": "f0fc428cd7445fbae69f13cb0e7ac4e2f72c19c4", "commit": "a5e98381530d26848d456c2d3eaca733b5e6df8a", "date": "2026-08-19T09:33:45-04:00", "subject": "Update EIP-8136: add Aarsh Shah to authors (#12191)" }, { "blob": "b5c7430adddf43f5c7381c95131a2c6be099a6b5", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "63ceeb9c08554e0c7d978bb68917043cd89c6408", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Cell-Level Deltas for Data Column Broadcast" }, "8159": { "category": "Networking", "checked": "tests/amsterdam/eip8159_*", "deltas": [], "eip": "8159", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "70aa972709bc179e97f55423c035ac8823ee0e8c", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-8159.md", "pending": [], "pin": null, "revisions": [ { "blob": "9513df472b688a8d7639c8a3d8e31fa5e6cb32be", "commit": "13695a8e41a46705ee962c72d0304abdb18d6c92", "date": "2026-02-15T19:04:54+08:00", "subject": "Add EIP: eth/71 - Block Access List Exchange" }, { "blob": "4a5751f1c6a3fb986799e4e385313626dddb5f57", "commit": "1aeb2412a5ce73847a36825682a3d10da575f145", "date": "2026-03-11T21:19:16+08:00", "subject": "Update EIP-8159: clarify resp size cap (10MiB -> 2MiB soft cap)" }, { "blob": "3bc70f7ad9d3af1ca74b73bd39c25944b9ac03a0", "commit": "dce42b99fe0f94423955e2d316fd1b8138e80291", "date": "2026-04-21T20:52:40+08:00", "subject": "Update EIP-8159: Correct empty bal response to 0x80 empty string" }, { "blob": "0438d3d6bf05ede5ad141e70b5e5444f7b1dd3fa", "commit": "e82376e7749ceb95655feba8c6355f2bc5e67180", "date": "2026-08-04T20:17:14Z", "subject": "Update EIP-8159: Move to Review" }, { "blob": "6801e51111a0e65ae5fe243e7d29a782db154deb", "commit": "59d4019f121a26f9efbd6b0bfc9c3b9fc0815855", "date": "2026-10-02T04:12:19-06:00", "subject": "Update EIP-8159: Match EIP-7928 BAL storage types" }, { "blob": "70aa972709bc179e97f55423c035ac8823ee0e8c", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "eth/71 - Block Access List Exchange" }, "8189": { "category": "Networking", "checked": "tests/amsterdam/eip8189_*", "deltas": [], "eip": "8189", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "cec54301bbcf52db6b51720e9a54a8cc0f0151b7", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-8189.md", "pending": [], "pin": null, "revisions": [ { "blob": "b765385bffe2cfbc9176c7e75dcded87161dc9b0", "commit": "c2111e24762ff3afcf694d425a1df44a11d24df2", "date": "2026-03-16T18:28:05+08:00", "subject": "Add EIP: snap/2 - BAL-Based State Healing" }, { "blob": "71cdbb974dd0f5810f59ba6d98bd99cfea86a350", "commit": "63fe2781abf86192c7a8bcc68a47b0f2c41d25ac", "date": "2026-03-17T15:24:17Z", "subject": "Update EIP-8189: Assign new Message IDs for snap/2" }, { "blob": "870ebafb67ef58aecd3d1cf14c647f622d2f42ad", "commit": "3c8f89d1d24ed8b8fa5c47648d220e99b1ea0bbf", "date": "2026-04-09T07:09:31Z", "subject": "Update EIP-8189: Use RLP empty str placeholder, add bytes parameter to GetBlockAccessLists" }, { "blob": "1a1193662715d625597450c459e768eb44069d49", "commit": "60e2285dae7fcb7eda7befa32577085fdceb2255", "date": "2026-08-05T00:16:28+08:00", "subject": "Update EIP-8189: Move to Review" }, { "blob": "cec54301bbcf52db6b51720e9a54a8cc0f0151b7", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "snap/2 - BAL-Based State Healing" }, "8246": { "category": "Core", "deltas": [ { "blob": "84613eac60cd9823399285fb5cfbbd6ec330f19c", "candidates": [], "commit": "2db02af3e4e8c3553b6419a0b6159fcef599ce48", "constants": [], "date": "2026-09-15T10:33:37-06:00", "diff": "diff --git a/EIPS/eip-8246.md b/EIPS/eip-8246.md\nindex 8be64cf6..84613eac 100644\n--- a/EIPS/eip-8246.md\n+++ b/EIPS/eip-8246.md\n@@ -4,7 +4,8 @@ title: Remove SELFDESTRUCT Burn\n description: Eliminate the remaining cases where SELFDESTRUCT burns ETH.\n author: Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8246-remove-selfdestruct-burn/28416\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-04\n type: Standards Track\n category: Core\n created: 2026-05-01\n", "order": 7, "subject": "Update EIP-8246: Move to Last Call", "tokens": [], "window": [ { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" }, { "author_date": "2026-09-22T11:03:12+02:00", "commit": "37615c92a4b1c53358c45c3ccd9cde3b1a4252b2", "subject": "feat(tests): more amsterdam coverage gaps (#3627)" }, { "author_date": "2026-09-18T10:31:45+02:00", "commit": "d4c28bfe7aa35e91ee0cd50febd316eb90d92a37", "subject": "chore(tests): expand and harden EIP-7997 factory coverage (#3614)" }, { "author_date": "2026-09-07T01:32:57-06:00", "commit": "e5dc2e0ba79e5b62bce00379b1e0d56a392a8f0d", "subject": "feat(tests): EIP-8246 checklist, focus on #3217 items (#3533)" } ] }, { "blob": "6c80a64ed3651696cc7d9251ec3bac2ed199ec6d", "candidates": [], "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "constants": [], "date": "2026-10-22T08:08:27-06:00", "diff": "diff --git a/EIPS/eip-8246.md b/EIPS/eip-8246.md\nindex 84613eac..6c80a64e 100644\n--- a/EIPS/eip-8246.md\n+++ b/EIPS/eip-8246.md\n@@ -1,7 +1,7 @@\n ---\n eip: 8246\n title: Remove SELFDESTRUCT Burn\n-description: Eliminate the remaining cases where SELFDESTRUCT burns ETH.\n+description: Eliminate the remaining cases where SELFDESTRUCT burns ETH\n author: Pawe\u0142 Bylica (@chfast)\n discussions-to: https://ethereum-magicians.org/t/eip-8246-remove-selfdestruct-burn/28416\n status: Last Call\n", "order": 8, "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)", "tokens": [], "window": [] } ], "eip": "8246", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "6c80a64ed3651696cc7d9251ec3bac2ed199ec6d", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8246.md", "pending": [], "pin": { "ambiguous": false, "blob": "8be64cf6a01350938b93332cf0062ab7a3166f23", "commit": "9207c6011f526bd40abd79649484a1a342585bd4", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8246_selfdestruct_no_burn/spec.py" }, "pin_history": [ { "blob": "3b30ff829e5e698f1c6f69427111d194b80af38d", "commit": "279ae53eb85917ecdd093a6dfb2beb2e0521de7c", "date": "2026-07-02T16:08:47+08:00", "files": [ "__init__.py", "test_selfdestruct_no_burn.py" ], "pr": 3078, "release": "tests@v20.0.0", "subject": "feat(spec,tests): Implement EIP-8246 (#3078)", "superseded": false }, { "blob": "8be64cf6a01350938b93332cf0062ab7a3166f23", "commit": "e5dc2e0ba79e5b62bce00379b1e0d56a392a8f0d", "date": "2026-09-07T15:32:57+08:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_eip_mainnet.py", "test_fork_transition.py", "test_selfdestruct_no_burn.py" ], "pr": 3533, "release": "tests@v21.0.0", "subject": "feat(tests): EIP-8246 checklist, focus on #3217 items (#3533)", "superseded": false } ], "release_pins": { "tests@v20.0.0": "3b30ff829e5e698f1c6f69427111d194b80af38d", "tests@v20.0.1": "3b30ff829e5e698f1c6f69427111d194b80af38d", "tests@v20.0.2": "3b30ff829e5e698f1c6f69427111d194b80af38d", "tests@v21.0.0": "8be64cf6a01350938b93332cf0062ab7a3166f23", "tests@v21.0.1": "8be64cf6a01350938b93332cf0062ab7a3166f23", "tests@v21.0.2": "8be64cf6a01350938b93332cf0062ab7a3166f23" }, "revisions": [ { "blob": "1f0217997e40f92717c2c41f63a54a3789169f8d", "commit": "630c3420dacd31a90ce702b76092f4c9f085d4d4", "date": "2026-05-06T06:59:06-06:00", "subject": "Add EIP-8246: Remove SELFDESTRUCT Burn (#11590)" }, { "blob": "df85b17de99878e935968a5d2256c4714292f8a1", "commit": "4e303336fc9970887aea31579f9e804f4a186030", "date": "2026-05-08T11:10:59Z", "subject": "Update EIP-8246: Fix typos and grammar" }, { "blob": "1c7a6440eeb31b4fabab6f232e62e303ab72abeb", "commit": "3b30ff829e5e698f1c6f69427111d194b80af38d", "date": "2026-05-08T11:47:20Z", "subject": "Update EIP-8246: small spec style changes" }, { "blob": "7e9b2ffc1a8436dbfcc1efbf53f30cc90405af9e", "commit": "60a241e35e88a147fb08db96a786275b384fbe6a", "date": "2026-05-14T17:49:23Z", "subject": "Update EIP-8246: Add Test Cases" }, { "blob": "5e38ab131d2a0405f065b4dcb8b34e10280bd5bc", "commit": "45b443dc26ffae9437f8e396e677b4242e067613", "date": "2026-05-22T02:47:39+08:00", "subject": "Update EIP-8246: Move to Review" }, { "blob": "28816c096522eecce9353e843715e4232964aa48", "commit": "9388239ee5205f341d948a73bf8eb109f761b167", "date": "2026-09-04T09:23:24-06:00", "subject": "Update EIP-8246: note the CREATE2 redeploy of a funded remnant" }, { "blob": "8be64cf6a01350938b93332cf0062ab7a3166f23", "commit": "9207c6011f526bd40abd79649484a1a342585bd4", "date": "2026-09-04T09:24:45-06:00", "subject": "Update EIP-8246: give a concrete example of L2 burn usage" }, { "blob": "84613eac60cd9823399285fb5cfbbd6ec330f19c", "commit": "2db02af3e4e8c3553b6419a0b6159fcef599ce48", "date": "2026-09-15T10:33:37-06:00", "subject": "Update EIP-8246: Move to Last Call" }, { "blob": "6c80a64ed3651696cc7d9251ec3bac2ed199ec6d", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8246_selfdestruct_no_burn", "title": "Remove SELFDESTRUCT Burn" }, "8261": { "category": null, "checked": "tests/amsterdam/eip8261_*", "deltas": [], "eip": "8261", "head": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "head_blob": "28a1a1587eb170e4b1c44f1f2cc031625e02d244", "head_date": "2026-10-22T08:08:27-06:00", "path": "EIPS/eip-8261.md", "pending": [], "pin": null, "revisions": [ { "blob": "cae33eab69169ba6384ffffdd4ac03482fea77c2", "commit": "c22b578a3ae59a1ab5efcb62d0b5a6dd1203d778", "date": "2026-05-23T05:44:02+08:00", "subject": "Add EIP: Gas Limit Schedule" }, { "blob": "3ff2c7b7f47ba29ea8a7d035fb7d06d247821af6", "commit": "9ca2423fdd381d79778743ece889a95d0cf1ec46", "date": "2026-08-11T18:47:20+08:00", "subject": "Update EIP-8261: Convert to Informational gas limit schedule recommendation" }, { "blob": "2708b71dc5641df2865d4e1be512a458863c5f86", "commit": "f6b4668ef37612feba85aef151303f4100b79360", "date": "2026-08-11T12:26:39Z", "subject": "Update EIP-8261: Clarify epoch-based activation" }, { "blob": "50c69a2d66d767925c09fb66a1d3ea8d1eefa363", "commit": "7e90a2efc0b00435fb898605dc0e342ad1045e83", "date": "2026-08-14T06:04:47+08:00", "subject": "Update EIP-8261: Move to Review" }, { "blob": "2f52235592a0a1a392f9261b97048268c4f98867", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" }, { "blob": "28a1a1587eb170e4b1c44f1f2cc031625e02d244", "commit": "f1ade090fd315895461fc3e249cb1a675aeb55a9", "date": "2026-10-22T08:08:27-06:00", "subject": "Update EIP-2780: Align titles and descriptions of Glamsterdam EIPs (#12561)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": null, "title": "Gas Limit Schedule" }, "8282": { "category": "Core", "deltas": [ { "blob": "13b923d8effa18ec5eae90c9c5072950539aa0f9", "candidates": [], "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "constants": [], "date": "2026-10-06T15:57:47-06:00", "diff": "diff --git a/EIPS/eip-8282.md b/EIPS/eip-8282.md\nindex 45e570a2..13b923d8 100644\n--- a/EIPS/eip-8282.md\n+++ b/EIPS/eip-8282.md\n@@ -4,7 +4,8 @@ title: Builder Execution Requests\n description: Predeploy builder deposit and exit request contracts for EIP-7732 builders on the EIP-7685 request bus\n author: Cayman (@wemeetagain), Nico Flaig , Felix Lange , Justin Traglia \n discussions-to: https://ethereum-magicians.org/t/eip-8282-builder-execution-requests/28699\n-status: Review\n+status: Last Call\n+last-call-deadline: 2026-11-01\n type: Standards Track\n category: Core\n created: 2026-05-22\n", "order": 5, "subject": "Update EIP-2780: Move to Last Call (#12442)", "tokens": [], "window": [ { "author_date": "2026-10-15T15:43:54-06:00", "commit": "e9f61531e7254279068961c64be2e7a5070cc10e", "subject": "feat(test-specs): Test function receives fork's genesis pre-alloc (#3830)" }, { "author_date": "2026-09-25T11:50:45+08:00", "commit": "57d414402bad4d6f9c57e748f57f90eba7ae8111", "subject": "refactor(test-vm, tests): add `create_op` helper and drop `CREATE`/`CREATE2` branches (#3625)" } ] } ], "eip": "8282", "head": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "head_blob": "13b923d8effa18ec5eae90c9c5072950539aa0f9", "head_date": "2026-10-06T15:57:47-06:00", "path": "EIPS/eip-8282.md", "pending": [], "pin": { "ambiguous": false, "blob": "45e570a246207d5b1fb095e259e3f98bb0922639", "commit": "2d3c5e59e47103df15e51aafc815ba0b234e3388", "release": "tests@v21.0.2", "spec_py": "https://github.com/ethereum/execution-specs/blob/tests%40v21.0.2/tests/amsterdam/eip8282_builder_execution_requests/spec.py" }, "pin_history": [ { "blob": "0000000000000000000000000000000000000000", "commit": "b0d5cae83ac6b673ce90f5c922e8fa50678627a6", "date": "2026-07-02T13:29:03-06:00", "files": [ "__init__.py", "builder_deposit_deploy_tx.json", "builder_exit_deploy_tx.json", "conftest.py", "helpers.py", "test_builder_deposits.py", "test_builder_exits.py", "test_builder_requests_during_fork.py", "test_builder_requests_out_of_gas.py", "test_contract_deployment.py", "test_eip_mainnet.py", "test_modified_builder_contract.py" ], "pr": 3070, "release": null, "subject": "feat(spec,tests): Implement EIP-8282 (#3070)", "superseded": true }, { "blob": "35ab20cb31a416c50600da00125d262e1756850c", "commit": "842f0a6bb5a9c3c06f6bfc64c1638a65c12a1103", "date": "2026-07-08T10:48:49-06:00", "files": [ "builder_deposit_deploy_tx.json", "builder_deposit_factory_deploy.json", "builder_exit_deploy_tx.json", "builder_exit_factory_deploy.json", "conftest.py", "helpers.py", "test_builder_deposit_disable.py", "test_builder_exit_disable.py", "test_contract_deployment.py" ], "pr": 3091, "release": "tests@v20.0.1", "subject": "feat(spec-specs, tests): finalize EIP-8282 builder deposit contract (#3091)", "superseded": false }, { "blob": "35ab20cb31a416c50600da00125d262e1756850c", "commit": "622620d84a70efe1337abdafaecd7bdfeb254b92", "date": "2026-09-10T09:24:58-06:00", "files": [ "helpers.py", "test_builder_deposit_disable.py", "test_builder_deposits.py", "test_builder_exit_disable.py", "test_builder_exits.py", "test_builder_requests_during_fork.py", "test_builder_requests_out_of_gas.py", "test_contract_deployment.py", "test_eip_mainnet.py", "test_modified_builder_contract.py" ], "pr": 3484, "release": "tests@v20.0.1", "subject": "feat(tests,forks): tests BAL early validation; refactor system contracts (#3484)", "superseded": false }, { "blob": "45e570a246207d5b1fb095e259e3f98bb0922639", "commit": "1cf1c08e4060d7af407bc65557e2372447e9c05f", "date": "2026-09-15T10:18:53+01:00", "files": [ "eip_checklist_external_coverage.txt", "eip_checklist_not_applicable.txt", "test_builder_deposits.py", "test_builder_exits.py", "test_builder_requests_during_fork.py", "test_builder_requests_out_of_gas.py", "test_contract_deployment.py", "test_eip_mainnet.py", "test_modified_builder_contract.py", "test_request_predeploys.py" ], "pr": 3565, "release": "tests@v21.0.0", "subject": "feat(tests): eip8282 checklist review (#3565)", "superseded": false } ], "release_pins": { "tests@v20.0.1": "35ab20cb31a416c50600da00125d262e1756850c", "tests@v20.0.2": "35ab20cb31a416c50600da00125d262e1756850c", "tests@v21.0.0": "45e570a246207d5b1fb095e259e3f98bb0922639", "tests@v21.0.1": "45e570a246207d5b1fb095e259e3f98bb0922639", "tests@v21.0.2": "45e570a246207d5b1fb095e259e3f98bb0922639" }, "revisions": [ { "blob": "fa1e0195ff429ddc8daa9d1fa6d0fa4cdf0e87d7", "commit": "de4c6f02c7bec4686762c55f8ab6abcf97a77d7d", "date": "2026-07-03T08:35:52+08:00", "subject": "Add EIP: Builder Execution Requests" }, { "blob": "445c4dd68cc42942581ded083c37d1a334760db8", "commit": "20e77b2b621041e8a82a8d0cec3beb889e589fab", "date": "2026-07-07T01:03:24+08:00", "subject": "Update EIP-8282: Sync with gloas spec" }, { "blob": "35ab20cb31a416c50600da00125d262e1756850c", "commit": "554d3325e31c3f74078402d961355218ece16bee", "date": "2026-07-08T20:46:18+08:00", "subject": "Update EIP-8282: set predeploy addresses from current reference bytecode" }, { "blob": "ab44fb76a626f5de6ef7b3d8ba98737ea6ae28c1", "commit": "ba60c6474f603d93abbb4b0520f203dc8cb8c930", "date": "2026-08-05T15:36:19Z", "subject": "Update EIP-8282: Move to Review" }, { "blob": "45e570a246207d5b1fb095e259e3f98bb0922639", "commit": "2d3c5e59e47103df15e51aafc815ba0b234e3388", "date": "2026-08-10T15:23:39Z", "subject": "Update EIP-8282: Cleanup and Tweaks" }, { "blob": "13b923d8effa18ec5eae90c9c5072950539aa0f9", "commit": "5ef380124bd68d09c02fa90d0de0f2455f37d5ee", "date": "2026-10-06T15:57:47-06:00", "subject": "Update EIP-2780: Move to Last Call (#12442)" } ], "stage": [ "Scheduled" ], "status": "Last Call", "test_dir": "tests/amsterdam/eip8282_builder_execution_requests", "title": "Builder Execution Requests" } }, "fork": "glamsterdam", "hive_runs": [ { "client": "nethermind", "end": "2026-10-27T03:35:44.69182927Z", "fails": 239, "file": "1793072145-f77ddc53660a26e89f17a7706e5cfa07.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-26T12:52:24.658145081Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793072145-f77ddc53660a26e89f17a7706e5cfa07.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+a183d792" }, { "client": "ethrex", "end": "2026-10-26T09:45:12.149802668Z", "fails": 0, "file": "1793007912-547d9cc9a89f73fc0064193bda8a4c9f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-26T08:16:57.270212809Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793007912-547d9cc9a89f73fc0064193bda8a4c9f.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-18fdb83ccdf292de0c15c28faf2a151be805d649/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "2026-10-26T10:27:59.410719077Z", "fails": 2, "file": "1793010480-d551c775c4d248e574860df4df37a25e.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-26T07:45:31.0951919Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793010480-d551c775c4d248e574860df4df37a25e.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.11-unstable-d01e869d-20261026/linux-amd64/go1.27.3" }, { "client": "reth", "end": "2026-10-26T06:00:33.590771242Z", "fails": 1626, "file": "1792994434-eb5f4f172248b9c2a8cd8e92936f8bf3.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-26T03:47:26.48069618Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792994434-eb5f4f172248b9c2a8cd8e92936f8bf3.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+def3e3c5" }, { "client": "nethermind", "end": "2026-10-26T12:38:08.818332139Z", "fails": 239, "file": "1793018289-0ef3606913beb4d0670a52e6561a7357.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T22:37:27.264709521Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793018289-0ef3606913beb4d0670a52e6561a7357.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+fccb05a9" }, { "client": "reth", "end": "2026-10-25T17:17:24.616221213Z", "fails": 1626, "file": "1792948645-fffeffecd15a430b9effd69c668364b4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T15:08:10.4673604Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792948645-fffeffecd15a430b9effd69c668364b4.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+3e9d6896" }, { "client": "nethermind", "end": "2026-10-25T22:26:07.969944311Z", "fails": 239, "file": "1792967168-31c2ca30c493e4b244432efdf865f299.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T08:25:50.010142033Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792967168-31c2ca30c493e4b244432efdf865f299.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+34b321cd" }, { "client": "ethrex", "end": "2026-10-25T09:52:30.710693945Z", "fails": 0, "file": "1792921951-350a61278e8fd30ce7de88c7aae05bd3.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T08:20:16.119355287Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792921951-350a61278e8fd30ce7de88c7aae05bd3.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-18fdb83ccdf292de0c15c28faf2a151be805d649/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "2026-10-25T11:08:29.182265725Z", "fails": 2, "file": "1792926509-3bcc9ba527056c4aab56d1d48494e1f8.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T08:19:57.223689868Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792926509-3bcc9ba527056c4aab56d1d48494e1f8.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.11-unstable-2006f083-20261023/linux-amd64/go1.27.3" }, { "client": "besu", "end": "2026-10-26T09:34:22.060457913Z", "fails": 9, "file": "1793007262-bcaea78021015fd4b0776e606b920c4d.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T03:26:56.21060331Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793007262-bcaea78021015fd4b0776e606b920c4d.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-bdb9e5c/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "2026-10-25T03:31:10.135581595Z", "fails": 1626, "file": "1792899070-c6b0d944e3fa6c9855898fad6c126cc3.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-25T01:25:01.721247417Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792899070-c6b0d944e3fa6c9855898fad6c126cc3.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+f90ed272" }, { "client": "nethermind", "end": "2026-10-25T08:14:09.560217467Z", "fails": 239, "file": "1792916050-9a2aa4a92cd6fc0ce5f06ea421d0c138.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T18:18:14.338467315Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792916050-9a2aa4a92cd6fc0ce5f06ea421d0c138.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+2a39aa2b" }, { "client": "reth", "end": "2026-10-24T14:29:01.060814833Z", "fails": 1626, "file": "1792852141-81f12f9c47b2b5daddd0cc44dd90fea2.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T12:21:00.784380092Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792852141-81f12f9c47b2b5daddd0cc44dd90fea2.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+74a10c6a" }, { "client": "nethermind", "end": "2026-10-24T18:05:01.798116027Z", "fails": 239, "file": "1792865102-424f811522f6f93163e32e6cbfb1c1dd.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T03:15:22.532411149Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792865102-424f811522f6f93163e32e6cbfb1c1dd.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+7b8036f1" }, { "client": "reth", "end": "2026-10-24T02:29:15.363117071Z", "fails": 279, "file": "1792808955-76e53682a3a6aa879f2a6bcebd00ec4f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T00:22:47.914945532Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792808955-76e53682a3a6aa879f2a6bcebd00ec4f.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+98a1169a" }, { "client": "ethrex", "end": "2026-10-24T01:47:44.057626954Z", "fails": 0, "file": "1792806464-d44ca20326d26ec27224b32e01dbc3bb.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T00:22:43.557626274Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792806464-d44ca20326d26ec27224b32e01dbc3bb.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-18fdb83ccdf292de0c15c28faf2a151be805d649/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "2026-10-24T03:00:35.291656212Z", "fails": 2, "file": "1792810835-5923609d0f82f5715d6108a509ca5d02.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-24T00:19:10.714243361Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792810835-5923609d0f82f5715d6108a509ca5d02.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.11-unstable-2006f083-20261023/linux-amd64/go1.27.3" }, { "client": "besu", "end": "2026-10-25T03:12:38.585434342Z", "fails": 9, "file": "1792897959-19ca7a96e7ed7d7ef94d5252b4372be0.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-23T15:44:58.305436233Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792897959-19ca7a96e7ed7d7ef94d5252b4372be0.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-781a7e1/linux-x86_64/openjdk-java-25" }, { "client": "nethermind", "end": "2026-10-24T03:00:16.791069143Z", "fails": 239, "file": "1792810817-ebab2986d0d42bcd2b19fc8980b9470e.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-23T12:16:37.736039084Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792810817-ebab2986d0d42bcd2b19fc8980b9470e.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+24ad224c" }, { "client": "reth", "end": "", "fails": 279, "file": "1792765223-8e7c11fbaf0cf645079de76425e758bd.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-23T12:15:44.893888162Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792765223-8e7c11fbaf0cf645079de76425e758bd.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+c6f04082" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792762780-0ec91369d6a288f8e3f7d7a7df41249d.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-23T12:15:31.514295522Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792762780-0ec91369d6a288f8e3f7d7a7df41249d.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-43e3b03b263aabee0a59f42e19b8b8009bfc9ae8/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792767849-b3e1217ffddbad2cfc93a1a46ffff22f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-23T12:14:32.753383148Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792767849-b3e1217ffddbad2cfc93a1a46ffff22f.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.10-unstable-e8e61f71-20261023/linux-amd64/go1.27.3" }, { "client": "nethermind", "end": "", "fails": 239, "file": "1792746091-02c35c785c275789efd3ae9b21531caf.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-22T18:16:54.747777916Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792746091-02c35c785c275789efd3ae9b21531caf.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+6e1ada88" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792703261-7b212e70e9a599b67e6a30d0c8787676.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-22T18:16:45.917854743Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792703261-7b212e70e9a599b67e6a30d0c8787676.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.10-unstable-6c63e48a-20261022/linux-amd64/go1.27.3" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792698885-a7e11622366052000bdaf36109145599.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-22T18:15:34.39704362Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792698885-a7e11622366052000bdaf36109145599.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-0393eb85d7829306681efff069adcc70b6fc7069/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 279, "file": "1792700686-cab238dedf48a214dca3221da791b454.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-22T18:15:11.541039374Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792700686-cab238dedf48a214dca3221da791b454.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.0-dev+e3ba1239" }, { "client": "besu", "end": "", "fails": 9, "file": "1792762113-94d88a611ee66695392644c2ae0eb163.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-22T04:19:08.770724557Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792762113-94d88a611ee66695392644c2ae0eb163.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-2ee8ba5/linux-x86_64/openjdk-java-25" }, { "client": "nethermind", "end": "", "fails": 239, "file": "1792660930-a6c45119d9e4d023c699cc873e6d85c1.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-21T18:23:02.639510778Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792660930-a6c45119d9e4d023c699cc873e6d85c1.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+7aa16072" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792617963-1ebdbcdbcb507224215421d210aeed81.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-21T18:22:46.467061173Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792617963-1ebdbcdbcb507224215421d210aeed81.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.10-unstable-1c6b3104-20261021/linux-amd64/go1.27.3" }, { "client": "reth", "end": "", "fails": 279, "file": "1792614994-b1f72545176e674a0c0ede9426002e16.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-21T18:22:40.184347828Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792614994-b1f72545176e674a0c0ede9426002e16.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.0-dev+53bf066f" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792612614-a66438e83aea6e77af4aee52e41bd88c.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-21T18:21:38.759792346Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792612614-a66438e83aea6e77af4aee52e41bd88c.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-0393eb85d7829306681efff069adcc70b6fc7069/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792525188-edaa1b4a41324dc0830950d0aae7731a.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-20T18:13:09.093151079Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792525188-edaa1b4a41324dc0830950d0aae7731a.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-712aa9d71b0c24a2ac7204bd664793f2f6795902/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 239, "file": "1792575062-4d6bb800bc370d6ac2f1da97f07b251e.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-20T18:12:42.520773967Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792575062-4d6bb800bc370d6ac2f1da97f07b251e.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+477e8223" }, { "client": "reth", "end": "", "fails": 279, "file": "1792527860-01a22bb890935fd8afbda8d529579410.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-20T18:12:18.719705054Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792527860-01a22bb890935fd8afbda8d529579410.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.0-dev+05ba4812" }, { "client": "besu", "end": "", "fails": 10, "file": "1792636131-52d552f6aafe686b9b19f670ae746100.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-20T18:11:13.928301683Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792636131-52d552f6aafe686b9b19f670ae746100.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-e384273/linux-x86_64/openjdk-java-25" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792528776-0cd2275f29cedecb5b5ad87026970178.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-20T18:10:57.09196095Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792528776-0cd2275f29cedecb5b5ad87026970178.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-7c506900-20261020/linux-amd64/go1.27.3" }, { "client": "nethermind", "end": "", "fails": 240, "file": "1792491623-acc55b2b892cc48367f969ef769fd4d4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-19T19:41:59.30904094Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792491623-acc55b2b892cc48367f969ef769fd4d4.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+3554db30" }, { "client": "reth", "end": "", "fails": 279, "file": "1792447003-36d47c75d6ed7238af2985983228ed26.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-19T19:41:47.904019973Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792447003-36d47c75d6ed7238af2985983228ed26.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+f88813ad" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792449257-05790b08b73a9bb963e11d809e257bed.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-19T19:41:16.164158807Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792449257-05790b08b73a9bb963e11d809e257bed.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-17e0a6ca-20261019/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792444569-f1a5bf50ba65bab31beb20fb7128aee2.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-19T19:41:03.892776374Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792444569-f1a5bf50ba65bab31beb20fb7128aee2.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-b497c9496bc1cdd142299af76118986a66c8042c/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "besu", "end": "", "fails": 9, "file": "1792476927-626060df02ecf335f3b4f589578a8085.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-18T19:43:10.393368641Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792476927-626060df02ecf335f3b4f589578a8085.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-cb3afcb/linux-x86_64/openjdk-java-25" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792353502-dce4846ea0ce17956ba4b8400b8f8be6.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-18T17:07:21.605997723Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792353502-dce4846ea0ce17956ba4b8400b8f8be6.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-f468c3a9-20261018/linux-amd64/go1.27.2" }, { "client": "nethermind", "end": "", "fails": 239, "file": "1792399917-ce9767331b909b813cb86d4780024232.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-18T17:05:12.816422121Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792399917-ce9767331b909b813cb86d4780024232.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+3f3e9641" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792348750-8181b8c0422dc0a7705e9f345b8342a1.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-18T17:04:30.357545302Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792348750-8181b8c0422dc0a7705e9f345b8342a1.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-b497c9496bc1cdd142299af76118986a66c8042c/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 279, "file": "1792350971-8cbeec352a1f2a9f4673502c2f9fba76.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-18T17:04:26.686518235Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792350971-8cbeec352a1f2a9f4673502c2f9fba76.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+f4676eaa" }, { "client": "nethermind", "end": "", "fails": 0, "file": "1792308721-707935fb593de2972952a3cf7cd82a2d.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-17T16:50:20.455397991Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792308721-707935fb593de2972952a3cf7cd82a2d.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+3f9d83c4" }, { "client": "reth", "end": "", "fails": 279, "file": "1792262885-078c911e363544bd124aa9484608a265.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-17T16:49:17.844307257Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792262885-078c911e363544bd124aa9484608a265.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+95370b57" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792265159-6d784e4398f70c86cc3bb5f0310e38c9.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-17T16:47:59.132962115Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792265159-6d784e4398f70c86cc3bb5f0310e38c9.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-0b714d62-20261016/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792260936-42e90f3930a0484ce29db9155e9bae99.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-17T16:47:57.565480499Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792260936-42e90f3930a0484ce29db9155e9bae99.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-b497c9496bc1cdd142299af76118986a66c8042c/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "besu", "end": "", "fails": 9, "file": "1792345449-124424eafc994c44c40eda90d446f4f4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-17T08:40:55.078278457Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792345449-124424eafc994c44c40eda90d446f4f4.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-8c5ce6a/linux-x86_64/openjdk-java-25" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792178659-e48c14d28d10b2ae3ef311dc5193f7d2.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-16T17:52:40.317217836Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792178659-e48c14d28d10b2ae3ef311dc5193f7d2.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-4afa894e6771eac63159d7ff20f95ab982ca7567/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792182110-605dda0858f2fda7645e4e08c8c78be6.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-16T17:51:35.513033663Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792182110-605dda0858f2fda7645e4e08c8c78be6.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-028ea5cd-20261016/linux-amd64/go1.27.2" }, { "client": "reth", "end": "", "fails": 279, "file": "1792180837-db62e44e2cf67c0ac6658323748fcb17.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-16T17:49:49.435232087Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792180837-db62e44e2cf67c0ac6658323748fcb17.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+5199d266" }, { "client": "nethermind", "end": "", "fails": 0, "file": "1792222165-98d4718b24581627aa76fc8b851d0e2f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-16T17:49:33.594135244Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792222165-98d4718b24581627aa76fc8b851d0e2f.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+0137e997" }, { "client": "besu", "end": "", "fails": 9, "file": "1792220092-26d2c6e2e3c38b6a829db915f5b36c0d.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-15T22:05:30.241443557Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792220092-26d2c6e2e3c38b6a829db915f5b36c0d.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-af37459/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 279, "file": "1792094922-7eb182eb0c6ca4545a0f2f274cd69c1f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-15T18:05:37.901255518Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792094922-7eb182eb0c6ca4545a0f2f274cd69c1f.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+c10d16f9" }, { "client": "nethermind", "end": "", "fails": 0, "file": "1792140251-35096d446e89920742a3fb0866797227.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-15T18:05:25.902518042Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792140251-35096d446e89920742a3fb0866797227.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+0360ba88" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792097378-f29ad5041931444de1dfc85a1d8be1bf.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-15T18:04:58.241082683Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792097378-f29ad5041931444de1dfc85a1d8be1bf.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-8a8efd33-20261015/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792092692-013baa077448ee29cac3a8180c5ba36c.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-15T18:03:56.132909082Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792092692-013baa077448ee29cac3a8180c5ba36c.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-336fd1c61bc2dae88334ed8f4a787450a094e34f/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 0, "file": "1792058782-db79f1b0b64e93b1d88306c2222301f5.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-14T18:22:56.925962508Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792058782-db79f1b0b64e93b1d88306c2222301f5.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+642cd285" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1792012383-0c817f958452f96937908ececc62b951.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-14T18:22:15.302558877Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792012383-0c817f958452f96937908ececc62b951.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-9e800218-20261013/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1792007257-63e35c195f8b653a0d735c986393205f.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-14T18:21:51.249258164Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792007257-63e35c195f8b653a0d735c986393205f.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-f16b196b88c9dbaba0b327a896871680405fc09b/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 279, "file": "1792009918-d99d0a8f25f2dc635e864c1342617006.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-14T18:20:55.225549588Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792009918-d99d0a8f25f2dc635e864c1342617006.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+753db1e1" }, { "client": "besu", "end": "", "fails": 9, "file": "1792094915-456f21dad677f55bffde999cfee8a3df.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-14T11:53:57.114694696Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792094915-456f21dad677f55bffde999cfee8a3df.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-c9f6bff/linux-x86_64/openjdk-java-25" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791932010-16d99d064375ae0fba0f1c2b6750b367.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-13T20:09:30.187221544Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791932010-16d99d064375ae0fba0f1c2b6750b367.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-9e800218-20261013/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791927366-9aae2d8acd237b4777b21576e7cf4229.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-13T20:09:10.568492112Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791927366-9aae2d8acd237b4777b21576e7cf4229.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-79ac600612d600dc26e03a45ef56a501115329f6/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 279, "file": "1791929919-e1d9ab58deb663964e75a10d08ab201c.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-13T20:09:02.919369624Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791929919-e1d9ab58deb663964e75a10d08ab201c.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+44958846" }, { "client": "nethermind", "end": "", "fails": 0, "file": "1791974662-87aa65ce19b865dfe2e9ffa25532af40.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-13T20:05:39.058811885Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791974662-87aa65ce19b865dfe2e9ffa25532af40.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+2f387ee1" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791847990-dc70e7ec71aedd0ac419697090e987b3.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-12T22:04:22.648937079Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791847990-dc70e7ec71aedd0ac419697090e987b3.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-3744b1d91e3ad23a4ea7e52a7768ee634bc6da0a/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 279, "file": "1791850559-ef69537370444918b5646645d133b138.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-12T22:04:16.803385692Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791850559-ef69537370444918b5646645d133b138.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+1a4dbbe1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791852722-960a88d6663fa6705258ea23e886f9a7.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-12T22:04:13.294153921Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791852722-960a88d6663fa6705258ea23e886f9a7.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-32fea34c-20261012/linux-amd64/go1.27.2" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791890628-7b126721e7774dfc9084c7a500510a8c.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-12T21:59:49.231359513Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791890628-7b126721e7774dfc9084c7a500510a8c.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+5302886b" }, { "client": "besu", "end": "", "fails": 3, "file": "1791884979-1b6e47cbc777840b9bab78fbbe1f03f4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-12T01:14:26.258884616Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791884979-1b6e47cbc777840b9bab78fbbe1f03f4.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-d05d8e7/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 279, "file": "1791751867-891548619d7c7536759ddec23e767c79.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-11T18:40:59.113254587Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791751867-891548619d7c7536759ddec23e767c79.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+1a4dbbe1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791754265-ab6de57e88d5b5747a2555639b282249.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-11T18:40:31.623512554Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791754265-ab6de57e88d5b5747a2555639b282249.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-3a6c2e3b-20261010/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791749361-82d084f825c81f638e511d0ba02896c4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-11T18:39:56.127846828Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791749361-82d084f825c81f638e511d0ba02896c4.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-3744b1d91e3ad23a4ea7e52a7768ee634bc6da0a/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791795205-9ca3a7d000afa53cc765a44122634f20.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-11T18:39:54.650474801Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791795205-9ca3a7d000afa53cc765a44122634f20.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+2cbc4fd9" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791708807-76e2a2b0e114219a09e143ef44781591.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-10T18:12:28.862752422Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791708807-76e2a2b0e114219a09e143ef44781591.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+0e016e5d" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791661329-2d61c7c940182859c90c08b01ab3808b.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-10T18:12:12.016788074Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791661329-2d61c7c940182859c90c08b01ab3808b.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-228cbb52e3f98ab395ae0fb0efb14a1e696d78dc/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791665847-4e3c72e5b2623babb308d81490547dfc.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-10T18:11:01.098223545Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791665847-4e3c72e5b2623babb308d81490547dfc.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-3a6c2e3b-20261010/linux-amd64/go1.27.2" }, { "client": "reth", "end": "", "fails": 279, "file": "1791662443-844c05e232fa093ed88a9d26da8dae43.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-10T18:08:33.023852779Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791662443-844c05e232fa093ed88a9d26da8dae43.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+1a4dbbe1" }, { "client": "besu", "end": "", "fails": 3, "file": "1791760615-dcb474169ec080fa4f55734330f36f70.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-10T14:51:02.71117886Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791760615-dcb474169ec080fa4f55734330f36f70.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-d05d8e7/linux-x86_64/openjdk-java-25" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791625621-4af759e52658c287a38a892a66e49863.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-09T19:12:14.725487875Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791625621-4af759e52658c287a38a892a66e49863.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+29f1ea69" }, { "client": "reth", "end": "", "fails": 279, "file": "1791580885-946ba2dac7528c03eec99eae54575eb1.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-09T19:12:00.186709389Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791580885-946ba2dac7528c03eec99eae54575eb1.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+8458973f" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791583268-b3084ae48d40574b29965e767b8710a4.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-09T19:11:01.864759208Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791583268-b3084ae48d40574b29965e767b8710a4.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-d4e25ddd-20261009/linux-amd64/go1.27.2" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791578393-962815a856ffbb094af5752c6de13341.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-09T19:10:58.697228893Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791578393-962815a856ffbb094af5752c6de13341.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-fea1cd20f23dbf1016eec4602b9345fd904c9643/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "besu", "end": "", "fails": 9, "file": "1791636801-af4185da31708ea56c4d2ab4ef9c1307.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-09T04:34:08.275241278Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791636801-af4185da31708ea56c4d2ab4ef9c1307.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-18d36a1/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 279, "file": "1791496310-96fad79dce6cb129eb6cc535c5825481.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-08T19:40:37.122776877Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791496310-96fad79dce6cb129eb6cc535c5825481.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+4e64212d" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791498610-117a58435953085eb5cca9deb8f0eadb.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-08T19:40:17.593773688Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791498610-117a58435953085eb5cca9deb8f0eadb.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.9-unstable-9812211e-20261008/linux-amd64/go1.27.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791538397-f1ad360866ab58996cd302f73897318d.json", "ntests": 44225, "release": "tests@v21.0.1", "start": "2026-10-08T19:39:51.999490039Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791538397-f1ad360866ab58996cd302f73897318d.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+dafc3697" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791407825-f8218b12c2405142545a2b5358a8efcf.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-07T19:46:30.789160515Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791407825-f8218b12c2405142545a2b5358a8efcf.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-07664edb039af25b15930a2fcc7f2be0ed4ff66c/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791454665-38e7b9586da7528734dc82a4a2f2cea9.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-07T19:46:10.236450807Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791454665-38e7b9586da7528734dc82a4a2f2cea9.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+6d0d8a3e" }, { "client": "reth", "end": "", "fails": 313, "file": "1791409976-6c2ec575e5f07b4731cf553b6bfefec1.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-07T19:45:55.106668197Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791409976-6c2ec575e5f07b4731cf553b6bfefec1.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+1e8eb0c1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791412033-b9168d0a629eee1c2b5d58c75fd7acbb.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-07T19:43:10.212916958Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791412033-b9168d0a629eee1c2b5d58c75fd7acbb.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-93d78a01-20261006/linux-amd64/go1.27.1" }, { "client": "besu", "end": "", "fails": 13, "file": "1791514233-e13e5818a9f06dda6249158d67a202e4.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-07T19:41:38.059033654Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791514233-e13e5818a9f06dda6249158d67a202e4.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-3350624/linux-x86_64/openjdk-java-25" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791319446-794cb5abb3276c1ddd67c91cbe8b64a1.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-06T19:16:59.538489476Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791319446-794cb5abb3276c1ddd67c91cbe8b64a1.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v29.0.1-main-07664edb039af25b15930a2fcc7f2be0ed4ff66c/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791324236-694f7d1e006559777a0e564859b1c255.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-06T19:16:59.446902369Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791324236-694f7d1e006559777a0e564859b1c255.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-df4c5248-20261006/linux-amd64/go1.27.1" }, { "client": "reth", "end": "", "fails": 313, "file": "1791321063-7e8b978ec80d0daa00bd20130e2b9e22.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-06T19:13:17.863769541Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791321063-7e8b978ec80d0daa00bd20130e2b9e22.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+c1af61e5" }, { "client": "reth", "end": "", "fails": 313, "file": "1791242774-33fd1920421a4420384f06222b79176e.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-05T21:25:14.183876722Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791242774-33fd1920421a4420384f06222b79176e.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+3903ab36" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791240849-5e4d3bce275fdf6ce8acd3dfc903c3a0.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-05T21:24:22.04877119Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791240849-5e4d3bce275fdf6ce8acd3dfc903c3a0.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-1c3767853f9f2ad0039bb2592619a49eec5c9ef8/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791285518-9750296526ee0c6b008add47b78ce2c1.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-05T21:24:20.901660993Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791285518-9750296526ee0c6b008add47b78ce2c1.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+b46cfda8" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791244173-c176e48fc0ff745fe75c03e16f24ca93.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-05T21:21:19.131139471Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791244173-c176e48fc0ff745fe75c03e16f24ca93.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-7628eaa0-20261005/linux-amd64/go1.27.1" }, { "client": "besu", "end": "", "fails": 13, "file": "1791324950-453e56eb2ada083e747dfc9c238a29f5.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-05T13:34:07.080097934Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791324950-453e56eb2ada083e747dfc9c238a29f5.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-1d62d89/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 313, "file": "1791145004-51efe8625746bf34af7e33e98541cb86.json", "ntests": 44138, "release": null, "start": "2026-10-04T18:02:11.982436767Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791145004-51efe8625746bf34af7e33e98541cb86.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+d46664fc" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791186245-b1fed8f852a15bee02f4c8c2d5f87cb9.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-04T18:02:06.871970098Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791186245-b1fed8f852a15bee02f4c8c2d5f87cb9.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+ded94ee5" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791146902-298cc7b2c45a6c1a18a33fbb2135df39.json", "ntests": 44138, "release": null, "start": "2026-10-04T18:01:46.438872357Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791146902-298cc7b2c45a6c1a18a33fbb2135df39.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-c9a2bc73-20260930/linux-amd64/go1.27.1" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791141497-8e0414ab76b077e1ce083113779e972e.json", "ntests": 44138, "release": null, "start": "2026-10-04T17:58:03.199945239Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791141497-8e0414ab76b077e1ce083113779e972e.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-41f50022e7e8da40e5684ddb63523e6296ae2912/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "besu", "end": "", "fails": 14, "file": "1791199963-81e4c01b9af8ec0726f40fafda53bc04.json", "ntests": 44138, "release": "tests@v21.0.0", "start": "2026-10-04T03:37:32.536045432Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791199963-81e4c01b9af8ec0726f40fafda53bc04.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-1d62d89/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 313, "file": "1791057677-971ced4b064e9974409a025eec68ff02.json", "ntests": 44138, "release": null, "start": "2026-10-03T17:49:08.360748577Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791057677-971ced4b064e9974409a025eec68ff02.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+67f3569f" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1791059102-529e50fcb8704a19b1803ecf8a136726.json", "ntests": 44138, "release": null, "start": "2026-10-03T17:48:19.571973783Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791059102-529e50fcb8704a19b1803ecf8a136726.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-c9a2bc73-20260930/linux-amd64/go1.27.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791097067-f4bb50d42259d8e294b1edc5b46ceab7.json", "ntests": 44138, "release": null, "start": "2026-10-03T17:46:35.543741528Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791097067-f4bb50d42259d8e294b1edc5b46ceab7.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+8640721e" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1791054602-6168abb8971a9ae7f48c2e5d33618645.json", "ntests": 44138, "release": null, "start": "2026-10-03T17:46:15.9353812Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791054602-6168abb8971a9ae7f48c2e5d33618645.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-41f50022e7e8da40e5684ddb63523e6296ae2912/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1790972489-fc4c17790b6b7363576b5f8391ef1429.json", "ntests": 44138, "release": null, "start": "2026-10-02T18:53:53.940637694Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790972489-fc4c17790b6b7363576b5f8391ef1429.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-41f50022e7e8da40e5684ddb63523e6296ae2912/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1791014370-fdc31aa23e8268d0aa8c0532dfb64fac.json", "ntests": 44138, "release": null, "start": "2026-10-02T18:52:52.278076893Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791014370-fdc31aa23e8268d0aa8c0532dfb64fac.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+7b27a6fc" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1790977347-324a2a0684a190e03f7ee5dcbbb34dbe.json", "ntests": 44138, "release": null, "start": "2026-10-02T18:52:47.681480152Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790977347-324a2a0684a190e03f7ee5dcbbb34dbe.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-c9a2bc73-20260930/linux-amd64/go1.27.1" }, { "client": "reth", "end": "", "fails": 313, "file": "1790974674-166e335b6f6cd425879e6669ac00382d.json", "ntests": 44138, "release": null, "start": "2026-10-02T18:51:39.489610421Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790974674-166e335b6f6cd425879e6669ac00382d.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+7d36b562" }, { "client": "besu", "end": "", "fails": 13, "file": "1791077988-cb4fd8e404da0d32919526232f570b6e.json", "ntests": 44138, "release": null, "start": "2026-10-02T17:49:51.897067236Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1791077988-cb4fd8e404da0d32919526232f570b6e.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-b4c95e3/linux-x86_64/openjdk-java-25" }, { "client": "reth", "end": "", "fails": 313, "file": "1790889965-18525d8c6e5a61aeb5c32737c5ee3773.json", "ntests": 44138, "release": null, "start": "2026-10-01T19:16:00.079167679Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790889965-18525d8c6e5a61aeb5c32737c5ee3773.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+5b686303" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790931301-d0e45af8beb9f0855673cca7ba3b75b4.json", "ntests": 44138, "release": null, "start": "2026-10-01T19:15:00.914759943Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790931301-d0e45af8beb9f0855673cca7ba3b75b4.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+af9299e7" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1790887363-cd85412c0766985f80c127505c99ec28.json", "ntests": 44138, "release": null, "start": "2026-10-01T19:14:50.549108688Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790887363-cd85412c0766985f80c127505c99ec28.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-8f0d260d10972442c490bd777e6bd6bfa819c5cc/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1790891249-a571b9654befc26d97500e412954d3af.json", "ntests": 44138, "release": null, "start": "2026-10-01T19:10:40.774538848Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790891249-a571b9654befc26d97500e412954d3af.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-c9a2bc73-20260930/linux-amd64/go1.27.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790843314-637876bcb575af9b000a8744ecec48b7.json", "ntests": 44138, "release": null, "start": "2026-09-30T18:47:06.69705951Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790843314-637876bcb575af9b000a8744ecec48b7.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+c7aef558" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1790799348-a4558c116aa9a04dc02f41288dbd99eb.json", "ntests": 44138, "release": null, "start": "2026-09-30T18:46:57.970911263Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790799348-a4558c116aa9a04dc02f41288dbd99eb.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-90c6000f04c010686f166b54a997777d2868a80d/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 313, "file": "1790801256-94b203cc63fef2accafdf95344c2239d.json", "ntests": 44138, "release": null, "start": "2026-09-30T18:46:34.988226528Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790801256-94b203cc63fef2accafdf95344c2239d.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+f7efe30f" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1790804178-7a6249e5daa85b2c4d19d171e1255e7c.json", "ntests": 44138, "release": null, "start": "2026-09-30T18:46:21.794813057Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790804178-7a6249e5daa85b2c4d19d171e1255e7c.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.8-unstable-dcd17676-20260930/linux-amd64/go1.27.1" }, { "client": "besu", "end": "", "fails": 16, "file": "1790955339-530c6ca451c86763d4da95356e764397.json", "ntests": 44138, "release": null, "start": "2026-09-30T02:25:03.394997233Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790955339-530c6ca451c86763d4da95356e764397.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.9-develop-3cbf077/linux-x86_64/openjdk-java-25" }, { "client": "go-ethereum", "end": "", "fails": 2, "file": "1790718874-84dfe3f3d28a9c8a845f9d6caff11b9a.json", "ntests": 44138, "release": null, "start": "2026-09-29T19:03:48.04586504Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790718874-84dfe3f3d28a9c8a845f9d6caff11b9a.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.7-unstable-5dcdd051-20260929/linux-amd64/go1.27.1" }, { "client": "reth", "end": "", "fails": 319, "file": "1790716744-045fe18ffbca2911914db4cb5e782ade.json", "ntests": 44138, "release": null, "start": "2026-09-29T19:03:09.191758994Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790716744-045fe18ffbca2911914db4cb5e782ade.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+87cf6056" }, { "client": "ethrex", "end": "", "fails": 0, "file": "1790713908-834e528e0dbe00efa76b256784fa1fc0.json", "ntests": 44138, "release": null, "start": "2026-09-29T19:03:05.897729851Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790713908-834e528e0dbe00efa76b256784fa1fc0.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v28.0.0-main-5d2f52826498899697afc463de80372d2571b15d/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790754682-26cabe996ff42a3bca35728711d6860f.json", "ntests": 44138, "release": null, "start": "2026-09-29T19:00:13.224276057Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790754682-26cabe996ff42a3bca35728711d6860f.json&suitename=eels%2Fconsume-engine", "version": "2.2.0-preview+fb4e3ce0" }, { "client": "go-ethereum", "end": "", "fails": 10, "file": "1790637266-5f25a71f2b3beb80f7c7b166b755db6b.json", "ntests": 44138, "release": null, "start": "2026-09-28T20:24:50.790902104Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790637266-5f25a71f2b3beb80f7c7b166b755db6b.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.7-unstable-59529d16-20260928/linux-amd64/go1.27.1" }, { "client": "ethrex", "end": "", "fails": 9, "file": "1790632347-e69ab988b9f9b0b4ff5b48c2c2b0f0d0.json", "ntests": 44138, "release": null, "start": "2026-09-28T20:24:27.109149317Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790632347-e69ab988b9f9b0b4ff5b48c2c2b0f0d0.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v27.0.0-main-4f257f986186f0776e9dbc0350dcd5841d5d67b9/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790689480-da4286a62cbacb8f69e48d6abcb0d3f7.json", "ntests": 44138, "release": null, "start": "2026-09-28T20:24:19.32641631Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790689480-da4286a62cbacb8f69e48d6abcb0d3f7.json&suitename=eels%2Fconsume-engine", "version": "2.1.0-preview+45912ba3" }, { "client": "reth", "end": "", "fails": 319, "file": "1790634755-cecdc6cbf6ea3df0121b127c1429c89b.json", "ntests": 44138, "release": null, "start": "2026-09-28T20:24:05.414561861Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790634755-cecdc6cbf6ea3df0121b127c1429c89b.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.7.0-dev+84a5fd96" }, { "client": "besu", "end": "", "fails": 16, "file": "1790728311-ea9c4fd010c9de6469458d2d34c5953e.json", "ntests": 44138, "release": null, "start": "2026-09-28T15:38:18.912789809Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790728311-ea9c4fd010c9de6469458d2d34c5953e.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.9-develop-5765099/linux-x86_64/openjdk-java-25" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790586876-d353aa5d788a0b4e93c2f069976c50e3.json", "ntests": 44138, "release": null, "start": "2026-09-27T18:07:18.671397547Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790586876-d353aa5d788a0b4e93c2f069976c50e3.json&suitename=eels%2Fconsume-engine", "version": "2.1.0-preview+9b067bed" }, { "client": "go-ethereum", "end": "", "fails": 10, "file": "1790541517-dd121bc7c292d4357a91a62879145056.json", "ntests": 44138, "release": null, "start": "2026-09-27T18:06:50.1689249Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790541517-dd121bc7c292d4357a91a62879145056.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.7-unstable-920c0777-20260924/linux-amd64/go1.27.1" }, { "client": "ethrex", "end": "", "fails": 9, "file": "1790537575-462f1ac9c345558aeb626750ed6a3a63.json", "ntests": 44138, "release": null, "start": "2026-09-27T18:06:25.028201347Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790537575-462f1ac9c345558aeb626750ed6a3a63.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v27.0.0-main-4f257f986186f0776e9dbc0350dcd5841d5d67b9/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, { "client": "reth", "end": "", "fails": 319, "file": "1790539807-7af0a2125843e784547c5800de4fbb08.json", "ntests": 44138, "release": null, "start": "2026-09-27T18:06:21.679077746Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790539807-7af0a2125843e784547c5800de4fbb08.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.5.2-dev+5723a3fe" }, { "client": "besu", "end": "", "fails": 16, "file": "1790602825-a3b06255331eae1750e9aed74a48d95d.json", "ntests": 44138, "release": null, "start": "2026-09-27T04:51:56.113775164Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790602825-a3b06255331eae1750e9aed74a48d95d.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.9-develop-accdae0/linux-x86_64/openjdk-java-25" }, { "client": "nethermind", "end": "", "fails": 3, "file": "1790499494-304406fdcb723fbc7a5e33151652a85a.json", "ntests": 44138, "release": null, "start": "2026-09-26T17:31:49.968403317Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790499494-304406fdcb723fbc7a5e33151652a85a.json&suitename=eels%2Fconsume-engine", "version": "2.1.0-preview+cc1cd4af" }, { "client": "besu", "end": "", "fails": 16, "file": "1790478746-0917549289134eb04b594e764a1085cf.json", "ntests": 44138, "release": null, "start": "2026-09-25T19:36:07.870414648Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1790478746-0917549289134eb04b594e764a1085cf.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.9-develop-accdae0/linux-x86_64/openjdk-java-25" } ], "listing_rows": 999, "listing_url": "https://hive.ethpandaops.io/glamsterdam/listing.jsonl", "meta": { "eip": "7773", "name": "Glamsterdam", "url": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7773.md" }, "name": "eipproof", "newest_release": "tests@v21.0.2", "release_commit": "e27f097ec7b3e6e8ee9c2c1873c183e8f7da7a6e", "release_date": "2026-10-26T11:28:57+01:00", "release_url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v21.0.2", "releases": [ { "commit": "e27f097ec7b3e6e8ee9c2c1873c183e8f7da7a6e", "date": "2026-10-26T11:28:57+01:00", "tag": "tests@v21.0.2", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v21.0.2" }, { "commit": "1562e2f8b5cb1efda7e0d7c517f2dfb5742c0a43", "date": "2026-10-06T13:01:12-06:00", "tag": "tests@v21.0.1", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v21.0.1" }, { "commit": "faf66377663259411f7c150f5490cbac683d3cc9", "date": "2026-09-23T12:01:04+02:00", "tag": "tests@v21.0.0", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v21.0.0" }, { "commit": "abbe05777ab83fb94ce18c425daaa7ab79e779c1", "date": "2026-08-26T21:04:29-06:00", "tag": "tests@v20.0.2", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v20.0.2" }, { "commit": "87aba1a38a476b31f819a2390eb481527e6dc683", "date": "2026-07-15T13:31:17+01:00", "tag": "tests@v20.0.1", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v20.0.1" }, { "commit": "b6956dbe42a64d143569d5e9b20a0e7f7b9d0ac9", "date": "2026-07-02T11:06:13+02:00", "tag": "tests@v20.0.0", "url": "https://github.com/ethereum/execution-specs/releases/tag/tests%40v20.0.0" } ], "runs": { "besu": { "bitmap": "//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8H/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8B", "cases_hash": "507177df25a6be6c90f0b9c279bd0d97d5267da11cc8be264b6a4d5039162000", "client": "besu", "client_wide_failures": [ "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Amsterdam-blockchain_test_engine_from_state_test-eip1559]", "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Amsterdam-blockchain_test_engine_from_state_test-eip2930]", "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Amsterdam-blockchain_test_engine_from_state_test-legacy]", "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Osaka-blockchain_test_engine_from_state_test-eip1559]", "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Osaka-blockchain_test_engine_from_state_test-eip2930]", "tests/frontier/validation/test_transaction.py::test_unrecoverable_signature[fork_Osaka-blockchain_test_engine_from_state_test-legacy]" ], "commit": "bdb9e5c", "eips": { "2780": { "failed": [], "passed": 292, "total": 292 }, "7708": { "failed": [], "passed": 81, "total": 81 }, "7778": { "failed": [], "passed": 121, "total": 121 }, "7843": { "failed": [], "passed": 24, "total": 24 }, "7928": { "failed": [], "passed": 1252, "total": 1252 }, "7954": { "failed": [], "passed": 85, "total": 85 }, "7976": { "failed": [], "passed": 553, "total": 553 }, "7981": { "failed": [], "passed": 194, "total": 194 }, "7997": { "failed": [], "passed": 47, "total": 47 }, "8024": { "failed": [], "passed": 294, "total": 294 }, "8037": { "failed": [ "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_reject_incorrect_two_dimensional_header[fork_Amsterdam-blockchain_test_engine-header_rule_receipts]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_reject_incorrect_two_dimensional_header[fork_Amsterdam-blockchain_test_engine-header_rule_transaction_maxima]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_reject_incorrect_two_dimensional_header[fork_Amsterdam-blockchain_test_engine-header_rule_combined]" ], "passed": 855, "total": 858 }, "8038": { "failed": [], "passed": 274, "total": 274 }, "8246": { "failed": [], "passed": 664, "total": 664 }, "8282": { "failed": [], "passed": 166, "total": 166 } }, "end": "2026-10-26T09:34:22.060457913Z", "fails": 9, "file": "1793007262-bcaea78021015fd4b0776e606b920c4d.json", "file_sha256": "e4eed8dbb4a3bad15926fb0e79d7220e30d6e8e32d6581b4ae06120dcac140de", "image": "ethpandaops/besu:main-linux-amd64", "ntests": 44225, "raw_url": "https://hive.ethpandaops.io/glamsterdam/results/1793007262-bcaea78021015fd4b0776e606b920c4d.json", "release": "tests@v21.0.1", "sim_log": "https://hive.ethpandaops.io/glamsterdam/results/1792898802-simulator-210b17669146e957359b4c1c109700c8779a45cac10780ac068061cd33156e58.log", "simulator": "eels/consume-engine", "start": "2026-10-25T03:26:56.21060331Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793007262-bcaea78021015fd4b0776e606b920c4d.json&suitename=eels%2Fconsume-engine", "version": "besu/v26.10-develop-bdb9e5c/linux-x86_64/openjdk-java-25" }, "ethrex": { "bitmap": "//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8B", "cases_hash": "507177df25a6be6c90f0b9c279bd0d97d5267da11cc8be264b6a4d5039162000", "client": "ethrex", "client_wide_failures": [], "commit": "18fdb83ccdf292de0c15c28faf2a151be805d649", "eips": { "2780": { "failed": [], "passed": 292, "total": 292 }, "7708": { "failed": [], "passed": 81, "total": 81 }, "7778": { "failed": [], "passed": 121, "total": 121 }, "7843": { "failed": [], "passed": 24, "total": 24 }, "7928": { "failed": [], "passed": 1252, "total": 1252 }, "7954": { "failed": [], "passed": 85, "total": 85 }, "7976": { "failed": [], "passed": 553, "total": 553 }, "7981": { "failed": [], "passed": 194, "total": 194 }, "7997": { "failed": [], "passed": 47, "total": 47 }, "8024": { "failed": [], "passed": 294, "total": 294 }, "8037": { "failed": [], "passed": 858, "total": 858 }, "8038": { "failed": [], "passed": 274, "total": 274 }, "8246": { "failed": [], "passed": 664, "total": 664 }, "8282": { "failed": [], "passed": 166, "total": 166 } }, "end": "2026-10-26T09:45:12.149802668Z", "fails": 0, "file": "1793007912-547d9cc9a89f73fc0064193bda8a4c9f.json", "file_sha256": "6ad9514693e33ee18e6d8d9c6e182ccb455ac8f800e474fef6bc9169b92bf5e6", "image": "ethpandaops/ethrex:main-linux-amd64", "ntests": 44225, "raw_url": "https://hive.ethpandaops.io/glamsterdam/results/1793007912-547d9cc9a89f73fc0064193bda8a4c9f.json", "release": "tests@v21.0.1", "sim_log": "https://hive.ethpandaops.io/glamsterdam/results/1793002602-simulator-e369799a4a8d394316684a76939898c637d881aae50e48d397904def12b91b61.log", "simulator": "eels/consume-engine", "start": "2026-10-26T08:16:57.270212809Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793007912-547d9cc9a89f73fc0064193bda8a4c9f.json&suitename=eels%2Fconsume-engine", "version": "ethrex/v30.0.0-main-18fdb83ccdf292de0c15c28faf2a151be805d649/x86_64-unknown-linux-gnu/rustc-v1.93.1" }, "go-ethereum": { "bitmap": "/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8B", "cases_hash": "7c0a9023c1f0c6773c7f7b3487e75ca9c276bd3f8f477f2fffdb77d7e249f908", "client": "go-ethereum", "client_wide_failures": [], "commit": "d01e869d", "eips": { "2780": { "failed": [], "passed": 292, "total": 292 }, "7708": { "failed": [], "passed": 81, "total": 81 }, "7778": { "failed": [], "passed": 121, "total": 121 }, "7843": { "failed": [], "passed": 24, "total": 24 }, "7928": { "failed": [ "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py::test_bal_post_execution_calls_net_storage_at_last_index[fork_Amsterdam-blockchain_test_engine]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py::test_bal_withdrawals_and_dequeues_net_balance_at_last_index[fork_Amsterdam-blockchain_test_engine-forward_all]" ], "passed": 1250, "total": 1252 }, "7954": { "failed": [], "passed": 85, "total": 85 }, "7976": { "failed": [], "passed": 553, "total": 553 }, "7981": { "failed": [], "passed": 194, "total": 194 }, "7997": { "failed": [], "passed": 47, "total": 47 }, "8024": { "failed": [], "passed": 294, "total": 294 }, "8037": { "failed": [], "passed": 858, "total": 858 }, "8038": { "failed": [], "passed": 274, "total": 274 }, "8246": { "failed": [], "passed": 664, "total": 664 }, "8282": { "failed": [], "passed": 166, "total": 166 } }, "end": "2026-10-26T10:27:59.410719077Z", "fails": 2, "file": "1793010480-d551c775c4d248e574860df4df37a25e.json", "file_sha256": "396489a86d65fcd16b6882b06a1c064c3a64e351b8cd31160071e214e39b12d5", "image": "ethpandaops/geth:master-linux-amd64", "ntests": 44225, "raw_url": "https://hive.ethpandaops.io/glamsterdam/results/1793010480-d551c775c4d248e574860df4df37a25e.json", "release": "tests@v21.0.1", "sim_log": "https://hive.ethpandaops.io/glamsterdam/results/1793000717-simulator-4721ca523717d9d75d01c7f319c8910a3c2aa3287e4bfef6949759f7d7be82fe.log", "simulator": "eels/consume-engine", "start": "2026-10-26T07:45:31.0951919Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793010480-d551c775c4d248e574860df4df37a25e.json&suitename=eels%2Fconsume-engine", "version": "Geth/v1.17.11-unstable-d01e869d-20261026/linux-amd64/go1.27.3" }, "nethermind": { "bitmap": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////V/3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3+e/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wcAAAAAAAAAAAAAAAAAAAAAAPj///////////////////////f/////39///v39//////////////////////////////////////////////3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9//1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////vP9ET/b9P8/////////////////////////////////////////////////////7/C+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0flmV5/v///2V5/v9/nud5/v///+d5/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8H+P/////////////////////////////////////////////////////////9//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8B", "cases_hash": "507177df25a6be6c90f0b9c279bd0d97d5267da11cc8be264b6a4d5039162000", "client": "nethermind", "client_wide_failures": [ "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(1,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(2,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(3,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(4,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(5,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(6,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_normal_gas[fork_Amsterdam-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]", "tests/frontier/validation/test_transaction.py::test_sender_balance[fork_Amsterdam-blockchain_test_engine-balance_diff_-1-expected_exception_TransactionException.INSUFFICIENT_ACCOUNT_FUNDS]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Amsterdam-blockchain_test_engine_from_state_test-nonce_diff_-1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_LOW]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Amsterdam-blockchain_test_engine_from_state_test-nonce_diff_1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_HIGH]", "tests/ported_static/stEIP1559/test_low_fee_cap.py::test_low_fee_cap[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g1-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stEIP1559/test_transaction_intinsic_bug_paris.py::test_transaction_intinsic_bug_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls.py::test_transaction_colliding_with_non_empty_account_calls[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls_itself.py::test_transaction_colliding_with_non_empty_account_calls_itself[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d2]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d3]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_send_paris.py::test_transaction_colliding_with_non_empty_account_send_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stSpecialTest/test_eoa_empty_paris.py::test_eoa_empty_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stSpecialTest/test_eoa_empty_paris.py::test_eoa_empty_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_high_gas_price_paris.py::test_high_gas_price_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_transaction_fee_validations[fork_Amsterdam-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]" ], "commit": "a183d792", "eips": { "2780": { "failed": [], "passed": 292, "total": 292 }, "7708": { "failed": [], "passed": 81, "total": 81 }, "7778": { "failed": [], "passed": 121, "total": 121 }, "7843": { "failed": [], "passed": 24, "total": 24 }, "7928": { "failed": [], "passed": 1252, "total": 1252 }, "7954": { "failed": [], "passed": 85, "total": 85 }, "7976": { "failed": [], "passed": 553, "total": 553 }, "7981": { "failed": [ "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-value_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-value_non_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-value_non_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-value_zero_insufficient_balance]" ], "passed": 190, "total": 194 }, "7997": { "failed": [], "passed": 47, "total": 47 }, "8024": { "failed": [], "passed": 294, "total": 294 }, "8037": { "failed": [], "passed": 858, "total": 858 }, "8038": { "failed": [], "passed": 274, "total": 274 }, "8246": { "failed": [], "passed": 664, "total": 664 }, "8282": { "failed": [ "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_deposit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_deposit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_exit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_exit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]" ], "passed": 162, "total": 166 } }, "end": "2026-10-27T03:35:44.69182927Z", "fails": 239, "file": "1793072145-f77ddc53660a26e89f17a7706e5cfa07.json", "file_sha256": "5198ddb9c96f8318d4c449b32c6d95abd253de7885dcbf0c012b606a148612c8", "image": "ethpandaops/nethermind:master-linux-amd64", "ntests": 44225, "raw_url": "https://hive.ethpandaops.io/glamsterdam/results/1793072145-f77ddc53660a26e89f17a7706e5cfa07.json", "release": "tests@v21.0.1", "sim_log": "https://hive.ethpandaops.io/glamsterdam/results/1793019130-simulator-dd91624b91f4c7d8a3dd0954144168f612368abea807c7ccc279eda35c4acb64.log", "simulator": "eels/consume-engine", "start": "2026-10-26T12:52:24.658145081Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1793072145-f77ddc53660a26e89f17a7706e5cfa07.json&suitename=eels%2Fconsume-engine", "version": "2.3.0-preview+a183d792" }, "reth": { "bitmap": "////////////r6r+/z8BAPD////////////////////////////////////////////////////////////8//////////////////////////////////////////////////////////////n//////////////////////v/////PAP7v//9/fP///////////////////////////////////////////////////////////////////////////////////////////////////////////9/////////////9//////////8Z5s/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPM/zPP///////////////////7ftUy0AAPj///////////////////////////////////////////////////////////////////////////+v6v///////////////f////////////n+///////////////////////h////f////+////////////////////////////////////+/////j///////////v/7//////////////7//////D/z/////f/7/////5////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3+e////n+H///////////////////////9/APh/APj///////////////////8BAAAAAAAAAAAAAAAAAACA////////////////////HwAAAAAAAAAAAAAAAAAAAPj///////////////////8BAAAAAAAAAAAAAAAAAACA////////////////////HwAAAAAAAAAAAAAAAAAAAPj//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wcAAAAAAAAAAAAAAAAAAAAAAPj///////////////////////f/////39///v39/////////////////////////////////////////////yn4//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9//1r6//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8fgCX+////////e/A/STb5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3MH9ET/Y9P8/////////////////////////////////////////////////////z8A8P//////////////////////////////////z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////kfAAAAeBiGYQAAYBgGAAAAYBiGYQAAYBjm////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////eZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7neZ7n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////38AAAAA/////wEAAAD8/////////////////5///////5////////////8HAPj////////////////////////////////////////////////////////h//////////////////////////////////////////////////////////////////////////////////////////////////////////////+/293d/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8B", "cases_hash": "507177df25a6be6c90f0b9c279bd0d97d5267da11cc8be264b6a4d5039162000", "client": "reth", "client_wide_failures": [ "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-empty_access_list]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_first_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_first_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-single_address_multiple_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-single_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-not_enough_gas-single_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-empty_access_list]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_first_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_first_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-multiple_addresses_second_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-repeated_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-single_address_multiple_no_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-single_address_multiple_storage_keys]", "tests/berlin/eip2930_access_list/test_acl.py::test_transaction_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-not_enough_gas-single_address_single_storage_key]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_12_address_42_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_1_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_1_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_2_keys_inversion-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_2_address_empty_keys-data_set_66_bytes_half_zeros]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_1_zero_byte_1_non_zero_byte_reversed]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_4_zero_byte]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_empty]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_1]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_2]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_31_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_32_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_33_empty_bytes]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_3]", "tests/berlin/eip2930_access_list/test_tx_intrinsic_gas.py::test_tx_intrinsic_gas[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test-below_intrinsic_True-access_list_empty-data_set_66_bytes_half_zeros]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_1-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_100-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-no_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_one_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_0-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_0-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_14-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx[fork_Amsterdam-blockchain_test_engine_from_state_test--exact_balance_minus_1-tx_max_fee_per_blob_gas_multiplier_10000-single_zero_calldata-tx_value_1-tx_max_priority_fee_per_gas_7-tx_max_fee_per_gas_7-no_access_list]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(1,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(2,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(3,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(4,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(5,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_insufficient_balance_blob_tx_combinations[fork_Amsterdam-blobs_per_tx_(6,)-blockchain_test_engine--exact_balance_minus_1]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_normal_gas[fork_Amsterdam-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_normal_gas[fork_Osaka-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_blob_count[fork_Amsterdam-too_many_blobs-blockchain_test_engine_from_state_test]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_blob_count[fork_Osaka-too_many_blobs-blockchain_test_engine_from_state_test]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_max_fee_per_blob_gas[fork_Amsterdam-insufficient_max_fee_per_blob_gas-blockchain_test_engine-account_balance_modifier_1000000000]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_max_fee_per_blob_gas[fork_Amsterdam-invalid_max_fee_per_blob_gas-blockchain_test_engine-account_balance_modifier_1000000000]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_max_fee_per_blob_gas[fork_Osaka-insufficient_max_fee_per_blob_gas-blockchain_test_engine-account_balance_modifier_1000000000]", "tests/cancun/eip4844_blobs/test_blob_txs.py::test_invalid_tx_max_fee_per_blob_gas[fork_Osaka-invalid_max_fee_per_blob_gas-blockchain_test_engine-account_balance_modifier_1000000000]", "tests/frontier/validation/test_transaction.py::test_sender_balance[fork_Amsterdam-blockchain_test_engine-balance_diff_-1-expected_exception_TransactionException.INSUFFICIENT_ACCOUNT_FUNDS]", "tests/frontier/validation/test_transaction.py::test_tx_invalid_first_in_block[fork_Amsterdam-blockchain_test_engine-cause_nonce_too_high]", "tests/frontier/validation/test_transaction.py::test_tx_invalid_first_in_block[fork_Osaka-blockchain_test_engine-cause_nonce_too_high]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Amsterdam-blockchain_test_engine_from_state_test-nonce_diff_-1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_LOW]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Amsterdam-blockchain_test_engine_from_state_test-nonce_diff_1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_HIGH]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Osaka-blockchain_test_engine_from_state_test-nonce_diff_-1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_LOW]", "tests/frontier/validation/test_transaction.py::test_tx_nonce[fork_Osaka-blockchain_test_engine_from_state_test-nonce_diff_1-expected_exception_TransactionException.NONCE_MISMATCH_TOO_HIGH]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Amsterdam-tx_type_0-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Osaka-tx_type_0-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Osaka-tx_type_1-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Osaka-tx_type_2-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Osaka-tx_type_3-blockchain_test_engine_from_state_test]", "tests/london/eip1559_fee_market_change/test_tx_type.py::test_invalid_chain_id[fork_Osaka-tx_type_4-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Amsterdam-blob_count_21-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Amsterdam-blob_count_7-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Amsterdam-blob_count_8-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Osaka-blob_count_7-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Osaka-blob_count_8-blockchain_test_engine_from_state_test]", "tests/osaka/eip7594_peerdas/test_max_blob_per_tx.py::test_invalid_max_blobs_per_tx[fork_Osaka-blob_count_9-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_eip_mainnet.py::test_tx_gas_limit_cap_exceeded[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap[fork_Osaka-tx_gas_limit_cap_exceeds_maximum0-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap[fork_Osaka-tx_gas_limit_cap_exceeds_maximum1-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap[fork_Osaka-tx_gas_limit_cap_exceeds_maximum2-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap[fork_Osaka-tx_gas_limit_cap_exceeds_maximum3-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap[fork_Osaka-tx_gas_limit_cap_exceeds_maximum4-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_access_list_with_diff_addr[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_access_list_with_diff_addr[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_access_list_with_diff_keys[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_access_list_with_diff_keys[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_authorized_tx[fork_Amsterdam-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_authorized_tx[fork_Amsterdam-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_authorized_tx[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_authorized_tx[fork_Osaka-blockchain_test_engine_from_state_test-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_contract_creation[fork_Osaka-tx_gas_limit_cap_exceeds_maximum-blockchain_test_engine_from_state_test]", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_full_calldata[fork_Osaka-blockchain_test_engine_from_state_test-zero_byte_False-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]@bigmem", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_full_calldata[fork_Osaka-blockchain_test_engine_from_state_test-zero_byte_False-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]@bigmem", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_full_calldata[fork_Osaka-blockchain_test_engine_from_state_test-zero_byte_True-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_False]@bigmem", "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_tx_gas_limit_cap_full_calldata[fork_Osaka-blockchain_test_engine_from_state_test-zero_byte_True-exceed_tx_gas_limit_True-correct_intrinsic_cost_in_transaction_gas_limit_True]@bigmem", "tests/ported_static/stEIP1559/test_low_fee_cap.py::test_low_fee_cap[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_low_fee_cap.py::test_low_fee_cap[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_low_gas_limit.py::test_low_gas_limit[fork_Amsterdam-blockchain_test_engine_from_state_test--g3]", "tests/ported_static/stEIP1559/test_low_gas_limit.py::test_low_gas_limit[fork_Osaka-blockchain_test_engine_from_state_test--g3]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Osaka-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP1559/test_low_gas_price_old_types.py::test_low_gas_price_old_types[fork_Osaka-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds.py::test_out_of_funds[fork_Amsterdam-blockchain_test_engine_from_state_test-declaredKeyWrite-g1-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stEIP1559/test_out_of_funds_old_types.py::test_out_of_funds_old_types[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stEIP1559/test_tip_too_high.py::test_tip_too_high[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_tip_too_high.py::test_tip_too_high[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_transaction_intinsic_bug_paris.py::test_transaction_intinsic_bug_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stEIP1559/test_val_causes_oof.py::test_val_causes_oof[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls.py::test_transaction_colliding_with_non_empty_account_calls[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls.py::test_transaction_colliding_with_non_empty_account_calls[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls_itself.py::test_transaction_colliding_with_non_empty_account_calls_itself[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_calls_itself.py::test_transaction_colliding_with_non_empty_account_calls_itself[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d2]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d3]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Osaka-blockchain_test_engine_from_state_test-d0]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Osaka-blockchain_test_engine_from_state_test-d1]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Osaka-blockchain_test_engine_from_state_test-d2]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_init_paris.py::test_transaction_colliding_with_non_empty_account_init_paris[fork_Osaka-blockchain_test_engine_from_state_test-d3]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_send_paris.py::test_transaction_colliding_with_non_empty_account_send_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stEIP3607/test_transaction_colliding_with_non_empty_account_send_paris.py::test_transaction_colliding_with_non_empty_account_send_paris[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stExample/test_invalid_tr.py::test_invalid_tr[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stExample/test_invalid_tr.py::test_invalid_tr[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stSpecialTest/test_eoa_empty_paris.py::test_eoa_empty_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stSpecialTest/test_eoa_empty_paris.py::test_eoa_empty_paris[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_high_gas_price_paris.py::test_high_gas_price_paris[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/ported_static/stTransactionTest/test_high_gas_price_paris.py::test_high_gas_price_paris[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d3-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d3-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d3-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d3-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d4-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d4-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d4-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account.py::test_no_src_account[fork_Osaka-blockchain_test_engine_from_state_test-d4-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account1559.py::test_no_src_account1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d3-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Amsterdam-blockchain_test_engine_from_state_test-d4-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d3-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d3-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d3-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d3-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d4-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d4-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d4-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create.py::test_no_src_account_create[fork_Osaka-blockchain_test_engine_from_state_test-d4-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g1-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Amsterdam-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d0-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d1-g2-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g0-v1]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v0]", "tests/ported_static/stTransactionTest/test_no_src_account_create1559.py::test_no_src_account_create1559[fork_Osaka-blockchain_test_engine_from_state_test-d2-g2-v1]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Osaka-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Osaka-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Osaka-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/prague/eip7623_increase_calldata_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Osaka-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-first_valid_then_many_duplicate_authorizations]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-first_valid_then_single_repeated_nonce_authorization]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-first_valid_then_single_repeated_nonce_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-many_valid_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-many_valid_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_empty_account_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_eoa_self_sponsored_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_eoa_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_chain_id_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_self_sponsored_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_eoa_self_sponsored_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_eoa_authority_multiple_signers_1]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_eoa_authority_multiple_signers_2]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_invalid_chain_id_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_invalid_nonce_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_eoa_self_sponsored_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_invalid_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_to_contract]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_to_eoa]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_authority_and_set_code_address_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_authority_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_set_code_address_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_single_non_zero_byte_data]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_single_zero_byte_data]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_chain_specific_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Amsterdam-blockchain_test_engine_from_state_test-valid_False-single_valid_re_authorization_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-first_valid_then_many_duplicate_authorizations]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-first_valid_then_single_repeated_nonce_authorization]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-first_valid_then_single_repeated_nonce_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-many_valid_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-many_valid_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_empty_account_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_eoa_self_sponsored_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_authorizations_eoa_then_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_chain_id_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_self_sponsored_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_invalid_nonce_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_eoa_self_sponsored_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_multiple_signers]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-multiple_valid_authorizations_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_eoa_authority_multiple_signers_1]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_eoa_authority_multiple_signers_2]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_invalid_authorization_invalid_chain_id_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_invalid_nonce_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_eoa_self_sponsored_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_invalid_contract_authority]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_to_contract]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_to_eoa]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_authority_and_set_code_address_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_authority_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_set_code_address_in_access_list]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_single_non_zero_byte_data]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_authorization_with_single_zero_byte_data]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_chain_specific_authorization_single_signer]", "tests/prague/eip7702_set_code_tx/test_gas.py::test_intrinsic_gas_cost[fork_Osaka-blockchain_test_engine_from_state_test-valid_False-single_valid_re_authorization_eoa_authority]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_empty_authorization_list[fork_Amsterdam-blockchain_test_engine_from_state_test]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_empty_authorization_list[fork_Osaka-blockchain_test_engine_from_state_test]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_invalid_transaction_after_authorization[fork_Amsterdam-blockchain_test_engine]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_invalid_transaction_after_authorization[fork_Osaka-blockchain_test_engine]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_False-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Amsterdam-blockchain_test_engine_from_state_test-self_sponsored_True-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_False-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_False-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_False-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_False-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_True-CONTRACT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_True-EMPTY_ACCOUNT]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_True-EOA]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_from_account_with_non_delegating_code[fork_Osaka-blockchain_test_engine_from_state_test-self_sponsored_True-EOA_WITH_SET_CODE]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_transaction_fee_validations[fork_Amsterdam-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_transaction_fee_validations[fork_Amsterdam-blockchain_test_engine_from_state_test-priority_greater_than_max_fee_per_gas]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_transaction_fee_validations[fork_Osaka-blockchain_test_engine_from_state_test-insufficient_max_fee_per_gas]", "tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_transaction_fee_validations[fork_Osaka-blockchain_test_engine_from_state_test-priority_greater_than_max_fee_per_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_32_bytes-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_33_bytes-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_empty-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_max_size_minus_word-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_max_size_minus_word_plus_byte-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_max_size_ones-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_max_size_zeros-gas_test_case_too_little_intrinsic_gas]", "tests/shanghai/eip3860_initcode/test_initcode.py::TestContractCreationGasUsage::test_gas_usage[fork_Osaka-blockchain_test_engine_from_state_test-initcode_name_single_byte-gas_test_case_too_little_intrinsic_gas]" ], "commit": "def3e3c5", "eips": { "2780": { "failed": [ "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py::test_intrinsic_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-plain_call]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_fork_transition.py::test_intrinsic_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-self_transfer]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor[fork_Amsterdam-blockchain_test_engine_from_state_test-self_transfer-non-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor[fork_Amsterdam-blockchain_test_engine_from_state_test-other_eoa-non-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor[fork_Amsterdam-blockchain_test_engine_from_state_test-other_eoa-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor[fork_Amsterdam-blockchain_test_engine_from_state_test-self_transfer-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor_contract_creation[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor_contract_creation[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py::test_calldata_floor_with_authorizations[fork_Amsterdam-blockchain_test_engine_from_state_test-below_floor_rejected]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-recipient_type_RecipientType.SELF]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-recipient_type_RecipientType.DELEGATION_7702]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-recipient_type_RecipientType.EOA]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-recipient_type_RecipientType.EMPTY_ACCOUNT]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-recipient_type_RecipientType.DELEGATION_7702]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-recipient_type_RecipientType.EOA]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-recipient_type_RecipientType.CONTRACT]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value-recipient_type_RecipientType.SELF]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-recipient_type_RecipientType.EMPTY_ACCOUNT]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value-recipient_type_RecipientType.CONTRACT]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_all_tx_types[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_all_tx_types[fork_Amsterdam-tx_type_0-blockchain_test_engine_from_state_test]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_all_tx_types[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_all_tx_types[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_all_tx_types[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_contract_creation[fork_Amsterdam-blockchain_test_engine_from_state_test-zero_value]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_contract_creation[fork_Amsterdam-blockchain_test_engine_from_state_test-non-zero_value]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_with_authorizations[fork_Amsterdam-blockchain_test_engine_from_state_test-one_authorization]", "tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_intrinsic_gas_boundary.py::test_intrinsic_gas_floor_boundary_with_authorizations[fork_Amsterdam-blockchain_test_engine_from_state_test-two_authorizations]" ], "passed": 264, "total": 292 }, "7708": { "failed": [], "passed": 81, "total": 81 }, "7778": { "failed": [], "passed": 121, "total": 121 }, "7843": { "failed": [ "tests/amsterdam/eip7843_slotnum/test_fork_transition.py::test_invalid_pre_fork_block_with_slot_number[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-engine_payload_field]", "tests/amsterdam/eip7843_slotnum/test_fork_transition.py::test_invalid_pre_fork_block_with_slot_number[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-header_field]" ], "passed": 22, "total": 24 }, "7928": { "failed": [ "tests/amsterdam/eip7928_block_level_access_lists/test_fork_transition.py::test_bal_invalid_engine_payload_field_before_fork[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py::test_bal_withdrawals_and_dequeues_net_balance_at_last_index[fork_Amsterdam-blockchain_test_engine-forward_half]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_cross_index.py::test_bal_withdrawals_and_dequeues_net_balance_at_last_index[fork_Amsterdam-blockchain_test_engine-forward_all]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_complex_corruption[fork_Amsterdam-blockchain_test_engine]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_field_entries[fork_Amsterdam-blockchain_test_engine-missing_storage_change]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_field_entries[fork_Amsterdam-blockchain_test_engine-missing_storage_read]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_failed_auth_authority]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_delegate_target]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_precompile]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_balance_change]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_reverted_frame_read]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_access_only]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_staticcall]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_account[fork_Amsterdam-blockchain_test_engine-scenario_zero_value_call]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_coinbase[fork_Amsterdam-blockchain_test_engine]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_missing_storage_write[fork_Amsterdam-blockchain_test_engine]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_ordering[fork_Amsterdam-blockchain_test_engine-code_changes_out_of_order]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_ordering[fork_Amsterdam-blockchain_test_engine-slot_changes_out_of_order]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_ordering[fork_Amsterdam-blockchain_test_engine-nonce_changes_out_of_order]", "tests/amsterdam/eip7928_block_level_access_lists/test_block_access_lists_invalid.py::test_bal_invalid_tx_order[fork_Amsterdam-blockchain_test_engine]" ], "passed": 1232, "total": 1252 }, "7954": { "failed": [ "tests/amsterdam/eip7954_increase_max_contract_size/test_max_initcode_size.py::test_max_initcode_size_calldata_floor[fork_Amsterdam-blockchain_test_engine_from_state_test-below_floor]" ], "passed": 84, "total": 85 }, "7976": { "failed": [ "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_floor_boundary_exact_balance.py::test_below_amsterdam_floor_with_exact_balance_sender[fork_Amsterdam-blockchain_test_engine_from_state_test-200_zero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_no_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-below_old_floor_rejected_before_fork-all_nonzero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-old_floor_rejected_after_fork-all_zero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-below_old_floor_rejected_before_fork-all_zero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-below_new_floor_rejected_after_fork-all_nonzero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-below_new_floor_rejected_after_fork-all_zero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_fork_transition.py::test_floor_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-old_floor_rejected_after_fork-all_nonzero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-multiple_blobs-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_3[fork_Amsterdam-blockchain_test_engine_from_state_test-type_3-single_blob-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_single_storage_key-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-multiple_access_lists_multiple_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-no_access_list-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test--type_0-protected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-no_access_list-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_single_storage_key-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-single_access_list_no_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-single_access_list_multiple_storage_keys-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-unprotected-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_4[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-multiple_access_lists_no_storage_keys-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_with_create2[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_with_create2-type_0-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_with_create2[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_with_create2-type_2-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_with_create2[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_with_create2-type_2-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_with_create2[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_with_create2-type_0-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-to_eoa-type_0-unprotected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_zero_byte_data[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-zero_bytes-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_zero_byte_data[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-multiple_authorizations-zero_bytes-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_zero_byte_data[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-zero_bytes-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_zero_byte_data[fork_Amsterdam-blockchain_test_engine_from_state_test-type_4-single_authorization-zero_bytes-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_0[fork_Amsterdam-blockchain_test_engine_from_state_test-contract_creating-type_0-protected-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_no_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_no_storage_keys-to_eoa-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_multiple_storage_keys--insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-single_access_list_multiple_storage_keys--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_multiple_storage_keys-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_less_than_or_equal_to_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-contract_creating-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_floor_boundary_exact_balance.py::test_below_amsterdam_floor_with_exact_balance_sender[fork_Amsterdam-blockchain_test_engine_from_state_test-1000_zero_bytes]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-no_access_list-to_eoa-insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-single_access_list_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]", "tests/amsterdam/eip7976_increase_calldata_floor_cost/test_transaction_validity.py::test_transaction_validity_type_1_type_2[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-multiple_access_lists_single_storage_key--insufficient_gas-floor_gas_greater_than_intrinsic_gas]" ], "passed": 385, "total": 553 }, "7981": { "failed": [ "tests/amsterdam/eip7981_increase_access_list_cost/test_fork_transition.py::test_access_list_validity_across_amsterdam_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine]", "tests/amsterdam/eip7981_increase_access_list_cost/test_floor_boundary_exact_balance.py::test_access_list_floor_with_exact_balance[fork_Amsterdam-blockchain_test_engine_from_state_test-2000_nonzero_bytes-type_2-below_floor]", "tests/amsterdam/eip7981_increase_access_list_cost/test_floor_boundary_exact_balance.py::test_access_list_floor_with_exact_balance[fork_Amsterdam-blockchain_test_engine_from_state_test-1700_nonzero_bytes-type_1-below_floor]", "tests/amsterdam/eip7981_increase_access_list_cost/test_floor_boundary_exact_balance.py::test_access_list_floor_with_exact_balance[fork_Amsterdam-blockchain_test_engine_from_state_test-2000_nonzero_bytes-type_1-below_floor]", "tests/amsterdam/eip7981_increase_access_list_cost/test_floor_boundary_exact_balance.py::test_access_list_floor_with_exact_balance[fork_Amsterdam-blockchain_test_engine_from_state_test-1700_nonzero_bytes-type_2-below_floor]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-value_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-value_non_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_1-value_non_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_access_list_sender_balance_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-type_2-value_zero_insufficient_balance]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_contract_creation_with_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-insufficient_gas_by_one]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_contract_creation_with_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-insufficient_gas_by_one]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test--large_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test--large_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test--large_zero_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test--large_zero_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test--large_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test--large_zero_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test--large_zero_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_floor_cost_validation_with_access_list[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test--large_calldata_and_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test--insufficient_gas_by_one]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test--insufficient_gas_by_one]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test--large_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test--large_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test--insufficient_gas_by_hundred]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test--insufficient_gas_by_one]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test--large_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test--large_access_list_insufficient_gas]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test--insufficient_gas_by_hundred]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test--insufficient_gas_by_hundred]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test--insufficient_gas_by_hundred]", "tests/amsterdam/eip7981_increase_access_list_cost/test_transaction_validity.py::test_insufficient_gas_for_access_list[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test--insufficient_gas_by_one]" ], "passed": 163, "total": 194 }, "7997": { "failed": [], "passed": 47, "total": 47 }, "8024": { "failed": [], "passed": 294, "total": 294 }, "8037": { "failed": [ "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_set_code.py::test_authorization_exact_state_gas_boundary[fork_Amsterdam-blockchain_test_engine-one_short]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_set_code.py::test_set_code_tx_below_total_intrinsic[fork_Amsterdam-blockchain_test_engine_from_state_test-two_auths]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_set_code.py::test_set_code_tx_below_total_intrinsic[fork_Amsterdam-blockchain_test_engine_from_state_test-three_auths]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_set_code.py::test_set_code_tx_below_total_intrinsic[fork_Amsterdam-blockchain_test_engine_from_state_test-single_auth]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_system_calls.py::test_system_call_execution_boundary[fork_Amsterdam-blockchain_test_engine-builder_deposit-one_over]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_system_calls.py::test_system_call_execution_boundary[fork_Amsterdam-blockchain_test_engine-builder_exit-one_over]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_fork_transition.py::test_tx_gas_above_cap_at_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-gas_limit_above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_fork_transition.py::test_tx_gas_above_cap_at_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-intrinsic_above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_fork_transition.py::test_tx_total_gas_limit_cap_at_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-above_total_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_fork_transition.py::test_tx_total_gas_limit_cap_at_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-at_total_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_tx_total_gas_limit_cap[fork_Amsterdam-tx_type_4-blockchain_test_engine_from_state_test-above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_tx_total_gas_limit_cap[fork_Amsterdam-tx_type_2-blockchain_test_engine_from_state_test-above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_tx_total_gas_limit_cap[fork_Amsterdam-tx_type_0-blockchain_test_engine_from_state_test-above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_tx_total_gas_limit_cap[fork_Amsterdam-tx_type_3-blockchain_test_engine_from_state_test-above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_block_2d_gas_accounting.py::test_tx_total_gas_limit_cap[fork_Amsterdam-tx_type_1-blockchain_test_engine_from_state_test-above_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_calldata_floor.py::test_calldata_floor_exceeding_tx_gas_limit_cap[fork_Amsterdam-blockchain_test_engine_from_state_test-exceeds_cap]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_create.py::test_create_tx_below_total_intrinsic[fork_Amsterdam-blockchain_test_engine_from_state_test-return_initcode]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_create.py::test_create_tx_below_total_intrinsic[fork_Amsterdam-blockchain_test_engine_from_state_test-empty_initcode]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_create.py::test_create_tx_intrinsic_gas_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-below_intrinsic]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_pricing.py::test_calldata_floor_enforced_with_state_gas[fork_Amsterdam-blockchain_test_engine_from_state_test-below_floor]", "tests/amsterdam/eip8037_state_creation_gas_cost_increase/test_state_gas_pricing.py::test_intrinsic_execution_gas_exceeds_cap[fork_Amsterdam-blockchain_test_engine_from_state_test-exceeds_cap]" ], "passed": 837, "total": 858 }, "8038": { "failed": [ "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_set_code_auth_gas.py::test_auth_intrinsic_oog_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-n_3]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_set_code_auth_gas.py::test_auth_intrinsic_oog_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-n_1]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_fork_transition.py::test_access_list_intrinsic_straddles_validity[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_fork_transition.py::test_auth_intrinsic_at_transition[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_create_gas.py::TestCreateTxGasBoundary::test_create_tx_gas_boundary[fork_Amsterdam-blockchain_test_engine_from_state_test-gas_test_case_too_little_intrinsic_gas]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_access_list_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test-two_addresses]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_access_list_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test-one_address]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_access_list_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test-one_address_one_key]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_authorization_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test-two_auths]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_authorization_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test-one_auth]", "tests/amsterdam/eip8038_state_access_gas_cost_increase/test_exact_balance_no_fallback.py::test_cold_account_access_no_fallback[fork_Amsterdam-blockchain_test_engine_from_state_test]" ], "passed": 263, "total": 274 }, "8246": { "failed": [], "passed": 664, "total": 664 }, "8282": { "failed": [ "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_deposit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_deposit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_exit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_contract_deployment.py::test_builder_exit_contract_deployment[fork_BPO2ToAmsterdamAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_reverts-builder_exit_contract]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_out_of_gas-builder_exit_contract]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_throws-builder_exit_contract]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_throws-builder_deposit_contract]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_out_of_gas-builder_deposit_contract]", "tests/amsterdam/eip8282_builder_execution_requests/test_modified_builder_contract.py::test_system_contract_errors[fork_Amsterdam-blockchain_test_engine-system_contract_reverts-builder_deposit_contract]" ], "passed": 156, "total": 166 } }, "end": "2026-10-26T06:00:33.590771242Z", "fails": 1626, "file": "1792994434-eb5f4f172248b9c2a8cd8e92936f8bf3.json", "file_sha256": "b9aecb983f4101b7498320fdcc75efe7342c7087fef3c3a72a4602b213a87d46", "image": "ethpandaops/reth:main-linux-amd64", "ntests": 44225, "raw_url": "https://hive.ethpandaops.io/glamsterdam/results/1792994434-eb5f4f172248b9c2a8cd8e92936f8bf3.json", "release": "tests@v21.0.1", "sim_log": "https://hive.ethpandaops.io/glamsterdam/results/1792986432-simulator-f43607d29788f0887293a8286125561f625ea3d98c885185404c841f51b54b05.log", "simulator": "eels/consume-engine", "start": "2026-10-26T03:47:26.48069618Z", "url": "https://hive.ethpandaops.io/glamsterdam/suite.html?suiteid=1792994434-eb5f4f172248b9c2a8cd8e92936f8bf3.json&suitename=eels%2Fconsume-engine", "version": "Reth Version: 2.8.1-dev+def3e3c5" } }, "taken_at": "2026-11-04T01:32:52Z" }