The Ethereum Virtual Machine

block gas limit

The block gas limit is the cap on how much total gas all the transactions in a single block may consume. If gas measures computational work, the block gas limit is the size of the block's 'work budget' — once the transactions packed into a block add up to the limit, no more fit, and the rest wait for future blocks. It is the dial that ultimately controls Ethereum's throughput.

On Ethereum mainnet the limit sits around 30 million gas, with the EIP-1559 gas target at half that (around 15 million) being the level the base fee steers toward. Validators are not stuck with a fixed value: each proposer may nudge the limit up or down by at most 1/1024 (about 0.1%) relative to the parent block, a voting mechanism that lets the limit drift over many blocks toward whatever the validator set collectively prefers. This is how the community has raised the limit over the years without a hard fork.

The limit is a balancing act among the trilemma's competing goods. Raising it lets each block hold more transactions, increasing throughput and easing fees — but a bigger block takes longer to propagate across the network, costs more to execute and verify, and accelerates the growth of state that every node must store. Set too high, weaker nodes fall behind and the network centralizes around a few powerful machines; set too low, fees stay high and capacity is wasted. The limit is therefore a deliberately conservative knob.

Because gas measures work rather than bytes, the block gas limit bounds several things at once: it caps how much computation, how many storage writes, and how much calldata a block can carry. This is also why a single transaction can never exceed the block gas limit — it must fit inside one block — and why extremely heavy operations have to be split across multiple transactions.

Gas limit is not block size in bytes. A block full of cheap calldata and a block full of expensive storage writes can both hit the same gas limit while differing hugely in raw byte size.