You paid three dollars to bridge tokens onto a rollup and thought: that seems too cheap for a network allegedly on fire right now. It was. The answer was already baked into the protocol, running quietly beneath every transaction you've ever sent.

Ethereum doesn't run one fee market. It runs two, simultaneously, and they barely talk to each other.

That split is intentional. It's one of the more elegant pieces of economic engineering in recent protocol history, and most people who use rollups every day have no idea it exists.

Two Lanes, One Highway

Every Ethereum block has always had a base fee: a single price per unit of gas, set algorithmically, that applies to every ordinary transaction. Send ETH, swap on a DEX, mint an NFT, they all pay the same base fee per gas unit. That price rises when blocks are more than 50% full and falls when they're less than 50% full, targeting a long-run average block utilization of 50%. The mechanism is EIP-1559.

EIP-4844 introduced a second resource entirely: blobs. A blob is a chunk of data, roughly 128 kilobytes, that rollups attach to a transaction so they can post their compressed transaction batches to Ethereum cheaply. Think of it as a temporary sticky note stapled to the block, readable for about 18 days (4,096 epochs) and then gone, never touched by the EVM, never executed. Storage, not computation.

Because blobs are a distinct resource, they get a distinct fee market. The blob base fee is calculated independently, targets a different utilization level, and can sit at near-zero while the regular base fee is spiking. Or vice versa.

These two prices are not coupled. That's the whole point.

The Mechanics, With Actual Numbers

The blob target per block, as shipped with EIP-4844, is 3 blobs, with a maximum of 6. The adjustment algorithm mirrors EIP-1559 almost exactly: if a block contains more than 3 blobs, the blob base fee increases; if it contains fewer, it decreases. The scaling factor allows roughly a 12.5% move per block in either direction, identical to how the regular base fee behaves.

Here's the key divergence. Regular gas and blob gas are consumed by completely different actors for completely different reasons. A busy NFT mint pushes up regular gas. A rollup posting a large batch pushes up blob gas. Neither activity directly affects the other's price.

Work through a concrete scenario. It's an ordinary Tuesday afternoon. A memecoin launch floods Ethereum with swap transactions, and regular gas spikes to 80 gwei. Meanwhile, rollup activity is steady and unremarkable: three major rollups post their usual batches, consuming exactly the 3-blob target. The blob base fee stays flat, maybe at 1 wei. A user bridging onto Optimism pays essentially nothing for their blob data, even though every other transaction on Ethereum is expensive.

Now flip it. A major rollup suffers a sequencer backlog and posts an unusually large volume of compressed transactions across several consecutive blocks (the scale is exaggerated for illustration, but the direction is real). Blob demand spikes past the target. The blob base fee climbs. But it's 3 AM, Ethereum transaction volume is minimal, and the regular base fee is sitting at 4 gwei. Two independent price signals, two independent resources.

Why Separation Was the Whole Idea

Rollups were already posting data to Ethereum before EIP-4844, but they used calldata: the same bytes-per-gas resource that ordinary transactions use. That meant rollup costs were directly entangled with mainnet congestion. When Ethereum was busy, posting a batch got expensive. The rollup user experience was held hostage to whatever CryptoPunks sale or token launch happened to be running that day.

Separating the markets breaks that hostage situation. Rollup operators now bid in a blob market whose price is set by blob demand alone. If no other rollup is posting heavily, your batch is cheap regardless of what's happening on mainnet. The two user populations, people doing DeFi on L1 and people transacting on rollups, no longer compete for the same scarce resource.

This is the design philosophy compressed to one sentence: price what you actually consume, not what someone else nearby is consuming.

The One Honest Caveat

The independence isn't total. Both fee payments are made in ETH, and both require the transaction that carries them to succeed on-chain. A rollup's blob-carrying transaction still pays the regular base fee for the transaction itself, since it occupies a slot in a block. What's independent is the blob portion of that cost. So in a world where regular gas is at 200 gwei, a rollup operator still pays elevated gas for the transaction wrapper, even if the blob fee is negligible.

In practice, the transaction overhead is small relative to blob data costs at any meaningful scale. But it's not zero. Anyone modeling rollup economics precisely needs to account for it. The two markets are independent in mechanism; they share the same block space for transaction inclusion.

There's a second subtlety: the blob fee is burned, just like the regular base fee under EIP-1559. So even at near-zero blob prices, the ETH paid for blobs is destroyed. When blob demand eventually fills the 6-blob maximum consistently, something that will happen as rollup adoption grows, the burn rate from blob fees could become material. At that point, the blob market won't just be an independent price signal. It'll be a meaningful part of Ethereum's monetary dynamics.

What Rollup Operators Actually Watch

Take two rollup operators: call them Maya and Dmitri. Both run optimistic rollups (a design where fraud proofs, not validity proofs, enforce correctness), both post batches to Ethereum. Maya batches aggressively, accumulating transactions for 15 minutes before posting. Dmitri posts every 5 minutes to minimize finality delay for his users.

During moderate blob demand, both pay low blob fees. Then a third large rollup starts posting giant batches every block. Blob fees climb. Maya's 15-minute batching means she posts one transaction where Dmitri posts three. Her total blob fee exposure is one-third of his for the same data throughput, because she hits the elevated rate fewer times, even though the rate is identical at each moment of posting.

Are you building rollup infrastructure? You're running that calculation constantly. Batch size, posting frequency, and blob fee exposure are the three dials. The blob market's independence from mainnet congestion means those dials are actually predictable, which is something calldata economics never offered. That predictability alone was worth the upgrade.

The Road to Full Danksharding

EIP-4844 is explicitly a stepping stone. The long-term vision, Danksharding, targets 64 blobs per block or more, with data availability sampling (a technique that lets light clients verify blob availability without downloading all the data) allowing the network to scale without crushing every node. At that scale, the blob market becomes its own substantial economy.

The current 3-blob target and 6-blob maximum were chosen conservatively: enough to meaningfully reduce rollup costs from calldata levels (reductions of 10x or more were observed in practice after the upgrade), without overwhelming nodes that need to handle blob propagation. The target and max are protocol parameters, upgradeable via hard fork as hardware and network capacity improve.

The EIP-1559-style exponential adjustment mechanism was chosen precisely because it scales cleanly. Whether the target is 3 blobs or 64 blobs, the same algorithm governs price discovery. The math doesn't change; only the numbers do.

Two Prices, One Protocol

Ethereum now runs a compute market and a data market. The compute market (regular gas) prices EVM execution, storage writes, contract calls. The data market (blob gas) prices temporary data availability for rollups. They share a block, they're paid in the same currency, and they're both burned. That's where the similarities end.

For users, the practical upshot is this: your rollup transaction costs are no longer a function of whatever chaos is unfolding on L1 at that moment. For protocol designers, the architecture is a proof of concept that a single chain can run multiple independent fee markets without them cannibalizing each other.

Whether the blob market stays cheap as rollup adoption scales is genuinely unknown. The target will rise with hard forks, demand will grow with usage, and the equilibrium will be whatever the market finds. But the separation of these two resources wasn't a cautious hedge or a temporary patch. It was a conviction about how blockchains should be priced, and so far, the conviction looks correct.