Market Prices

BTC Bitcoin
$77,973 -0.11%
ETH Ethereum
$2,286.33 +0.67%
SOL Solana
$94.08 -1.32%
BNB BNB Chain
$706.69 -0.96%
XRP XRP Ledger
$1.25 -0.68%
DOGE Dogecoin
$0.0753 -0.67%
ADA Cardano
$0.1907 -1.65%
AVAX Avalanche
$8.54 -2.98%
DOT Polkadot
$0.9539 +0.32%
LINK Chainlink
$11.24 -4.20%

Event Calendar

{{ๅนดไปฝ}}
15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

28
03
unlock Arbitrum Token Unlock

92 million ARB released

12
05
halving BCH Halving

Block reward halving event

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

18
03
unlock Sui Token Unlock

Team and early investor shares released

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

๐Ÿ’ก Smart Money

0xce30...41cf
Institutional Custody
+$1.8M
75%
0x48a7...979f
Arbitrage Bot
+$0.3M
79%
0xa047...1e1f
Market Maker
+$3.1M
82%

๐Ÿงฎ Tools

All โ†’

One Wei to Forty Gwei: Reading L2 Data Costs at the Blob Level

CryptoPlanB โ€ข โ€ข ETF

Blob base fee: 1 wei. Block 19,426,531.

I pulled that line out of a beacon node log at three in the morning, expecting movement. There wasn't any. Eighteen months after EIP-4844 went live on March 13, 2024, the price of the scarcest new commodity in the Ethereum economy was still welded to its floor.

Then, across a handful of blocks, it wasn't.

The spike lasted hours. Long enough to be a pixel on an annual chart. Long enough to wreck the quarter for any rollup whose batcher happened to fire inside the window โ€” and I have watched batchers fire into exactly that window more times than the charts suggest is coincidence.

An L2 posting every ten minutes paid floor. An L2 posting every hour paid the peak. Same chain. Same data. Same protocol. Different bill by two orders of magnitude.

That asymmetry is the story. Not the fee. The cadence.

Blob fee reset. Margins rewritten.


Before EIP-4844, data availability meant calldata. Sixteen gas per non-zero byte, forever, priced in the same market as every swap and every liquidation on the chain. Rollups were the most gas-sensitive applications in existence because their entire cost of goods was the most expensive bytes in the system, and they were competing for them against MEV bots with infinitely deeper marginal utility.

That era produced a specific kind of engineering: aggressive compression, state diffs, off-chain DA committees, and a lot of very confident claims about scaling that quietly assumed the data bill would keep shrinking.

EIP-4844 didn't just make data cheaper. It created a second, independent market โ€” one that prices bytes and time, not computation.

A blob is 4,096 field elements at 32 bytes: 131,072 bytes, 128 KiB. It carries a KZG commitment and a proof, and it is pruned after 4,096 epochs โ€” roughly eighteen days. It is not stored by execution clients. It is not in the state.

Blob gas is not execution gas. You cannot call a contract with it. You cannot inspect it from the EVM โ€” blob contents are reachable only through the point-evaluation precompile, which verifies a KZG opening at a claimed point. That design detail is load-bearing. The EVM sees a commitment, never the data. Cheap, and deliberately opaque.

The market has three parameters. A target, a max, and an update fraction. Before Pectra: target 3, max 6, update fraction 3,338,477. After EIP-7691: target 6, max 9, update fraction 5,007,716.

The pricing rule:

blob_base_fee = fake_exponential(1, excess_blob_gas, update_fraction)

And excess_blob_gas is a running sum. Every block adds max(0, blob_gas_used โˆ’ target ร— 131,072). Every block under target subtracts from the same accumulator.

Read that again. The accumulator. Not the block.

Congestion doesn't raise the price for that block. It raises the price for every block after it, until the excess burns off. One aggressive batcher can set the price floor for a rollup that posts an hour later, touches a different block, and shares nothing with it but the accumulator.

Opcode leaked. Liquidity drained.


The cost curve flipped from bytes-per-transaction to bytes-per-state.

This is the part I keep seeing misreported.

An OP Stack chain posts transaction data โ€” channelized, brotli or zlib compressed, split across batcher transactions. Cost scales with transaction volume times entropy. A thousand small transfers cost roughly what a thousand small transfers cost.

A state-diff rollup posts storage slots. Cairo and zkSync-era designs post the delta, not the input. Cost scales with the number of slots touched.

These are not the same curve. They are not even the same kind of curve.

A payments rollup โ€” high frequency, tiny value, almost no new state โ€” is nearly free on state-diff DA and expensive on calldata. An NFT mint or a contract-deployment wave is the exact inverse: enormous calldata entropy, trivial state delta.

Which means the compression ratio, not TPS, is the metric that now governs margins. I have been pulling batcher transactions apart for two years, and the spread in compression efficiency between two similarly sized rollups is routinely 2x to 4x. That spread is the entire margin. It is invisible in every dashboard I have ever been sent.

Blob granularity is a fixed cost, and fixed costs consolidate markets.

You cannot buy 0.3 of a blob. The unit is 131,072 bytes, paid in full, whether you fill it or not. A rollup posting a 40 KB batch every ten minutes is buying 128 KiB and discarding two thirds of it as packing waste.

Run that arithmetic on a mid-sized L2 and the waste is the largest line in the data budget. Larger than the fee itself. Larger than the compression savings the team spent a quarter optimizing for.

