Skip to content

Rollup Data Availability and Blob Fees

How Ethereum makes rollup batch data available, what two blobs cost at a stated base fee, and when an audit needs archived data.

Rollup data availability means independent participants can obtain the data they need to verify or reconstruct the state of a layer 2 rollup. On Ethereum, a rollup can publish that data in blobs, fixed-size packages with a separate charge called a blob fee. Tracking that charge helps explain why a rollup's posting costs can move even when the number of L2 transactions stays the same. Ethereum's data availability guide · EIP-4844

What goes into a blob?

An optimistic rollup can publish compressed transactions so independent nodes can replay them and challenge a disputed result. A validity rollup uses a proof to establish that the state transition is correct, and can publish state changes and supporting data, such as new contract bytecode, so nodes can reconstruct the new state. A blob's cryptographic commitment lets a node authenticate a copy of the data. Reconstruction still requires the data itself. Ethereum's guide to data availability and rollups · ZKsync's state reconstruction guide
Rollups can put data in Ethereum transaction calldata, which uses ordinary execution gas. EIP-4844 introduced blob-carrying transactions, which reference blobs by hash. Ethereum's consensus network distributes the payload separately, and Ethereum meters the payload in blob gas, so rollups can buy data space without paying execution gas for each payload byte. Every blob uses 131,072 blob gas, even when partly filled. For a given blob base fee, compression saves on the blob charge when it reduces the number of blobs the batch needs. EIP-4844 gas accounting and consensus validation

The price paid for two blobs

Suppose a fictional batch needs two blobs and is included in an Ethereum block with a blob base fee of 3 gwei per blob gas. At 131,072 blob gas each, the batch uses 262,144 blob gas. One gwei is one billionth of an ETH. Ethereum's denominations of ether
Blob fee=262,144 blob gas×3 gweiblob gas=786,432 gwei=0.000786432 ETH.\begin{aligned} \text{Blob fee} &= 262{,}144\ \text{blob gas}\times 3\ \frac{\text{gwei}}{\text{blob gas}}\\ &=786{,}432\ \text{gwei}\\ &=0.000786432\ \text{ETH}. \end{aligned}
The sender's max_fee_per_blob_gas sets the highest blob price the transaction can accept. With a cap of 5 gwei per blob gas, the transaction clears that price check at 3 gwei and pays 3 gwei per blob gas. If the block's blob base fee exceeds the cap, the transaction is ineligible for that block. The protocol burns the actual blob fee and charges it even if the included transaction reverts. The transaction also pays for ordinary Ethereum execution gas. EIP-4844 gas accounting · Execution-layer validity rules
For a fictional batch of 2 blobs, the included block charges 3 gwei per blob gas and the sender's cap is 5 gwei per blob gas. The 262,144 blob gas costs 0.000786432 ETH. The posting transaction also incurs a separate Ethereum execution charge.
For a fictional batch of 2 blobs, the included block charges 3 gwei per blob gas and the sender's cap is 5 gwei per blob gas. The 262,144 blob gas costs 0.000786432 ETH. The posting transaction also incurs a separate Ethereum execution charge.
The block's price sets the blob charge. The gap up to the sender's cap is unused headroom.
To reconcile a real posting transaction, multiply blobGasUsed by blobGasPrice on its Ethereum receipt. Record gasUsed times effectiveGasPrice separately as its execution charge. The fee charged to an L2 user follows the rollup's own schedule. OP Mainnet, for example, uses an estimate of the transaction's compressed size as an input to the user's L1 data fee. Ethereum execution API receipt schema · OP Mainnet's L1 data fee

Capacity can change, and data can expire

The blob base fee responds to blob usage relative to a protocol target. Pectra raised the blob target and limit. Fusaka introduced PeerDAS, which adds redundant data so nodes can check availability by sampling pieces of blobs from peers. Blob Parameter Only forks can change capacity and how quickly prices adjust. Fusaka also made the blob fee update take the execution base fee into account under low blob prices. EIP-7691 · EIP-7594 · EIP-7892 · EIP-7918
Ethereum peers must serve the data columns they hold over a minimum window of 4,096 epochs, about 18 days on mainnet. Ethereum finality settles which block contained the blob reference. To replay the batch after that window, an auditor depends on the rollup or another archive for the underlying bytes and can verify the retrieved copy against the original commitment. Fulu peer-to-peer specification · Ethereum slot and epoch timing · Historical data retrievability

Sources

Last updated
  • ethereum
  • rollups
  • data availability
  • blobs
  • transaction fees
← Back to the glossaryBack to top ↑