Zelcore

Ethereum Gas Mechanics: EIP-1559, Priority Fees, and Blob Fees After Dencun

9 min read
Ethereum Gas Mechanics: EIP-1559, Priority Fees, and Blob Fees After Dencun

Open a block explorer and pull up any ordinary ETH transfer receipt. You will see three numbers that, together, explain every fee you have ever paid on Ethereum: gasUsed (for a plain transfer, exactly 21,000), a baseFeePerGas set by the protocol, and an effectiveGasPriorityFee paid as a tip to the validator. Multiply them out and you get the entire bill. A transfer during a quiet block at 10 gwei base fee and 2 gwei tip costs 21,000 × (10 + 2) = 252,000 gwei, or 0.000252 ETH. No mystery, no guesswork.

That predictability is recent. Before the London hard fork in August 2021, Ethereum ran a first-price auction: every user guessed what everyone else would bid, overpaid routinely, and watched their transactions stall when they guessed wrong. EIP-1559 replaced that mess with an algorithmic price the protocol posts itself, and Dencun in March 2024 added a second, parallel fee market for rollup data. Between them, these two markets now price almost everything that happens on Ethereum. If you read only a beginner's introduction to why transactions cost anything at all and stopped there, this is the layer that fills in the 2026 picture.

This is Part 3 of the Ethereum Deep Dive. Part 2 covered the per-opcode mechanics — intrinsic gas, calldata pricing, and opcode-level costs inside the EVM. This part zooms out to the market-level dynamics: how the protocol sets prices, why validators get tipped, and what blobs changed.

Anatomy of a transaction fee

Every post-London transaction follows one formula:

total_fee = gasUsed × (baseFee + priorityFee)

The baseFee is the per-gas price the protocol sets for the current block. The priorityFee (your tip, called maxPriorityFeePerGas in the transaction) is what you add on top to incentivise a validator to include you. A plain ETH transfer always uses 21,000 gas. A Uniswap swap might use 150,000. Minting an NFT, 100,000–300,000 depending on the contract. Part 2 explained why each opcode has the cost it does; here we treat gasUsed as an input.

The split between base fee and tip matters because they do different things. The base-fee portion (baseFee × gasUsed) is burned — permanently removed from circulation. The priority-fee portion goes to the validator who proposes the block. That burn is not a side effect. It is central to why EIP-1559 burned a chunk of ETH on every transaction since London and why ETH supply pressure now tracks network usage directly.

Two more mechanics are worth knowing. First, maxFeePerGas is your hard ceiling. If the actual baseFee + tip comes in below it, the difference is refunded automatically — you are not charged the ceiling, only the real clearing price. Second, unused gas itself is refunded. Allocate a 50,000-gas limit for a transfer and only 21,000 execute, and the remaining 29,000 units come back. Both behaviours mean overestimating the limit is almost costless; underestimating fails the transaction and still charges you for what ran.

The EIP-1559 auction: target vs max block gas

Every Ethereum block has two gas budgets, not one. The target is 15 million gas; the maximum is 30 million. The elasticity multiplier is 2 — blocks can stretch to twice their target when demand is high, but the protocol wants them at target on average.

The base fee is how the protocol steers supply toward demand. After each block, the next block's base fee adjusts based on how full the previous one was:

That 12.5% cap comes from BASE_FEE_MAX_CHANGE_DENOMINATOR = 8 in the spec — each adjustment is bounded to one-eighth of the current base fee. With a 12-second slot, this means the fee can double in roughly 72 seconds of sustained demand, or halve just as fast once pressure drops. Prices move, but they move smoothly.

The old first-price market had no such smoothing. Every transaction was a private guess. Now the protocol posts a takeable number and the queue clears. The burn (see Part 1) is what makes this credible: because validators do not receive the base fee, they have no incentive to manipulate it, and users can treat the posted number as an honest clearing price rather than a rigged auction. Compare this to how Bitcoin's fee market works by weight units and mempool bidding — Bitcoin still runs the old first-price style, which is why fee estimation there is still guesswork.

Priority fees: the validator tip

If the base fee clears the queue, why tip at all? Because the tip is what puts you at the front of the queue within a block. Validators (or more precisely, the block builders they outsource to) sort candidate transactions by priority fee, highest first, and fill the block until they hit the gas limit.

In 2026's low-congestion conditions, typical tips are:

