I still remember the quiet optimism that surrounded the last major Ethereum upgrade announcements. Everything felt carefully staged, the testnets lined up, the gas limits ready for a real stress test. Then the Foundation dropped a short notice on October 22 and the entire October 26 Hoodi plan vanished. No new epoch. No replacement timestamp. Just a clear decision to hit pause while developers dig deeper into how EIP-8037 might collide with contracts already living on mainnet.
Why Ethereum Suddenly Shelved The Hoodi Rehearsal
The original schedule looked solid. Epoch 132,352. Slot 4,235,264. Both the Amsterdam execution changes and the Gloas consensus updates were supposed to light up together, complete with a jump to a 200 million gas limit. That limit had already been tried on Sepolia earlier in October. It worked there. Yet one successful public testnet does not automatically clear every risk for the next one.
What changed was a closer look at state-creation costs. EIP-8037 does not simply tweak a few numbers. It raises the price of creating new accounts, opening fresh storage slots, and deploying contract bytecode, then meters that work separately. The idea makes sense on paper. Persistent state sticks around for years. Nodes pay for it long after the transaction that created it has disappeared from the mempool. Charging more for that long-term burden feels fair, especially if blocks are about to carry heavier loads.
But fairness on paper can still break real code. Some contracts hard-code gas stipends. Others lean on the old 2,300-gas pattern left over from early Solidity transfer and send calls. A few even measure remaining gas with gasleft() and make branching decisions based on the result. When the cost of touching state jumps, those assumptions stop holding.
The Numbers Behind The Proposed Repricing
The illustrative figures are hard to ignore. A new account’s state-creation component moves from 25,000 gas to roughly 183,600. A new storage slot climbs from 20,000 to about 97,920. Deploying a 24-kilobyte contract jumps from just under 5 million gas to nearly 38 million. These are not final user fees. They sit underneath the rest of the execution costs, and the actual ETH paid still depends on the base fee at the moment of inclusion. Still, the scale of the shift explains why developers wanted more time.
I’ve watched enough protocol changes to know that the dangerous part is rarely the headline number. It is the hidden assumption buried three function calls deep. A wallet can raise its outer gas estimate tomorrow. An immutable contract that already locked a fixed stipend inside its bytecode cannot.
What The Historical Replay Actually Showed
Teams ran past mainnet transactions under the proposed schedule. The large majority finished without meaningful trouble. Many of the flagged cases simply needed a higher gas limit and then succeeded. A smaller group, however, still failed even when given substantially more gas. Those are the ones that matter.
Fixed stipends, hardcoded internal allowances, and logic that depends on the difference between two gasleft() readings form the main risk categories. One particularly unusual side effect of the new state-gas reservoir is that gasleft() can actually increase under certain conditions. Code written to expect a steady decrease can take an unexpected path. Once that code is deployed and immutable, the only real options are migration or a change in how users interact with it.
Most contracts in the historical sample looked fine. A small set with fixed gas assumptions deserves direct testing and, in some cases, a deeper fix.
That distinction is everything. Raising a wallet estimate can solve one class of problem. Rewriting or migrating a live contract solves another. Treating every flagged address as automatically broken would be alarmist. Pretending none of them need attention would be careless.
Why External Calls Make The Problem Harder To Spot
Picture a simple payment flow. The outer transaction supplies plenty of gas. The caller then forwards only a limited amount to the recipient, expecting the recipient to perform a narrow action and nothing more. Under the old pricing that limited stipend was enough. Under the new one, even a routine storage touch can exhaust it. The outer transaction still has gas left. The internal call does not. The failure looks sudden and local.
Some applications treat a failed external call as a hard revert. Others continue and record a different outcome. The same underlying gas change can therefore produce opposite business results depending on how the original developer wrote the error handling. That is why a simple “transaction succeeded” label in a replay is not always enough. You need to compare the final state and the emitted events as well.
Account-abstraction flows and multi-step checkouts amplify the issue. A single user action might approve a token, route a swap, and settle a payment across several contracts. If only one internal step carries a hardcoded allowance, the user sees a failed payment without any clear signal about which contract actually ran out of gas. Testing the full sequence under the new rules is far more useful than checking each public method in isolation.
Wallets, Relayers, And Factories Face Their Own Homework
Infrastructure layers sit in a different position. Wallets and RPC providers estimate gas before a user signs. Under EIP-8037 those estimates must account for both ordinary execution gas and the new state-gas dimension. An outdated cached constant can under-estimate a state-heavy transaction and produce failures that the contract itself would have handled with a correct limit.
Deterministic deployment factories raise a narrower edge case. Some of the original factory deployments relied on presigned transactions with hardcoded gas limits. On a brand-new network that adopts the higher schedule before the factory exists, those old signatures could run out of gas. Already-deployed factories on mainnet and existing layer-2 networks are not affected by that particular genesis scenario. The distinction matters. Claiming every factory is about to disappear would be misleading.
Even successful transactions can change cost structure. A business that regularly deploys contracts or creates many storage slots may see materially higher fees even when no function fails. Fee quotations, subsidy policies, and storage strategies may all need revision. Success and cost are not the same conversation.
The 200 Million Gas Limit Was Only A Test Parameter
It is easy to fixate on the big round number. The 200 million gas limit was scheduled for Hoodi to match what Sepolia had already tried. It was never a promise that mainnet would adopt the same ceiling the following week, nor that user fees would drop by any particular percentage. Removing it from the Hoodi schedule simply keeps the postponed fork components together. Operators will not be stress-testing higher capacity under the full Glamsterdam rule set next Monday.
Glamsterdam itself is larger than any single EIP. Enshrined proposer-builder separation changes how block payloads are handed off. Block-level access lists help clients identify which accounts and storage locations a block will touch, opening the door to more parallel validation work. Those pieces still need realistic activity to prove themselves. A higher gas limit without proper accounting for expensive state operations could make validation harder for ordinary node operators. The pause therefore touches both application compatibility and the broader scaling plan.
What Hoodi Operators Must Do Right Now
The immediate operational risk sits on the testnet. Clients or custom configurations that still carry the old activation time could disagree with the revised schedule. A validator that expects new execution rules or consensus duties at the cancelled epoch while the rest of the network does not can lose the ability to follow the canonical chain.
- Check the latest release notes for both execution and consensus clients
- Remove any stale custom fork configuration before October 26
- Verify that validator and builder infrastructure no longer points at the cancelled epoch
- Watch for updated client versions as the Foundation posts them
Doing nothing is not automatically safe simply because the fork was delayed. Software that was prepared for the old date can still fire on that date if the configuration is left untouched.
Ordinary mainnet holders do not need to change anything because of this notice. A protocol engineer investigating the EIP needs different evidence. An application team whose contracts make fixed-gas assumptions needs its own test plan. Those are separate audiences with separate deadlines. A single “upgrade delayed” headline does not serve all of them equally.
How Developers Are Thinking About The Trade-Offs
Public coordination always carries cost. Operators prepared software for one date and must now unwind it. Application developers keep testing against a proposal whose final shape may still shift. That visible cost is real. The cost of shipping a mainnet rule that breaks widely used contracts would be harder to reverse and could touch funds or dependent applications.
The October 22 notice does not quantify the exact size of the remaining risk. It does make clear that core developers considered the interaction important enough to halt the Hoodi rehearsal. A revised proposal could keep the goal of charging for state while adjusting the gas-reservoir mechanics or the transition rules for existing contracts. It could also keep the current specification and place the burden on targeted application fixes. No public decision between those routes has appeared yet.
In my view the most interesting part of this episode is the order of evidence. Historical replays surface a small affected group. Public testnets reveal client and application behavior under live conditions. Mainnet finally exposes the rules to economic pressure at full scale. Each stage answers questions the previous stage cannot. A short delay on Hoodi may buy necessary time, yet it does not itself prove the eventual rules are safe.
What Application Teams Should Examine Next
Teams that maintain live contracts have concrete steps available even while the investigation continues.
- Run the affected-contract search tools against their own addresses
- Re-test every user path that creates accounts, storage slots, or large deployments
- Inspect any internal call that forwards a fixed gas amount
- Check automated agents and older wallets that may still cache outdated estimates
- Compare both success status and final state when replaying under the new schedule
If a contract appears clean in the historical sample, that is useful but incomplete. A rarely called function that never appeared in the replayed history can still hide a vulnerable assumption. Maintainers need to exercise the exact routes their users actually take, including any bot or cached estimate that sits outside the main application code.
When an internal gas allowance is compiled into immutable bytecode, simply raising the outer transaction limit may not help. Migration then becomes the realistic path. Moving balances, approvals, and user permissions carries its own communication and security overhead. Customers must know the legitimate new address and avoid look-alike scams. No mass migration has been announced. The possibility remains a contingency for the small set of contracts that cannot be patched in place.
Broader Context Around State Growth And Throughput
Ethereum’s state has grown steadily since the last substantial gas-cost adjustments around the Berlin fork. Raising block capacity without accounting for the most expensive state operations can make validation harder for ordinary node operators. EIP-8037 tries to assign a separate meter to that growth so the cost does not hide inside a larger headline gas limit. A related proposal, EIP-8038, addresses some of the costs of reading and writing existing state. They solve different parts of the same resource question.
Block access lists help clients organize validation work in parallel. That may support higher throughput under favorable conditions. They do not erase the persistent storage created by new accounts and slots. A testnet needs to run the combined upgrade under realistic activity because an improvement in one dimension can expose a constraint in another. The postponed Hoodi exercise leaves that combined rehearsal unfinished for the moment.
Perhaps the most practical takeaway for ordinary users is that no October 26 mainnet action has been announced. Fee estimates may shift later. Wallet interfaces may update their defaults. None of that requires action from holders simply because a testnet schedule was withdrawn.
What A Clean Path Forward Would Look Like
A revised schedule should state clearly which version of the EIP-8037 rules will be tested, what changed if the proposal itself is amended, and which client versions agree on the new Hoodi epoch. Application maintainers need enough lead time to run searches, update estimators, raise limits where that is sufficient, and examine hardcoded internal allowances where it is not.
Public evidence worth watching includes updated replay findings, results from purpose-built devnets that already use the final gas schedule, a successful Hoodi activation with diverse clients in agreement, and a separate mainnet announcement that does not simply extrapolate from the testnet date. Even a clean Hoodi run remains a rehearsal. It does not guarantee any particular ETH price or final transaction fee.
I’ve found that the healthiest upgrades are the ones that treat uncertainty as information rather than as an inconvenience. The decision to pause Hoodi is inconvenient. It is also a signal that the people closest to the code still take contract compatibility seriously enough to slow the public timeline. That attitude has served the network before. It is worth watching how the investigation resolves before anyone draws firm conclusions about the final shape of Glamsterdam.
Key Points Worth Tracking In The Coming Weeks
- Client releases that explicitly remove the cancelled October 26 Hoodi activation
- Any new replay results or adjustments to the proposed gas rules
- A replacement epoch once the investigation reaches a clearer conclusion
- Reports from affected builders on whether higher limits were enough or whether deeper code changes were required
- A distinct mainnet schedule announced only after testnet coordination is complete
The story is still unfolding. The October 26 date is gone. The deeper questions about state pricing and existing contracts remain open. How those questions are answered will shape not only the next testnet rehearsal but the practical experience of every application that creates lasting state on Ethereum.
For now the practical message is simple. Hoodi operators need to clean their configurations. Application teams whose code makes fixed-gas assumptions need to test those paths. Everyone else can keep watching without changing anything on mainnet. The pause is temporary. The underlying design questions are not.