Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
Free 30-min Web3 Consultation
Book Now
Smart Contract Security Audits
Learn More
Custom DeFi Protocol Development
Explore
Full-Stack Web3 dApp Development
View Services
LABS
Guides

How to Evaluate Blob Space Usage

A technical guide for developers and researchers to analyze blob data, calculate costs, and monitor usage for EIP-4844 and Layer 2 rollups.
Chainscore © 2026
introduction
ETHEREUM DENCUN UPGRADE

Introduction to Blob Space Analysis

A technical guide to analyzing blob space usage, a new data availability layer introduced by Ethereum's Dencun upgrade.

Ethereum's Dencun upgrade introduced EIP-4844, which added a new transaction type for blob-carrying transactions. This created a separate, temporary data storage layer called blob space. Unlike calldata, blob data is not accessible to the Ethereum Virtual Machine (EVM) and is pruned after approximately 18 days. Its primary purpose is to provide a low-cost data availability solution for Layer 2 rollups, enabling them to post transaction data more cheaply and pass those savings to users.

To evaluate blob space usage, you must analyze the blob gas market. Blob gas is priced by a separate EIP-1559-style fee mechanism, independent of standard execution gas. The target blob gas per block is 0.375 MB (or three 128 KB blobs), with a maximum limit of 0.75 MB (six blobs). You can monitor real-time metrics like blob gas price, blobs per block, and total blob count using block explorers like Etherscan or dedicated dashboards from Ultrasound.money and Dune Analytics. A sustained high blob gas price indicates demand is exceeding the target capacity.

For developers, interacting with blob data requires specific tools. You can query blob information using the eth_getBlobSidecar RPC method introduced in the Ethereum Execution API. Analyze a blob's content by fetching it from the beacon node consensus layer. The following Python snippet using the web3.py library demonstrates how to get blob data for a transaction: blob_data = w3.eth.get_blob_sidecar(block_identifier='latest'). Remember, the raw blob data is encoded in KZG commitments and must be decoded for analysis.

Key metrics for a comprehensive analysis include blob utilization rate (used vs. target capacity), average blob size, and the ratio of blob-carrying transactions to total transactions. Track which Layer 2 networks (like Optimism, Arbitrum, zkSync) are the largest consumers of blob space. A sudden spike in usage or a consistently full blob block may signal the need for parameter adjustments or the eventual need for blob scaling solutions like data availability sampling in future upgrades.

Understanding blob space is crucial for rollup developers optimizing data costs, node operators ensuring proper synchronization, and researchers studying Ethereum's scaling roadmap. By monitoring its usage patterns, the community can gauge the success of proto-danksharding and plan for the full danksharding implementation, which will further expand this data layer's capacity and efficiency.

prerequisites
PREREQUISITES AND REQUIRED KNOWLEDGE

How to Evaluate Blob Space Usage

Understanding blob space consumption is critical for developers building on Ethereum's post-Dencun ecosystem. This guide covers the core concepts and tools needed to analyze and optimize your data availability costs.

Ethereum's EIP-4844 (Proto-Danksharding) introduced blob-carrying transactions, a new transaction type that includes large data packets called blobs. Unlike calldata, blobs are stored temporarily in the Beacon Chain consensus layer for approximately 18 days and are significantly cheaper. To evaluate usage, you must understand the unit of measurement: a single blob provides ~128 KB of raw data space, but due to encoding, the usable space for your application's data is approximately 125 KB. The primary metric is blob gas, a separate fee market that dynamically adjusts based on network demand for blob space.

You will need to interact with the blob gas price oracle to estimate costs. This can be done by querying the blobBaseFee field from the latest block header via an Ethereum RPC endpoint like eth_getBlockByNumber. Monitoring tools such as Etherscan's blob tracker or Ultrasound.money provide real-time visualizations of blob gas prices and utilization. For development and testing, you can use a local testnet (e.g., a Hardhat or Foundry node with EIP-4844 support) or a public testnet like Holesky to experiment with blob transactions without spending mainnet ETH.

