Overview
op-batcher reads unsafe blocks from the sequencer, compresses them into channels, splits the channels into frames, and submits those frames to the data availability layer — as Ethereum calldata or blob transactions, or via an Alt-DA layer. It can also select between calldata and blobs automatically based on current L1 prices. It exists because an OP Stack chain is derived from the data availability layer: until op-batcher posts a block’s data, verifier nodes cannot derive it and the chain’s safe head does not advance. Batches must also land within the chain’s sequencing window — see the batcher guide for the policy constraints. Who runs it: the chain operator, as part of the sequencer’s infrastructure, submitting from the chain’s batch submitter address. During data availability backlogs, op-batcher can also instruct the block builder to throttle how much DA-consuming data new L2 blocks include.Get started
- Spin up batcher — set up and configure op-batcher as part of standing up an OP Stack chain.
How-tos
- Configure the batcher — batcher policy, cost tuning, multi-blob transactions, and sequencer throttling.
- Using Blobs — switch the chain’s data availability type to blobs.
- Enable span batches — configure the batch type on op-batcher.
- How to run an Alt-DA mode chain — post data to an Alt-DA layer instead of Ethereum.
Configuration & flags reference
- Batcher configuration reference — every CLI flag and environment variable, with defaults. The reference page states the release it was written against.
Releases
Source & spec links
- Source:
op-batcher/in the Optimism monorepo — its README documents the internal architecture and design principles. - DA throttling deep-dive — in-repo documentation of the throttling controllers (step, linear, quadratic, and PID), their configuration, and runtime management over RPC.
- Batch submitter specification — the normative definition of the batcher’s role.