There's a version of this question that gets a simple answer: supply and demand. Block space is limited, demand for it spikes, fees go up. That's true. But it doesn't explain why fees swing from $0.50 to $80 for the same transaction, or why sending a token on Arbitrum costs a fraction of a cent when Ethereum mainnet costs $15. The mechanism is more specific than "supply and demand" captures.
The short version: Ethereum fees are high when a lot of people want to use a small, deliberately constrained resource at the same time. Understanding why that resource is constrained — and what's been done about it — is where this gets interesting.
Every operation on Ethereum consumes computational resources. Simple transfers, complex smart contract calls, token swaps — they all require some amount of computation, storage, and bandwidth from the validator processing them. "Gas" is the unit that measures that computational effort.
A simple ETH transfer costs exactly 21,000 gas units. A complex DeFi transaction — say, a multi-hop token swap through a liquidity pool — might cost 150,000 to 250,000 gas units. The gas unit cost is fixed by the protocol based on opcode complexity. What varies is the price you pay per unit of gas, denominated in gwei (one gwei = 0.000000001 ETH).
Your total fee = gas units used × gas price per unit.
This is where demand enters the picture.
Before August 2021, Ethereum used a simple first-price auction: you bid a gas price, validators picked the highest bids, you got included when your bid won. This worked, roughly, but it was opaque and led to chronic overbidding — people set gas prices too high just to be sure they'd get through.
EIP-1559 changed this. Now there are two components:
Base fee — a protocol-determined price per gas unit that applies to every transaction in a given block. This fee is burned (removed from circulation, not paid to validators). The protocol adjusts the base fee up or down based on how full the previous block was. If the last block used more than 50% of its target capacity, base fee increases by up to 12.5%. If it used less, base fee decreases by the same amount.
Priority fee (tip) — an optional amount paid directly to the validator, on top of the base fee. This is what gets you faster inclusion when the network is congested.
So when you see an Ethereum fee of $20, that's usually a high base fee (reflecting high network demand across all users) plus a modest tip.
The base fee mechanism creates a self-regulating system. High demand → blocks fill up → base fee rises → some users wait or transact on L2s → demand cools → base fee falls. But the adjustment is gradual enough that acute demand spikes — like a highly anticipated NFT mint or a DeFi exploit triggering panic liquidations — can push the base fee up 10x in minutes.
Ethereum mainnet processes roughly 15 million gas units per block (targeting about 50% utilization of a 30M max). At 12-second slots, that's approximately 1-1.5 million gas units per second, which translates to roughly 15-25 simple ETH transfers per second, or far fewer complex smart contract interactions.
This constraint is intentional. Larger blocks would allow more transactions per second, but they'd also require validators to have faster hardware to process and propagate blocks in time. That hardware requirement would price out smaller participants and push the validator set toward institutional infrastructure. Ethereum's design philosophy has consistently prioritized a validator set accessible to ordinary hardware — which means accepting limited block space as a trade-off.
Bitcoin made the same call at 4MB blocks. The throughput constraint is a deliberate choice, not an oversight.
When any popular application on Ethereum competes for that limited space — a major NFT collection launch, a DeFi protocol offering high yields, a meme token going viral — every other user on the network pays higher fees too. That's the mechanism. It's a shared resource with a fixed supply auction.
The honest picture of Ethereum gas fees looks very different in 2026 than it did in 2021 or 2022, because the ecosystem has changed significantly.
Layer 2 networks — Arbitrum, Optimism, Base, zkSync — execute transactions off-chain and post compressed data back to Ethereum. A transaction on Arbitrum or Base typically costs $0.01–$0.10, sometimes less. The L1 security is preserved; the L1 gas cost is amortized across hundreds of transactions bundled in a single calldata payload.
EIP-4844 (March 2024) introduced "blob" transactions — a new data format specifically designed for rollup batch submissions. Blobs are cheaper than regular calldata and use a separate fee market. After EIP-4844, L2 transaction fees dropped another 80-90% in some cases. On high-volume days, sending a token on a major L2 costs fractions of a cent.
Full danksharding — the longer-horizon upgrade that would dramatically expand blob capacity — remains in development. EIP-4844 is explicitly proto-danksharding, a stepping stone. The target is to scale Ethereum's data availability layer sufficiently that L2 throughput stops being the bottleneck.
What hasn't changed is Ethereum L1 mainnet costs for transactions that genuinely need direct L1 settlement. Complex cross-protocol interactions, bridging, new contract deployments — these still face L1 gas prices. During periods of high demand, that still means $5-50 per transaction.
Now: Ethereum L1 fees are most relevant for settlement-layer operations and anything requiring direct mainnet interaction. For most user-facing transactions, the relevant question is what the current L2 fee environment looks like — which has been dramatically cheaper since EIP-4844.
Next: Danksharding development (12-24 months) is worth tracking for anyone building on rollups at scale. If blob space becomes a bottleneck, the economics shift.
Later: The long-run equilibrium between monolithic L1 throughput and modular L2 scaling is an open architectural question. The current trajectory favors the modular path, but it depends on rollup security maturing and cross-L2 composability problems being solved.
High gas fees don't mean Ethereum is broken or failing. They mean it's a shared resource that gets congested under high demand — similar to any constrained infrastructure. The interesting engineering question is whether the L2 architecture resolves this for users at scale without sacrificing the security properties that make L1 worth anchoring to.
That question is being actively answered. The answer so far is "yes, but with caveats."
This is the mechanism. Whether Ethereum's fee structure and L2 ecosystem represent an investment opportunity is a different question, outside this scope.