From a technical perspective, evaluating usage requires understanding how your application serializes data into a blob. Common use cases include Layer 2 rollup proof submission and cheap data storage for decentralized applications. You'll need to calculate the number of blobs required for your payload. For example, if your application needs to post 300 KB of commitment data, you will require ceil(300 KB / 125 KB) = 3 blobs. Each blob in a transaction consumes blob gas, and a single transaction can include up to 6 blobs.

Key tools for analysis include blockchain explorers with blob support, RPC methods for fetching blob data (eth_getBlobSidecars), and libraries like ethers.js v6 or viem which have built-in abstractions for constructing blob transactions. To proactively manage costs, implement logic in your smart contracts or off-chain services to monitor the blob gas price and potentially delay non-urgent data submissions during periods of high congestion, similar to strategies used for regular transaction fee estimation.

key-concepts-text
EIP-4844 DENCUN UPGRADE

Key Concepts: Blobs, Data Availability, and Gas

Ethereum's Dencun upgrade introduced blob-carrying transactions to reduce Layer 2 costs. This guide explains how to measure and evaluate blob space usage for developers and network analysts.

Blob-carrying transactions are a new transaction type introduced by EIP-4844. Instead of storing large data chunks in expensive calldata, they attach blobs—large, temporary data packets stored in the Beacon Chain consensus layer for approximately 18 days. This separation of execution and data availability is the core innovation, dramatically reducing the gas costs for Layer 2 rollups to post data to Ethereum. Each transaction can carry up to 6 blobs, with each blob containing roughly 128 KB of compressed data. The primary metric for network capacity is blobs per slot, with a target of 3 and a maximum of 6.

To evaluate blob space usage, you must monitor both blob count and blob gas. Unlike execution gas, blob gas is priced by a separate, dynamic fee market defined by EIP-4844. The base fee for blobs adjusts per block based on the target of 3 blobs per slot. You can query this data using the eth_getBlockByNumber RPC call with the blobGasUsed and excessBlobGas fields. Key tools for analysis include block explorers like Etherscan (which now shows blob counts), the beaconcha.in explorer for consensus layer data, and custom scripts using libraries like ethers.js or web3.py to parse transaction receipts and block headers.

A practical method for tracking usage is calculating the blob utilization rate. This is the percentage of the available blob space (max 6 blobs per slot) being consumed over a given period. High utilization rates (consistently >80%) indicate high demand, which will increase blob gas fees via the EIP-4844 pricing mechanism. To calculate this, you can use a formula like: (Total Blobs in N Slots / (6 * N)) * 100. Monitoring this rate helps predict fee trends and understand the adoption pressure on the new data availability layer. Real-time dashboards from platforms like Ultrasound.Money provide this visualization.

For developers posting blobs, such as rollup operators, it's critical to estimate costs. The gas cost for a blob transaction has two components: 1) the execution cost for the minimal transaction on-chain, and 2) the blob gas cost for the data. You can estimate blob gas using the formula derived from the EIP: blobGas = BLOB_GAS_PER_BLOB * blob_count. The BLOB_GAS_PER_BLOB constant is 131,072 gas. The total blob gas fee is then blobGas * blobBaseFee. In code, you can fetch the current blobBaseFee from the latest block header or using the eth_blobBaseFee RPC method introduced by EIP-4844.

Understanding the data availability sampling (DAS) mechanism is key to grasping blob security. Unlike calldata, blob data is not fully executed by Ethereum nodes. Instead, it is made available for download, and consensus clients ensure its availability through a KZG commitment scheme and sampling. This allows light clients and Layer 2s to cryptographically verify that the data exists without downloading it entirely. The 18-day storage window is designed to be sufficient for all parties, like fraud provers or validity provers, to challenge or verify rollup state transitions. After this period, only the small commitments are stored long-term.

When analyzing blob economics, compare the cost per byte against the old calldata method. Pre-Dencun, posting 128 KB of data as calldata could cost over 0.1 ETH in mainnet gas fees during high congestion. Post-Dencun, the same data in a blob typically costs a fraction of a cent in ETH terms. This 100x+ reduction is the direct benefit. However, blob gas is volatile and responds to demand. Developers should implement gas estimation logic that checks both execution and blob base fees, and consider strategies like blob batching to post data for multiple rollup blocks in a single transaction to maximize efficiency and cost savings.

tools
EIP-4844 & DANKSHRDING

