7Block Labs
Blockchain Technology

ByAUJay

Blob Schedules and Capacity Planning: Forecasting DA Costs for L2 Teams

Layer 2 teams can now plan blob usage like a utility bill. This guide shows how to size, schedule, and budget for Ethereum blobspace post-Pectra—and how to prepare your capacity model for December’s PeerDAS/BPO increases—using concrete formulas, live parameters, and operator-grade configuration tips. (blog.ethereum.org)

TL;DR for decision‑makers

  • Ethereum’s May 7, 2025 Pectra upgrade doubled the target blob throughput (from 3→6) and raised the max (6→9), making daily target capacity ≈ 43,200 blobs (~5.3 GiB/day) and max ≈ 64,800 blobs (~7.9 GiB/day). Blob fees have been near the minimum most of the time post‑Pectra. (blog.ethereum.org)
  • On December 3, 2025, Fusaka introduces PeerDAS. Beginning the week of December 9, “Blob‑Parameter‑Only” (BPO) forks raise per‑block target/max to 10/15, then 14/21—plan for target capacity ≈ 8.8 GiB/day (10) rising to ≈ 12.3 GiB/day (14). (blog.ethereum.org)
  • Budgeting rule of thumb (today): the blob base fee is often at its minimum (1 wei per blob gas), so your effective cost is dominated by the execution gas of the type‑3 tx that carries the blobs ($0.50–$3.00 per tx in normal conditions). During spikes (airdrops/inscriptions) price can briefly jump into dollars per blob; design schedules and throttles to smooth demand. (ethresear.ch)

1) What changed in 2025—and what changes again in December

  • Pectra (activated May 7, 2025) included EIP‑7691, increasing blob target/max from 3/6 to 6/9. Daily target capacity ~ 6 blobs/block × 128 KiB × 7,200 blocks/day = 5.3 GiB/day (binary). Max ~ 7.9 GiB/day. Networks have stayed below the new target most of the time, keeping costs “virtually free” in blobspace. (blog.ethereum.org)
  • EIP‑7623 raised calldata’s floor cost to reduce worst‑case block size variance. This nudges DA workloads from calldata to blobs; treat calldata as a congestion relief valve, not the default. (eips.ethereum.org)
  • December 3, 2025 (Fusaka): PeerDAS (EIP‑7594) enables sampling‑based availability checks, and Ethereum will use “BPO” parameter bumps: first to 10/15, then 14/21 blobs per block, starting December 9, 2025. These are config‑only increases designed for fast throughput scaling after PeerDAS. (blog.ethereum.org)

What this means for your budget: cost per byte is structurally lower and capacity is structurally higher in 2025 vs 2024, with another step‑function increase in December. Most quarters will be dominated by execution gas of the batch transaction and not by blob base fees—until short windows of demand spikes. (ethmrc.com)


2) The blob fee mechanism you have to forecast against

Core constants (EIP‑4844):

  • Blob size: 4096 field elements × 32 bytes = 131,072 bytes (128 KiB) per blob.
  • Gas per blob: 2^17 = 131,072 blob gas; min base fee per blob gas: 1 wei.
  • Retention: nodes must serve blob sidecars for 4,096 epochs ≈ 18 days; blobs are pruned after. (eips.ethereum.org)

Pricing dynamics:

  • EIP‑1559‑style base fee adjusts around a target number of blobs per block. Under Pectra (6/9), if a block is “full,” the next block’s blob base fee rises ≈ 8.2%; if a block has zero blobs, it falls ≈ 14.5%. Expect quicker resets after quiet periods and gentler ramps during utilization waves than under the old 3/6 regime. (blockscholes.com)

Two implications that matter to budgets:

  • Near‑zero floor most of the time: when usage stays below target, the blob base fee sits at or near the minimum (1 wei per blob gas), so the blob component is effectively negligible versus your transaction’s execution gas. (ethmrc.com)
  • Spike mechanics: stress events (e.g., inscriptions, large airdrops) can push the blob base fee into multi‑dollar territory for hours. In March and October 2024, spikes hit ~$4–$300 per blob before reverting. You should model such tails with protective scheduling and fallback policies. (coindesk.com)