Close to 90% of mainnet blocks today are built via MEV-Boost, a system in which validators outsource block construction to competitive builders. Those builders assemble the most profitable block by packaging searcher bundles alongside ordinary user transactions. For you as a user, two things follow. One, wallet "slow / normal / fast" tiers are not fixed gwei values — they are percentiles of recent block tips (roughly the 25th, 50th, and 75th), recomputed continuously. Two, bumping the tip increases your inclusion probability but also signals to searchers that you are worth front-running; for MEV-sensitive actions, a private RPC like Flashbots Protect is often a better tool than a higher tip.

EIP-4844 blobs: a second, independent fee market

On 13 March 2024, at epoch 269568, the Dencun hard fork activated and Ethereum grew a second fee market. The mechanism is EIP-4844, often called proto-danksharding, and the new object is a blob.

A blob is exactly 131,072 bytes — 128 KB, structured as 4,096 field elements of 32 bytes each. A new transaction type (type 3) can carry blobs alongside its calldata. GAS_PER_BLOB equals 2^17 = 131,072 blob-gas units, and blob gas has its own base fee, its own target (BLOB_BASE_FEE_UPDATE_FRACTION), its own minimum (MIN_BASE_FEE_PER_BLOB_GAS = 1 wei), and its own per-block 12.5%-style adjustment. Regular gas and blob gas are priced completely independently. A full rollup batch during blob-market quiet can cost less than a single Uniswap swap.

The key insight is that blob data is not stored forever. Blobs are pruned after MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS = 4,096 epochs, roughly 18 days. What persists permanently is a KZG commitment (VERSIONED_HASH_VERSION_KZG = 0x01) — a small cryptographic fingerprint. That is all rollups need: they prove their batch to the L1 while the data is live, and the commitment on-chain is enough to prove fraud or reconstruct state later. Rollups no longer pay 16 gas per non-zero calldata byte (Part 2 covers that pricing); they post to blobs, which after Dencun cut L1 costs for L2s by 10–100x.

Dencun launched with 3 blobs per block as target and 6 as maximum. Pectra (7 May 2025, epoch 364032) shipped EIP-7691, raising those to 6 target and 9 max — effectively doubling rollup throughput overnight. Fusaka (3 December 2025) then introduced PeerDAS, a data-availability sampling scheme in which each node only stores about one-eighth of blob data but can still verify the whole, plus "BPO" (Blob Parameter Only) forks that let future blob-capacity increases ship without a full hard fork. Blob base fees in 2026 sit at the 1-wei floor most of the time; an entire rollup's daily L1 blob bill can be a fraction of a cent.

Reading your wallet's fee UI

The vocabulary on the fee screen is now readable. Max fee is your ceiling (maxFeePerGas); the protocol will never charge more, and anything above baseFee + tip is refunded. A common rule is to set it to about 2× the current base fee to survive a few upward adjustments. Max priority fee is your tip (maxPriorityFeePerGas) and must be less than or equal to the max fee. A tip that is too low during congestion can leave the transaction pending through several blocks before the mempool drops it.

The slow/normal/fast tiers are recent-block percentiles, not fixed prices, so override them when the default estimate does not match your goal — bump the tip for a time-critical action, lower the max fee during quiet hours for a routine transfer, or replace a stuck transaction by resubmitting with the same nonce and a higher tip. For the applied side of these decisions, wallets, gas, and approvals — the three things every DeFi user must understand is where the fee UI meets the approvals model.

Blob fees are not exposed in consumer wallets because end users do not send blobs; rollups do. But when you bridge to or batch from an L2, part of your L2 fee is the rollup's pass-through blob bill. Watch both markets move — they are cheap for different reasons at different times.

Key takeaways

Part 4 turns to staking — how validators earn those priority fees and what 32 ETH actually commits to.


Further Reading

Sending Crypto: Fees, Speed, and Getting It Right

Sending Crypto: Fees, Speed, and Getting It Right

A beginner's walkthrough for sending crypto in Zelcore: how fees work per chain, the small-test rule, verifying confirmations, and unsticking a pending tx.

9 min read
Halvings, Burns, and Supply Events

Halvings, Burns, and Supply Events

A field guide to crypto supply events: issuance cuts, burns, and unlocks. With Bitcoin's 20M milestone, ETH's post-Dencun reality, and 2026's unlock wave.

9 min read
How a Blockchain Transaction Works, Step by Step

How a Blockchain Transaction Works, Step by Step

Traces a single send from the moment you hit confirm through signing, broadcast, the mempool, block inclusion, and final confirmation — so you understand why it takes time and why fees exist.

7 min read

Join Our Newsletter

Get a friendly update from us once a month. No spam, just the latest from Zelcore.

Join Our Newsletter
    Ethereum Gas Fees in 2026: EIP-1559 and Blob Fees | Zelcore