Tools for Blob Data Analysis

Analyzing blob space usage is critical for optimizing costs and understanding network activity post-EIP-4844. These tools help developers track, decode, and benchmark blob data.

04

Node Client RPC Methods

Directly query your execution or consensus client for blob data using standard RPC methods.

  • eth_getBlobSidecars: Retrieve blob sidecars for a given block.
  • eth_blobGasPrice: Get the current blob gas price.
  • eth_feeHistory: Analyze historical base and blob gas prices.
  • Beacon Chain API: Use endpoints like /eth/v1/beacon/blob_sidecars/{block_id} to fetch sidecars. This is essential for developers building applications that programmatically interact with blob data.
06

Custom Indexing with The Graph

Build a subgraph to index and query blob-related events for your specific application. You can:

  • Index the BlobTransaction event to track all blob posts from a specific contract.
  • Create custom metrics like average blob size per user or weekly data volume.
  • Serve this indexed data via GraphQL to your frontend or analytics tools. This approach is for teams needing tailored, real-time analytics on their own blob usage.
DATA ANALYSIS

Key Blob Metrics and How to Calculate Them

Essential calculations for monitoring blob space consumption and costs on Ethereum post-EIP-4844.

MetricDescriptionFormula / CalculationData Source

Blob Gas Used

Total blob gas consumed in a block.

Blobs per block * BLOB_GAS_PER_BLOB (131,072 gas)

Block header (excessBlobGas field)

Blob Gas Price

Current price in wei per unit of blob gas.

Calculated by EIP-1559-style fee market. Use eth_feeHistory RPC.

eth_feeHistory (blobGasPrice)

Blob Size Utilization

Percentage of available blob space used.

(Total blob size in block / (6 * 128 KB)) * 100

Sum blob data from block transactions

Blob Cost per Transaction

Cost in ETH or USD for blob data in a tx.

Blob gas used by tx * Current blob gas price

Transaction receipt & current gas price

Average Blobs per Block

Mean number of blobs included over N blocks.

Sum(blobs in block) / N

Block explorer or custom indexer

Blob Throughput (KB/sec)

Data throughput via blobs on-chain.

(Blobs per block * 128 KB) / Block Time (12s)

Block data and time intervals

Blob Fee Burn

Amount of ETH burned from blob fees.

Blob gas used in block * Blob base fee

Block header (excessBlobGas, base fee)

step-by-step-analysis
EIP-4844 DATA AVAILABILITY

Step-by-Step: Analyzing Blob Usage for a Block

A practical guide to querying and interpreting blob data from Ethereum blocks post-Dencun upgrade.

With the Dencun upgrade and EIP-4844, Ethereum introduced blob-carrying transactions to provide cheap, temporary data availability for Layer 2 rollups. Each block can contain a maximum of 6 blobs, with each blob offering ~128 KB of data space. Analyzing blob usage is crucial for developers and researchers to monitor network adoption, data costs, and Layer 2 activity. This process involves querying an Ethereum execution client's RPC endpoint for specific block data and parsing the new transaction and block fields related to blobs.

To begin, you need access to a node running a post-Dencun client (e.g., Geth, Erigon, Nethermind). The primary method is the eth_getBlockByNumber RPC call. When you request a block with the second parameter set to true (to include full transaction details), the response will contain two new key fields: blobGasUsed and excessBlobGas. blobGasUsed indicates the total blob gas consumed by all transactions in the block, while excessBlobGas is a running counter that influences the blob gas price for the next block via a targeting mechanism similar to EIP-1559.

The individual transactions within the transactions array will also contain new data. Look for a blobVersionedHashes array within a transaction object. This array lists the KZG commitments for each blob attached to that transaction, serving as a reference to the data stored in the consensus layer. The presence of this field confirms a transaction is a type-3 (blob transaction). You can calculate the number of blobs in a block by summing the length of the blobVersionedHashes array for all transactions, or more simply, by dividing the blobGasUsed by the gas cost per blob (currently 131072 gas).

For a concrete example, here is a Python snippet using the Web3.py library to fetch and analyze blob data for a recent block:

python
from web3 import Web3
w3 = Web3(Web3.HTTPProvider('YOUR_RPC_URL'))
block = w3.eth.get_block('latest', full_transactions=True)
print(f"Block Number: {block['number']}")
print(f"Blob Gas Used: {block['blobGasUsed']}")
print(f"Excess Blob Gas: {block['excessBlobGas']}")
total_blobs = sum(len(tx.get('blobVersionedHashes', [])) for tx in block.transactions)
print(f"Total Blobs in Block: {total_blobs}")

Interpreting the results helps gauge network health and Layer 2 economics. A consistently high blobGasUsed (near the per-block limit of 786432 gas) indicates high demand for blob space, which would typically drive up the blob base fee. Monitoring excessBlobGas trends shows how the protocol's fee market is adjusting to this demand. Furthermore, tracking which transactions contain blobs can reveal which Layer 2 networks (like Optimism, Arbitrum, or zkSync) are the most active in posting their data to Ethereum, providing valuable insights into the scaling ecosystem.

For deeper analysis, tools like Etherscan's block explorers now display blob information, and dedicated dashboards like Dune Analytics offer aggregated metrics. However, direct RPC queries remain essential for building custom monitors, alerting systems, or conducting granular research. Understanding this data flow—from the execution layer transaction to the consensus layer blob sidecar—is key to developing and optimizing applications in the post-Dencun Ethereum landscape.

cost-calculation
EIP-4844 DENCUN UPGRADE

Calculating Blob Gas Costs and Fees

A technical guide to understanding and calculating the costs associated with Ethereum's blob-carrying transactions, introduced in the Dencun upgrade.

Ethereum's Dencun upgrade (EIP-4844) introduced a new transaction type that carries blobs of data. These blobs are large data packets (~128 KB each) intended for Layer 2 rollups, stored temporarily in the Beacon Chain consensus layer. Unlike calldata, blob data is not accessible by the Ethereum Virtual Machine (EVM) and is pruned after ~18 days. The primary goal is to provide a low-cost data availability layer, drastically reducing fees for rollups. To manage network demand for this new resource, a separate blob gas market was created, distinct from the standard execution gas market for EVM operations.

Blob gas costs are determined by a dedicated fee mechanism. The base fee for blob gas adjusts per block based on a target of 3 blobs per block and a maximum of 6 blobs per block, using an EIP-1559-style pricing model. The formula for the blob base fee for block N+1 is: blob_base_fee[n+1] = blob_base_fee[n] * exp((blobs_in_block[n] - TARGET_BLOBS_PER_BLOCK) / BLOBS_BASE_FEE_MAX_CHANGE_DENOMINATOR). In practice, you can fetch the current blob base fee via the eth_getBlockByNumber RPC call, looking at the excessBlobGas field and using client libraries to compute the fee.

The total cost for a blob transaction has two components. First, you pay execution gas for the EVM operations of the transaction itself (e.g., a function call to a bridge contract). Second, you pay blob gas for each data blob attached. As of the initial implementation, each blob consumes a fixed 131,072 gas (blob gas units). The cost in ETH is: blob_fee = blob_base_fee * BLOB_GAS_PER_BLOB. Therefore, a transaction with two blobs pays execution_gas_cost + (2 * blob_base_fee * BLOB_GAS_PER_BLOB). Both the execution gas and blob gas portions are burned (destroyed), similar to EIP-1559.

To evaluate blob space usage and forecast costs, developers should monitor the blob gas market. Key metrics include the current blob base fee and the blob gas used in recent blocks. Tools like the Etherscan Dencun Tracker or Beacon Chain explorers provide this data. When building an application, you must decide how many blobs your transaction requires—each rollup batch may need one or more 128 KB blobs. Submitting transactions during periods of low network demand for blob space, when the blob base fee is at or near its minimum, will result in the lowest possible data availability costs.

Here is a practical example using the ethers.js library to estimate the cost of a blob transaction:

javascript
async function estimateBlobTxCost(provider, blobCount) {
    const block = await provider.getBlock('latest');
    // blobBaseFee is derived from block.excessBlobGas
    const blobBaseFee = calculateBlobBaseFee(block.excessBlobGas);
    const BLOB_GAS_PER_BLOB = 131072n;
    const blobGasCost = blobBaseFee * BLOB_GAS_PER_BLOB * BigInt(blobCount);
    // Add estimation for execution gas cost of your specific transaction
    const executionGasCost = await estimateExecutionGas();
    return blobGasCost + executionGasCost;
}