Tip/priority notes and mempool behavior:

  • Type‑3 (blob) transactions add max_fee_per_blob_gas but no blob‑specific tip. They also pay the regular EVM base/priority gas for the call that anchors the blobs. Mempool replacement commonly requires a ≥10% bump (EIP‑4844 recommends 1.1× for blob base) if you need to reprice. Budget for fee‑doubling behavior in some client pools during replacements. (eips.ethereum.org)

3) From theory to budgets: a simple forecasting model

Define:

  • B = blobs per batch (integer)
  • S = average filled size per blob (bytes, ≤ 131,072)
  • Pb = projected blob base fee per blob gas (wei)
  • Gtx = execution gas used by the batch‑posting tx (units)
  • Peg = projected EVM base fee (wei/gas), and Tip = projected priority fee (wei/gas)
  • ETHUSD = planning exchange rate (your assumption)

Then:

  • Blob component per batch (ETH) ≈ B × (131,072 blob gas) × Pb ÷ 1e18
  • Execution component per batch (ETH) ≈ Gtx × (Peg + Tip) ÷ 1e18
  • Total cost per batch = sum; cost per MiB = total / (B × S / 1,048,576)

Planning examples (use these in your spreadsheet):

  • “Quiet hours” baseline today: Pb = 1 wei (min), Peg ≈ low single‑digit gwei. Blob component per batch is ~0 in USD terms; execution dominates—empirical average per blob‑tx in normals: $0.50–$3.00. Size your blob count to fill blobs and amortize the per‑tx overhead. (ethresear.ch)
  • “Spike risk”: set Pb in your model to 10–50 gwei for stress tests, and simulate 1–3 hours at elevated prices. Use this to size your backlog buffer and throttle policies (see Section 5). Historical spikes: blobscription day peaked > 500 gwei; Scroll airdrop hit ~$4.52 per blob. (coindesk.com)

Seasonalities:

  • Blob demand correlates with “event windows” (airdrops, upgrades). Keep an “events calendar” and flip your batcher into a conservative mode (lower max blobs/tx; shorter channel duration) 12–24 hours ahead of known events. (cointelegraph.com)

4) Designing blob schedules: cadence, fill, and inclusion

Four knobs you control (OP Stack shown; analogous knobs exist on other stacks):

  1. Batch interval (channel duration). Longer intervals help fill blobs (higher utilization) but delay “safe head.” Optimism recommends a 5‑hour upper bound (≈ 1,500 L1 blocks) for cost efficiency, acknowledging that safe head can stall up to that duration—poor fit for CEX/bridge SLOs. For most chains, target 10–60 minutes in steady state; stretch to multi‑hour only when demand is low and your apps tolerate latency. (docs.optimism.io)

  2. Multi‑blob transactions. Enable multi‑frame channels and target 5–6 blobs/tx on medium/high‑throughput chains to amortize execution gas. Raise min base fee/tip caps modestly (e.g., 2 gwei) and extend resubmission timeouts to avoid triggering mempool replacement doubling. (docs.optimism.io)

  3. Compression policy. Use brotli‑10 or ‑11; OP Stack’s default ratio assumption is ~0.6. Treat compression as a first‑class lever: pushing raw data pre‑compression (e.g., dictionary use) can free entire blobs/day at scale. (docs.optimism.io)

  4. Auto DA route. Keep “auto” enabled to fall back to calldata when blobspace surges—remember EIP‑7623 raised the calldata floor to shrink worst‑case blocks, so this path is now a deliberate relief valve, not a primary route. Monitor Peg and Pb and flip policy thresholds based on your cost SLO. (docs.optimism.io)

Inclusion realities to plan for:

  • Builders and relays race under PBS; heavy multi‑blob txs can propagate slower late in the slot. Don’t assume first‑try inclusion for 6‑blob packages when utilization is high—stagger submissions earlier in the slot and avoid “all‑or‑nothing” mega‑packages right before slot boundary. Empirically, blob txs tip less than calldata‑heavy txs, weakening builder incentives; some teams use private submission routes or builder relationships during peaks. (bitgetapp.com)

5) Throttling and backpressure: stop burning money during spikes

