Operators
Proposer configuration

Proposer configuration

This page lists all configuration options for op-proposer. The op-proposer posts output roots (proposals) to L1, making them available for verifiers. Withdrawals to L1 must reference an output root. If the chain is running permissioned fault proofs, only the designated proposer can submit output roots. With permissionless fault proofs, anyone can make a proposal.

Proposer policy

The proposer policy defines high-level constraints and responsibilities regarding how L2 output roots are posted to L1. Below are the standard guidelines for configuring the proposer within the OP Stack.

ParameterDescriptionAdministratorRequirementNotes
Output FrequencyDefines how frequently L2 output roots are submitted to L1 (via the output oracle).L1 Proxy Admin43,200 L2 blocks (24 hours at 2s block times) or lowerIt cannot be set to 0 (there must be some cadence for outputs).

Example configuration

OP_PROPOSER_L1_ETH_RPC: YOUR_L1_RPC_URL_HERE
OP_PROPOSER_ROLLUP_RPC: YOUR_CHAINS_RPC_URL_HERE
OP_PROPOSER_GAME_FACTORY_ADDRESS: YOUR_CHAINS_GAME_FACTORY_ADDRESS_HERE
OP_PROPOSER_PROPOSAL_INTERVAL: 5h
OP_PROPOSER_WAIT_NODE_SYNC: true
OP_PROPOSER_ALLOW_NON_FINALIZED: "false"
OP_PROPOSER_POLL_INTERVAL: "20s"
OP_PROPOSER_NUM_CONFIRMATIONS: "1"
OP_PROPOSER_SAFE_ABORT_NONCE_TOO_LOW_COUNT: "3"
OP_PROPOSER_RESUBMISSION_TIMEOUT: "30s"
OP_PROPOSER_METRICS_ENABLED: "true"
OP_PROPOSER_METRICS_ADDR: 0.0.0.0
OP_PROPOSER_METRICS_PORT: 7300

Higher throughput chains can decrease the proposal-interval to allow users submit withdrawals more often.

All configuration variables

Output root generation

poll-interval

Delay between periodic checks on whether it is time to load an output root and propose it. The default value is 6s.

--poll-interval=<value>

active-sequencer-check-duration

The duration between checks to determine the active sequencer endpoint from which output roots will be derived. The default value is 2m0s.

--active-sequencer-check-duration=<value>

Output root submission

proposal-interval

Interval between submitting L2 output proposals when the dispute game factory address is set. The default value is 0s.

--proposal-interval=<value>

allow-non-finalized

Allow the proposer to submit proposals for L2 blocks from non-finalized L1 blocks. The default value is false.

--allow-non-finalized=<value>

game-factory-address

Address of the DisputeGameFactory contract. This is where the proposer will submit output roots.

--game-factory-address=<value>

game-type

Dispute game type to create via the configured DisputeGameFactory. The default value is 0.

--game-type=<value>

Proposer startup

wait-node-sync

Indicates if, during startup, the proposer should wait for the rollup node to sync to the current L1 tip before proceeding with its driver loop. The default value is false.

--wait-node-sync=<value>

Transaction manager

fee-limit-multiplier

The multiplier applied to fee suggestions to limit fee increases. The default value is 5.

--fee-limit-multiplier=<value>

num-confirmations

Number of confirmations to wait after sending a transaction. The default value is 10.

--num-confirmations=<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.fee-limit-threshold

The minimum threshold (in GWei) at which fee bumping starts to be capped. The default value is 100.

--txmgr.fee-limit-threshold=<value>

txmgr.min-basefee

Enforces a minimum base fee (in GWei) to assume when determining tx fees. 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. The default value is 1.

--txmgr.min-tip-cap=<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.receipt-query-interval

Frequency to poll for receipts. The default value is 12s.

--txmgr.receipt-query-interval=<value>

txmgr.send-timeout

Timeout for sending transactions. If 0 it is disabled. The default value is 0s.

--txmgr.send-timeout=<value>

Wallet

hd-path

The HD path used to derive the sequencer wallet from the mnemonic.

--hd-path=<value>

mnemonic

The mnemonic used to derive the wallets for the service.

--mnemonic=<value>

RPC

l1-eth-rpc

HTTP provider URL for L1.

--l1-eth-rpc=<value>

rollup-rpc

HTTP provider URL for the rollup node. A comma-separated list enables the active rollup provider.

--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>

Logging

log.color

Color the log output if in terminal mode. The default value is false.

--log.color=<value>

log.format

Format the log output. Supported formats: 'text', 'terminal', 'logfmt', 'json', 'json-pretty'. The default value is text.

--log.format=<value>

log.level

The lowest log level that will be output. The default value is INFO.

--log.level=<value>

Metrics

metrics.addr

Metrics listening address. The default value is "0.0.0.0".

--metrics.addr=<value>

metrics.enabled

Enable the metrics server. The default value is false.

--metrics.enabled=<value>

metrics.port

Metrics listening port. The default value is 7300.

--metrics.port=<value>

pprof

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

The 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>

Signer

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.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>

Miscellaneous

network-timeout

Timeout for all network operations. The default value is 10s.

--network-timeout=<value>

help

Show help. The default value is false.

--help=<value>

version

Print the version. The default value is false.

--version=<value>