Skip to main content
Dune’s rollup economics tables track the financial performance of Ethereum L2 rollups by comparing their revenue (gas fees earned from users on L2) against their costs (fees paid to post data and proofs on Ethereum L1).
Maintained by: Dune · Refresh: ~1 hour · Coverage: 10 rollups (revenue), 25 rollups (L1 costs)

Get This Data

Access rollup economics data via API, Datashare, or the Dune App.

Available Tables

When to Use These Tables

  • Analyze rollup profitability (L2 revenue minus L1 costs)
  • Compare L1 posting costs across rollups
  • Track the impact of EIP-4844 blobs on rollup costs
  • Benchmark rollup revenue and growth over time

Coverage

L2 Revenue (10 rollups): Scroll, Mantle, Zora, Linea, Arbitrum, zkSync Era, OP Mainnet, Base, Polygon zkEVM, Blast L1 Fees (25 rollups): Orderly Network, Starknet, Mode, Starkware, Base, Boba, Polygon zkEVM, Blast, Hypr Network, Scroll, Lyra, Public Goods Network, Zora, Mantle, Linea, IMX, zkSync Lite, Loopring, Metis, Aevo, Arbitrum, Manta Pacific, zkSync Era, OP Mainnet, Fraxtal
L1 fees covers more rollups because tracking posting costs only requires monitoring known addresses on Ethereum, while L2 revenue requires Dune to have indexed each L2 chain directly.
Need a rollup that’s not listed? We can add new rollup coverage. Contact our enterprise team →

Query Performance

Both tables are incremental with daily granularity. Filter on day and optionally name.
-- ✅ Good: time-bounded
SELECT * FROM rollup_economics_ethereum.l2_revenue
WHERE day >= DATE '2025-01-01'
  AND name = 'base'

Methodology

These tables are maintained by Dune (source code). L2 Revenue aggregates total gas fees from gas.fees for each rollup’s chain, grouped by day. L1 Fees monitors known rollup batch-posting and proof-verification addresses on Ethereum, decomposing costs into: calldata gas costs, proof verification costs (ZK rollups), and EIP-4844 blob gas costs (post-Dencun).

Example Queries

Rollup profitability (revenue minus costs):
SELECT
  r.name,
  r.day,
  r.l2_rev_usd,
  f.l1_fee_usd,
  r.l2_rev_usd - f.l1_fee_usd AS profit_usd
FROM rollup_economics_ethereum.l2_revenue r
JOIN rollup_economics_ethereum.l1_fees f
  ON r.name = f.name AND r.day = f.day
WHERE r.day >= DATE '2025-01-01'
ORDER BY r.day DESC, profit_usd DESC
L1 cost breakdown: calldata vs blobs vs verification:
SELECT
  name,
  SUM(data_fee_usd) AS calldata_costs,
  SUM(blob_fee_usd) AS blob_costs,
  SUM(verification_fee_usd) AS verification_costs,
  SUM(l1_fee_usd) AS total_l1_costs
FROM rollup_economics_ethereum.l1_fees
WHERE day >= DATE '2025-01-01'
GROUP BY 1
ORDER BY 5 DESC
  • gas.fees — Transaction-level gas data used to compute L2 revenue