Modern batchers (OP Stack) can throttle the sequencer to prevent DA backlogs from exploding your costs:

  • Turn on sequencer throttling and set backlog thresholds (e.g., start at ~3.2 MiB pending DA bytes; max intensity at ~12.8 MiB). Cap per‑tx and per‑block DA size during throttle. Controller types include step/linear/quadratic and an experimental PID mode—great power, great responsibility. (docs.optimism.io)
  • If you experiment with PID control, treat it as production‑gated and pre‑tuned; mis‑tuning leads to oscillations and missed SLOs. The OP batcher’s PIDStrategy is explicitly marked EXPERIMENTAL. (pkg.go.dev)

Runbook snippet (copy/paste into on‑call docs):

  • Trigger: Pb > X gwei for Y blocks OR inclusion latency > Z slots.
  • Action A: halve target blobs/tx; cut channel duration to 5–10 minutes; enable throttling at low threshold.
  • Action B: switch DA route to “auto”; set calldata floor guardrails (post‑7623) to avoid pathological block payloads.
  • Action C: if backlog > 30 minutes, pause new L2 batch creation for low‑priority traffic and drain. (docs.optimism.io)

6) Capacity planning under Pectra and December’s PeerDAS/BPO

Anchor numbers you can put in a spreadsheet (binary units):

  • Pectra (live): target 6 blobs/block → ~43,200 blobs/day → ~5.3 GiB/day; max 9 → ~7.9 GiB/day. (blog.ethereum.org)
  • Post‑PeerDAS BPO1 (Dec 2025): target 10 → ~72,000 blobs/day → ~8.8 GiB/day; max 15 → ~13.2 GiB/day.
  • Post‑PeerDAS BPO2 (Dec 2025): target 14 → ~100,800 blobs/day → ~12.3 GiB/day; max 21 → ~19.8 GiB/day. (blog.ethereum.org)

Example A — payments rollup, 20 tps, 200‑byte median tx, brotli ratio 0.6:

  • Effective bytes/sec ≈ 20 × 200 × 0.6 = 2,400 B/s.
  • Daily DA ≈ 0.2 GiB. Under Pectra you’re < 4% of target capacity; cost dominated by execution gas. One blob every ~53 seconds fully filled; schedule 1–5 minute channels. (docs.optimism.io)

Example B — social rollup, 120 tps, 600‑byte median tx, ratio 0.5:

  • Effective ≈ 120 × 600 × 0.5 = 36,000 B/s (~31.25 KiB/s).
  • Daily ≈ 2.6 GiB. Under Pectra you consume ~49% of target capacity; blob cost still typically at floor, but spikes can matter. Use multi‑blob (5–6) and 5–10 minute channels; enable throttle with quadratic controller. After BPO1, this drops to ~30% of target—cheaper and smoother. (blog.ethereum.org)

Checklist for December:

  • Verify your CL/EL clients are Fusaka‑ready; PeerDAS changes networking and sampling.
  • Re‑tune batcher thresholds upward to reflect 10→14 blob targets, but keep spike runbooks intact.
  • Update your budget forecast with BPO dates and a December/January utilization ramp assumption (seasonally busy). (blog.ethereum.org)

7) Operational realities most teams miss

  • Blobs are ephemeral (≈18 days). If your fraud‑proofs or audits need historical data, integrate a third‑party blob archive (e.g., Blocknative) or run your own capture to S3/Arweave. Don’t rely on L1 to serve blobs day 19. (blocknative.com)
  • Type‑3 transactions cannot be contract creation (to must be non‑nil). Architect your posting contract path accordingly. (eips.ethereum.org)
  • Builders/relays: high‑blob payloads can be inclusion‑sensitive under timing games. Spread submissions across relays/builders; avoid last‑second (late‑slot) multi‑blob sends. (github.com)
  • Monitoring pack: track blob_base_fee, blob_gas_used vs target, success/first‑try inclusion, resubmission count, and backlog of “unsafe DA bytes.” Set alert thresholds tied to your channel duration and throttle limits. (docs.optimism.io)