Which is why the interesting engineering has moved to packing and aggregation: multiple chains or multiple batches stuffed into one blob, or routing through a shared poster. It works. It also puts a third party between your chain and L1 โ€” a trust assumption that nobody is writing into the risk section, including the teams doing it.

Sequencer pricing decoupled from cost of goods.

Before Dencun, L1 data cost was a real fraction of the L2 fee. Fee approximated cost plus a thin spread.

After Dencun, the data cost fell off a cliff. The fee did not follow it proportionally.

Look at what a transfer actually consumes. Execution: tens of thousands of L2 gas at fractions of a gwei. Data: a few hundred bytes of compressed calldata, amortized against a blob whose marginal price at the floor rounds to nothing.

The fee is rent. That is not a scandal โ€” every sequencer is a business and every business prices to demand. But it changes what the fee is. It is no longer a cost pass-through. It is a demand-elasticity function with a policy attached.

Which produces the behavior I keep flagging: when the blob fee spikes, rollups do not reprice in the same block. They eat the delta on fixed-fee users, or they push a variable surcharge onto the next batch. Either way, the users who consumed the cheap window are not the users who pay for the expensive one.

The batcher is running an optimal stopping problem against a hostile counterparty.

Every rollup's batcher has two triggers: a time threshold and a size threshold. Post too eagerly and you pay full price per byte on a thin blob. Post too lazily and the channel grows, withdrawal latency degrades, and you land in the same congested block as everyone else anyway.

The nasty part is the objective function. The batcher does not know next block's excess_blob_gas. It can only react. So the cost-minimizing strategy is to delay โ€” and delay is precisely what turns a smooth six-blob target into a periodic cascade where you and eleven other rollups all fire in the same block and all pay the exponential.

Nobody chooses this. The mechanism produces it.

Blob space is a commons with a single price.

Six blobs per block at target. Roughly 43,200 blobs a day โ€” about 5.6 GB of L1 data availability, shared by every rollup on Ethereum.

There is no per-tenant pricing. There is no reservation. There is no way to hedge a blob.

At a base fee of 40 gwei per blob gas, one blob costs about 0.005 ETH. Multiply by 1,800 blobs an hour and the network is paying roughly 9 ETH an hour for data availability. That is not free. That is a market, and it clears whether you planned for it or not.

A small number of rollups consume the majority of that capacity. When one of them changes cadence โ€” a batch backlog clearing, a throughput push, a new chain coming online โ€” the price moves for everyone. Negative externality, no mechanism to price it.

Which is why the rational move for every large L2 has been to post less often and compress harder. Both work. Both push withdrawal latency up. The user pays in minutes what the protocol stopped charging in wei.

The free lunch has a floor now.

EIP-7918, live since the Fusaka changes, bounds the blob base fee against the execution gas the blob displaces. A reserve price. The one-wei regime was a bootstrap subsidy, and it is structurally over.

I do not think people have absorbed what that means. Blob space is about to become a line item again. And the rollups that will feel it most are not the ones with the most transactions. They are the ones with the worst compression ratios and the most calldata-heavy design.

State root mismatch. Trust updated.


Everyone is modeling blob fees. Almost nobody is modeling who the blob is for.

Here is the uncomfortable part. The fee market is identical for every stack. ZK, optimistic, validium, whatever the pitch deck says โ€” they all buy from the same auction, at the same price, from the same pruner. The data layer has been commoditized underneath them.

Which means the technical differentiation the industry spent four years arguing about is no longer a cost argument. It is a distribution argument. The winning stack is not the one with the better proof system. It is the one that can convince the most projects to stand up a chain, because the marginal cost of a new chain's data bill is now small enough to be somebody else's problem.

The second blind spot is the exit. Eighteen days is longer than a seven-day fraud window, and everyone cites that and stops thinking. But retention is not a protocol guarantee โ€” it is a social one. The archive assumption rests on indexers, the Portal Network, history-expiry work, and goodwill. The blob fee market pays for inclusion. It does not pay for persistence.

I have modeled slashing conditions on alt-DA layers in Python before, and the honest summary is that the economics look great right up until you stress the validator set. Moving off blobs to escape the commons is a real option. It swaps a protocol guarantee for an economic one, and the economic one has never been tested under adversarial load at scale.


Watch three things over the next two quarters. The frequency and duration of blob fee spikes as a demand signal, not a nuisance. The compression ratios visible in batcher calldata โ€” they will separate the survivors faster than any TVL chart. And which rollups quietly start posting state diffs instead of transaction data.

The question I keep coming back to: if the data is free, what exactly is the user paying for?

Because when the answer stops being bytes, the whole fee narrative has to be rebuilt from the opcode up.

Fear & Greed

37

Fear

Market Sentiment

Altseason Index

40

Bitcoin Season

BTC Dominance Altseason

Market Cap

All โ†’
# Coin Price
1
Bitcoin BTC
$77,973
1
Ethereum ETH
$2,286.33
1
Solana SOL
$94.08
1
BNB Chain BNB
$706.69
1
XRP Ledger XRP
$1.25
1
Dogecoin DOGE
$0.0753
1
Cardano ADA
$0.1907
1
Avalanche AVAX
$8.54
1
Polkadot DOT
$0.9539
1
Chainlink LINK
$11.24

๐Ÿ‹ Whale Tracker

๐Ÿ”ต
0x51de...d7bf
1d ago
Stake
9,856,871 DOGE
๐Ÿ”ต
0x0cb2...2619
30m ago
Stake
620.71 BTC
๐ŸŸข
0x3c94...45db
12m ago
In
20,327 SOL