EIP-7928 Update: Block Access List Constraints for Solidity Devs
EIP-7928 update introduces gas-based block access list constraints. Learn the impact on Solidity dev and gas optimization.

EIP-7928 Update: New Block Access List Constraints for Ethereum Developers
On February 16, 2026, a significant update to EIP-7928 was merged, introducing a gas-based constraint for block access lists (BAL) instead of a fixed item cap. As reported by EIPs Updates, this change directly impacts how Ethereum transactions are processed and optimized, especially for developers working on high-throughput dApps or complex smart contracts. If you're building with Solidity or managing gas-intensive protocols, understanding this update is critical to avoid unexpected gas costs or transaction failures.
What's New in EIP-7928
The core innovation in this EIP-7928 update is the shift from a hardcoded maximum number of items in the block access list to a dynamic constraint based on available gas. This is a more flexible approach that aligns with Ethereum's ongoing efforts to optimize resource allocation post-merge. Here's the technical breakdown:
-
Gas-Based Constraint Formula: The block access list size is now governed by the equation:
bal_items * ITEM_COST <= available_gas + system_allowanceWhere:
bal_items = storage_reads + addresses(total storage accesses and unique addresses in the block)ITEM_COST = GAS_WARM_ACCESS + TX_ACCESS_LIST_STORAGE_KEY_COST(gas cost per item as defined in Ethereum's gas schedule)available_gas = block_gas_limit - tx_count * TX_BASE_COST(remaining gas after base transaction costs)system_allowance = (15 + 3 * (MAX_WITHDRAWAL_REQUESTS_PER_BLOCK + MAX_CONSOLIDATION_REQUESTS_PER_BLOCK)) * ITEM_COST(accounts for system contract accesses outside user transactions)
-
System Allowance Details: The
system_allowanceterm incorporates constants from related EIPs like EIP-7002 (withdrawal requests) and EIP-7251 (consolidation requests), ensuring system operations don't starve user transactions of gas. -
Exclusion of EIP-2930 Access Lists: Importantly, entries from EIP-2930 access lists are not automatically included in the BAL. Only addresses and storage slots explicitly touched or modified during execution are counted, reducing unnecessary gas overhead.
This change means that the number of BAL items is no longer a hard limit but a function of gas availability, which could vary block by block based on network conditions and transaction complexity.
Developer Impact
For Ethereum developers, particularly those working on DeFi protocols or dApps with heavy state access, this update introduces both opportunities and challenges:
-
Migration Requirements: No immediate breaking changes are introduced for existing smart contracts, as the update operates at the protocol level. However, developers using tools like Hardhat or Foundry for testing should update their local environments to simulate the new gas constraints accurately. Check the latest releases of these tools for compatibility with EIP-7928's gas model.
-
Gas Optimization Opportunities: The dynamic cap allows for more items in the BAL when gas is plentiful, potentially reducing the need to split complex transactions across multiple blocks. For instance, a DeFi protocol executing batch swaps or liquidations might fit more state accesses into a single block if gas conditions are favorable.
-
Risk of Gas Misestimation: On the flip side, the variability of
available_gasmeans that gas estimation becomes trickier. If your dApp relies on predictable gas costs for state-heavy operations (e.g., looping over large storage arrays), you might encounter reverts during high-congestion periods whenavailable_gasis low. -
Performance Implications: While no specific benchmarks are provided in the EIP update, the gas-based approach should theoretically improve throughput for blocks with lower transaction counts, as more gas can be allocated to BAL items. Developers can monitor real-world performance using data from platforms like DeFiLlama to see how this plays out in production.
-
New Capabilities: This update indirectly supports scalability improvements by ensuring system operations (like withdrawals under EIP-7002) don't disproportionately impact user transactions. This is a step toward better resource sharing in Ethereum's post-sharding roadmap.
If you're deep into smart contract optimization, consider revisiting gas patterns in libraries like OpenZeppelin to align with this new model.
Getting Started with EIP-7928 Compliance
Adapting to this update doesn't require a full rewrite of your codebase, but there are practical steps to ensure your dApps handle the new constraints effectively:
-
Update Testing Environments: Ensure your development stack (Hardhat, Foundry, or Truffle) is running the latest Ethereum client simulations that incorporate EIP-7928's gas rules. For Hardhat users, check the Hardhat documentation for network configuration updates.
-
Refine Gas Estimation: Modify your transaction scripts to account for variable BAL sizes. For instance, in Solidity, if you're batching storage reads, add fallback logic to handle potential gas shortages:
solidity1function batchReadStorage(address[] calldata targets) external returns (uint256[] memory values) { 2 values = new uint256[](targets.length); 3 for (uint256 i = 0; i < targets.length; i++) { 4 require(gasleft() > 5000, "Insufficient gas for storage read"); 5 values[i] = uint256(keccak256(abi.encodePacked(targets[i]))); 6 } 7 return values; 8}This snippet includes a basic gas check to prevent reverts mid-execution.
-
Monitor Network Conditions: Use APIs from providers like Alchemy to fetch real-time
block_gas_limitand congestion data, allowing your dApp to dynamically adjust transaction complexity based onavailable_gas. -
Common Gotchas: Be cautious of over-optimizing for BAL item counts without considering
system_allowance, which reserves gas for system contracts. Also, test edge cases wheretx_countspikes, reducingavailable_gasunexpectedly. For more testing strategies, explore resources in our Developer Hub.
For the full specification and rationale behind EIP-7928, refer to the official Ethereum developer documentation. If you're looking for secure contract templates to experiment with, check out our smart contract codebase.
Use Cases and Future Implications
This update is particularly relevant for developers in DeFi and dApp ecosystems where state access is a bottleneck. Consider these use cases:
-
DeFi Batch Operations: Protocols executing large batch operations (e.g., liquidations or yield farming payouts) can leverage the dynamic BAL size to process more transactions in a single block when gas is abundant, potentially reducing user wait times.
-
NFT Marketplaces: Platforms with high storage read/write operations (e.g., bulk minting or transfers) might see variable performance based on network congestion. Developers should implement adaptive logic to handle these fluctuations.
-
Privacy-Focused Applications: While EIP-7928 doesn't directly address zero-knowledge (ZK) proofs, the gas flexibility could indirectly benefit ZK-rollups by allowing more state accesses per block under favorable conditions. As a cryptography enthusiast, I’m intrigued by how this might pair with future ZK-EVM optimizations—imagine proving state transitions with fewer gas constraints. For context, academic papers like those on zk-SNARKs (e.g., Groth16) show proving times of ~200ms on modern hardware; if BAL constraints ease gas pressure, we might see tighter integration of ZK systems in Ethereum's L1.
In conclusion, EIP-7928's gas-based approach to block access lists is a nuanced but impactful change for Ethereum developers. It demands a shift in how we think about gas optimization, but it also opens doors for more efficient transaction batching. If you're auditing contracts for gas efficiency, consider using our smart contract audit tool to catch potential issues early. Let’s keep building smarter, more scalable dApps together.
Elena covers privacy-preserving technologies, zero-knowledge proofs, and cryptographic innovations. With a background in applied cryptography, she has contributed to circom and snarkjs, making complex ZK concepts accessible to developers building privacy-focused applications.