8) Best emerging practices we see working

  • Use span batches (OP Stack “batch‑type=1”) and brotli‑10/11 for better compression; pair with multi‑frame channels to hit 5–6 blobs/tx when volume permits. (docs.optimism.io)
  • Keep OP_BATCHER_MAX_CHANNEL_DURATION tight (10–60 min) in peak hours to cap safe‑head latency; let it stretch during off‑peak if you need to fill blobs. (docs.optimism.io)
  • Implement throttle‑on‑backlog with conservative defaults; add a manual “circuit breaker” for extreme events (pause low‑priority traffic). Quadratic controller is safer than PID unless you have control‑theory expertise. (docs.optimism.io)
  • Use the batcher’s “auto” DA mode to switch between blobs and calldata based on L1 pricing; keep in mind calldata’s floor was raised by EIP‑7623 to reduce worst‑case block size—your thresholds should consider that. (docs.optimism.io)
  • Pre‑compute “event calendars” (airdrops, L2 token claims) and proactively shrink channel duration + blob target hours beforehand. Past spikes were caused by inscriptions and airdrops; they are predictable enough to hedge. (coindesk.com)
  • Plan for BPOs: set December change windows in runbooks; re‑baseline dashboards to 10/14 targets; test your batcher under 10–14 blobs in staging. (blog.ethereum.org)

9) Putting it all together: a minimal, cost‑aware schedule

  • Off‑peak (blob_base_fee at floor; Peg < 5 gwei):
    • Channel 10–20 min; target 5–6 blobs/tx; multi‑frame on; tips 2 gwei; quadratic throttle enabled; auto DA “prefer blobs.” (docs.optimism.io)
  • Peak (utilization near target; Pb rising):
    • Channel 5–10 min; target 3–4 blobs/tx; resubmission timeout ≥ 180s; throttle thresholds lowered; alerts on inclusion latency. (docs.optimism.io)
  • Spike (Pb > 10 gwei for > 30 min; inclusion retries):
    • Channel 2–5 min; cap 1–2 blobs/tx; enable “auto” (calldata fallback) with ceilings; pause low‑priority traffic; drain backlog before resuming normal policy. (docs.optimism.io)

Budget guardrails you can sign off on:

  • Base forecast: execution gas dominates; expect $0.50–$3.00 per batch tx in normals; blob fee ≈ zero.
  • Stress budget: add a “spike reserve” covering 2–6 hours at Pb = 10–50 gwei. This typically adds a few hundred to low thousands of USD per event for medium rollups; more for high‑volume L2s. (ethresear.ch)

10) What 7Block Labs can do for you

  • Cost models: we deliver a tailored workbook with your tx mix, compression ratios, and on‑chain telemetry—plus December BPO scenarios (10/15, then 14/21). (blog.ethereum.org)
  • Batcher hardening: we tune your multi‑blob/channel config, throttling curves, and runbooks; we add alerts on blob_base_fee and inclusion latency with safe head SLOs. (docs.optimism.io)
  • Archival and compliance: we set up a blob archive pipeline so audits and fraud proofs don’t break after day 18. (blocknative.com)

Appendix: Reference facts you can depend on

  • Dencun (EIP‑4844) mainnet activation: March 13, 2024; blobs are 128 KiB, retained ~18 days; type‑3 txs include max_fee_per_blob_gas and cannot be contract creation. (blog.ethereum.org)
  • Pectra (May 7, 2025): blob target/max moved to 6/9; calldata floor raised via EIP‑7623. (blog.ethereum.org)
  • December 2025 (Fusaka): PeerDAS + BPO increases to 10/15 and then 14/21. (blog.ethereum.org)

Notes on data cited

  • Price dynamics and spike examples draw on primary EF/EIP sources plus independent analytics/research (Galaxy, The Block, CoinDesk/Cointelegraph coverage, and dashboards discussed in those articles). Use them to calibrate stress tests; always confirm current blob_base_fee at runtime when scheduling. (ethmrc.com)

Like what you're reading? Let's build together.

Get a free 30‑minute consultation with our engineering team.

Related Posts

7BlockLabs

Full-stack blockchain product studio: DeFi, dApps, audits, integrations.

7Block Labs is a trading name of JAYANTH TECHNOLOGIES LIMITED.

Registered in England and Wales (Company No. 16589283).

Registered Office address: Office 13536, 182-184 High Street North, East Ham, London, E6 2JA.

© 2025 7BlockLabs. All rights reserved.