Skip to main content
This page catalogues every configuration option for the op-batcher, the service that posts L2 sequencer data to L1 to make it available for verifiers. The options are from the --help in v1.10.0. For guidance on choosing values — the batcher policy, cost tuning, multi-blob transactions, and sequencer throttling — see the batcher configuration guide.

Batch generation

batch-type

The batch type. 0 for SingularBatch and 1 for SpanBatch. The default value is 0 for SingularBatch. See the span batch feature page to learn more.
--batch-type=<value>

max-blocks-per-span-batch

Maximum number of blocks to add to a span batch. The default value is 0, meaning no maximum.
--max-blocks-per-span-batch=<value>

compression-algo

The compression algorithm to use. Valid options: zlib, brotli, brotli-9, brotli-10, brotli-11. The default value is zlib.
--compression-algo=<value>

compressor

The type of compressor. Valid options: none, ratio, shadow. The default value is shadow.
--compressor=<value>

approx-compr-ratio

Only relevant for ratio compressor. The approximate compression ratio (<=1.0). The default value is 0.6.
--approx-compr-ratio=<value>

poll-interval

How frequently to poll L2 for new blocks. The default value is 6s.
--poll-interval=<value>

Batch submission

data-availability-type

Setting this flag to auto will allow the batcher to automatically switch between calldata and blobs based on the current L1 gas price.
The data availability type to use for submitting batches to the L1. Valid options: calldata, blobs, and auto. The default value is calldata.
--data-availability-type=<value>

target-num-frames

The target number of frames to create per channel. Controls number of blobs per blob tx, if using Blob DA. The default value is 1.
--target-num-frames=<value>

max-channel-duration

The maximum duration of L1-blocks to keep a channel open. 0 to disable. The default value is 0.
--max-channel-duration=<value>

sub-safety-margin