Always test blob transactions on a testnet like Holesky before mainnet deployment.

POST-DENEB ANALYSIS

Blob Usage Patterns by Major Rollup

Comparison of how leading rollups utilize EIP-4844 data blobs for transaction data storage, including adoption rates and cost strategies.

Rollup / MetricArbitrumOptimismBasezkSync Era

Blob Adoption Status

Avg. Blobs per Block

3.2

2.1

4.5

Avg. Data per Blob

95 KB

87 KB

98 KB

Primary Data Type

Calldata + L2 Txs

Batch Metadata

Social Txs

Blob Cost % of Total

~65%

~58%

~72%

~0%

Target Blob Utilization

75-85%

60-70%

80-90%

N/A

Fallback to Calldata

Blob Submission Delay

< 2 blocks

< 4 blocks

< 1 block

N/A

DEVELOPER FAQ

Frequently Asked Questions on Blob Space

Answers to common technical questions about EIP-4844 blob space, its usage, and troubleshooting for developers and node operators.

Blob space is a dedicated data storage layer introduced by EIP-4844 (Proto-Danksharding) on Ethereum. It provides a cheaper and more scalable way to post data for Layer 2 rollups compared to using regular calldata.

How it works:

  • Transactions can include one or more blobs (binary large objects), each ~128 KB.
  • Blobs are stored in the Beacon Chain consensus layer for ~18 days (4096 epochs).
  • After this period, blob data is pruned, but its commitment (KZG commitment) remains on-chain permanently.
  • Execution layer contracts can verify blob data via a precompile (point_evaluation_precompile at address 0x0A).
  • The supply is managed by a blob gas market, similar to EIP-1559, where fees adjust based on demand for the ~0.375 MB per block target.
conclusion
IMPLEMENTATION GUIDE

Conclusion and Next Steps

This guide has covered the core concepts and tools for analyzing blob space usage on Ethereum. The next step is to integrate these techniques into your own monitoring and optimization workflows.

Effectively evaluating blob space usage requires a multi-layered approach. Start by establishing a baseline using public dashboards like Dune Analytics or Etherscan's blob tracker to understand overall network trends. Then, for application-specific analysis, you must directly query the blob_sidecars table in an archive node's database or use the eth_getBlobSidecars RPC method. Key metrics to track include blob count per block, average blob size, and the blob gas base fee, which directly impacts transaction costs for rollups and other blob-heavy applications.

For developers building on L2s or data-intensive dApps, programmatic monitoring is essential. Implement a script that periodically checks the excessBlobGas and calculates the current blob gas price using the formula defined in EIP-4844. Tools like the ethers.js library (v6+) or web3.py can fetch this data. Setting alerts for when the blob gas price exceeds a certain threshold can help you optimize transaction batching and cost management. Remember, each blob can hold ~128 KB of data, so efficient data compression (brotli, zstd) before submission is a critical optimization.

The blob space market is designed to be elastic. If usage consistently hits the target (3 blobs per block on average), the base fee will rise to dampen demand. Monitoring this fee volatility is crucial for budgeting. Furthermore, keep an eye on the evolution of blob-carrying transactions and new standards like EIP-7623 (which proposes to increase calldata cost for non-blob data) to anticipate how economic incentives for data posting will shift. Your evaluation strategy should be adaptive, not static.

To deepen your understanding, explore the raw data yourself. Run an Erigon or Nethermind archive node with full blob history enabled. Examine real blob transactions from major rollups like Arbitrum, Optimism, or Base to see their data structures. The Ethereum Execution API Specs provide the exact RPC endpoints for blob data. Contributing to or creating public dashboards that visualize blob usage for specific protocols is a valuable next step for the community.

Finally, consider the long-term roadmap. Blob space is a precursor to full danksharding, which will exponentially increase data availability capacity. Start evaluating how your application's data scaling strategy aligns with this future. Proactive monitoring today—tracking usage, costs, and client implementations—will prepare your project to leverage cheaper, more abundant data availability as Ethereum's scaling journey continues.