The batcher tx submission safety margin (in #L1-blocks) to subtract from a channel’s timeout and sequencing window, to guarantee safe inclusion of a channel on L1. The default value is 10.
--sub-safety-margin=<value>

max-l1-tx-size-bytes

The maximum size of a batch tx submitted to L1. Ignored for blobs, where max blob size will be used. The default value is 120000.
--max-l1-tx-size-bytes=<value>

Batcher startup

wait-node-sync

Indicates if, during startup, the batcher should wait for a recent batcher tx on L1 to finalize (via more block confirmations). This should help avoid duplicate batcher txs. The default value is false.
--wait-node-sync=<value>

check-recent-txs-depth

Indicates how many blocks back the batcher should look during startup for a recent batch tx on L1. This can speed up waiting for node sync. It should be set to the verifier confirmation depth of the sequencer (e.g. 4). The default value is 0.
--check-recent-txs-depth=<value>

stopped

Initialize the batcher in a stopped state. The batcher can be started using the admin_startBatcher RPC. The default value is false.
--stopped=<value>

Throttling

The batcher supports throttling configuration to limit DA usage for transactions and blocks, and to control throttle intensity via several controller types. The following flags are available:

throttle.additional-endpoints

Comma-separated list of endpoints to distribute throttling configuration to (in addition to the L2 endpoints specified with --l2-eth-rpc).
--throttle.additional-endpoints=<endpoint1>,<endpoint2>,...

throttle.tx-size-lower-limit

The DA size limit for individual transactions when the throttle intensity is at its maximum. 0 disables limits; use 1 as the smallest effective limit.
--throttle.tx-size-lower-limit=<bytes>

throttle.tx-size-upper-limit

The DA size limit for individual transactions as throttle intensity approaches 0 (minimal throttling). Not applied when throttling is inactive.
--throttle.tx-size-upper-limit=<bytes>

throttle.block-size-lower-limit

The DA size limit for blocks when throttle intensity is at maximum (applies for linear and quadratic controllers). 0 disables limits; use 1 as the smallest effective limit.
--throttle.block-size-lower-limit=<bytes>

throttle.block-size-upper-limit

The DA size limit for blocks when throttling is inactive (throttle intensity = 0).
--throttle.block-size-upper-limit=<bytes>

throttle.controller-type

Type of throttle controller to use. Valid values: step, linear, or quadratic (default).
--throttle.controller-type=<step|linear|quadratic|pid>

throttle.unsafe-da-bytes-lower-threshold

Threshold on unsafe_da_bytes beyond which the batcher will start to throttle the block builder. 0 disables throttling.
--throttle.unsafe-da-bytes-lower-threshold=<bytes>

throttle.unsafe-da-bytes-upper-threshold

Threshold on unsafe_da_bytes at which throttling reaches maximum intensity (applies for linear and quadratic controllers).
--throttle.unsafe-da-bytes-upper-threshold=<bytes>

Transaction manager

num-confirmations

Number of confirmations which we will wait after sending a transaction. The default value is 10.
--num-confirmations=<value>

max-pending-tx

The maximum number of pending transactions. 0 for no limit. The default value is 1.
--max-pending-tx=<value>

resubmission-timeout

Duration we will wait before resubmitting a transaction to L1. The default value is 48s.
--resubmission-timeout=<value>

safe-abort-nonce-too-low-count

Number of ErrNonceTooLow observations required to give up on a tx at a particular nonce without receiving confirmation. The default value is 3.
--safe-abort-nonce-too-low-count=<value>

txmgr.min-basefee

Enforces a minimum base fee (in GWei) to assume when determining tx fees. 1 GWei by default. The default value is 1.
--txmgr.min-basefee=<value>

txmgr.min-tip-cap

Enforces a minimum tip cap (in GWei) to use when determining tx fees. 1 GWei by default. The default value is 1.
--txmgr.min-tip-cap=<value>

fee-limit-multiplier

The multiplier applied to fee suggestions to put a hard limit on fee increases. The default value is 5.
--fee-limit-multiplier=<value>

txmgr.fee-limit-threshold

The minimum threshold (in GWei) at which fee bumping starts to be capped. Allows arbitrary fee bumps below this threshold. The default value is 100.
--txmgr.fee-limit-threshold=<value>

txmgr.receipt-query-interval

Frequency to poll for receipts. The default value is 12s.
--txmgr.receipt-query-interval=<value>

txmgr.not-in-mempool-timeout

Timeout for aborting a tx send if the tx does not make it to the mempool. The default value is 2m0s.
--txmgr.not-in-mempool-timeout=<value>

txmgr.send-timeout

Timeout for sending transactions. If 0 it is disabled. The default value is 0s.
--txmgr.send-timeout=<value>

Authentication and wallet

private-key

The private key to use with the service. Must not be used with mnemonic.
--private-key=<value>

mnemonic

The mnemonic used to derive the wallets for either the service.
--mnemonic=<value>

hd-path

The HD path used to derive the sequencer wallet from the mnemonic. The mnemonic flag must also be set.
--hd-path=<value>

signer.address

Address the signer is signing transactions for.
--signer.address=<value>

signer.endpoint

Signer endpoint the client will connect to.
--signer.endpoint=<value>

signer.header

Headers to pass to the remote signer. Format key=value.
Value can contain any character allowed in an HTTP header.
When using env vars, split multiple headers with commas.
When using flags, provide one key-value pair per flag.
--signer.header=<key=value>

signer.tls.ca

tls ca cert path. The default value is tls/ca.crt.
--signer.tls.ca=<value>

signer.tls.cert

tls cert path. The default value is tls/tls.crt.
--signer.tls.cert=<value>

signer.tls.key

tls key. The default value is tls/tls.key.
--signer.tls.key=<value>

Network connections

l1-eth-rpc

HTTP provider URL for L1.
--l1-eth-rpc=<value>

l2-eth-rpc

HTTP provider URL for L2 execution engine. A comma-separated list enables the active L2 endpoint provider. Such a list needs to match the number of rollup-rpcs provided.
--l2-eth-rpc=<value>

rollup-rpc

HTTP provider URL for Rollup node. A comma-separated list enables the active L2 endpoint provider. Such a list needs to match the number of l2-eth-rpcs provided.
--rollup-rpc=<value>

rpc.addr

rpc listening address. The default value is 0.0.0.0.
--rpc.addr=<value>

rpc.enable-admin

Enable the admin API. The default value is false.
--rpc.enable-admin=<value>

rpc.port

rpc listening port. The default value is 8545.
--rpc.port=<value>

network-timeout

Timeout for all network operations. The default value is 10s.
--network-timeout=<value>

Alt-DA mode (Beta feature)

altda.enabled

Enable Alt-DA mode, Alt-DA mode is a Beta feature of the OP Stack. While it has received initial review from core contributors, it is still undergoing testing, and may have bugs or other issues. The default value is false.
--altda.enabled=<value>

altda.da-server

HTTP address of a DA Server.
--altda.da-server=<value>

altda.da-service

Use DA service type where commitments are generated by Alt-DA server. The default value is false.
--altda.da-service=<value>

altda.get-timeout

Timeout for get requests. 0 means no timeout.
--altda.get-timeout=<value>

altda.put-timeout

Timeout for put requests. 0 means no timeout.
--altda.put-timeout=<value>

altda.max-concurrent-da-requests

Maximum number of concurrent requests to the DA server.
--altda.max-concurrent-da-requests=<value>

altda.verify-on-read

Verify input data matches the commitments from the DA storage service.
--altda.verify-on-read=<value>

Logging and monitoring

log.level

The lowest log level that will be output. The default value is INFO.
--log.level=<value>

log.format

Format the log output. Supported formats: ‘text’, ‘terminal’, ‘logfmt’, ‘json’, ‘json-pretty’. The default value is text.
--log.format=<value>

log.color

Color the log output if in terminal mode. The default value is false.
--log.color=<value>

log.pid

Show PID in the log.
--log.pid=<value>

metrics.enabled

Enable the metrics server. The default value is false.
--metrics.enabled=<value>

Miscellaneous

active-sequencer-check-duration

The duration between checks to determine the active sequencer endpoint. The default value is 2m0s.
--active-sequencer-check-duration=<value>

pprof.addr

pprof listening address. The default value is 0.0.0.0.
--pprof.addr=<value>

pprof.enabled

Enable the pprof server. The default value is false.
--pprof.enabled=<value>

pprof.path

pprof file path. If it is a directory, the path is {dir}/{profileType}.prof.
--pprof.path=<value>

pprof.port

pprof listening port. The default value is 6060.
--pprof.port=<value>

pprof.type

pprof profile type. One of cpu, heap, goroutine, threadcreate, block, mutex, allocs.
--pprof.type=<value>

help

Show help. The default value is false.
--help=<value>

version

Print the version. The default value is false.
--version=<value>