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.| Parameter | Description | Administrator | Requirement | Notes |
|---|---|---|---|---|
| Output Frequency | Defines how frequently L2 output roots are submitted to L1 (via the output oracle). | L1 Proxy Admin | 43,200 L2 blocks (24 hours at 2s block times) or lower | It cannot be set to 0 (there must be some cadence for outputs). |
Example configuration
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.- Syntax
- Example
- Environment Variable
--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 is2m0s.
- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--allow-non-finalized=<value>game-factory-address
Address of the DisputeGameFactory contract. This is where the proposer will submit output roots.- Syntax
- Example
- Environment Variable
--game-factory-address=<value>game-type
Dispute game type to create via the configured DisputeGameFactory. The default value is 0.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--wait-node-sync=<value>Transaction manager
fee-limit-multiplier
The multiplier applied to fee suggestions to limit fee increases. The default value is 5.- Syntax
- Example
- Environment Variable
--fee-limit-multiplier=<value>num-confirmations
Number of confirmations to wait after sending a transaction. The default value is 10.- Syntax
- Example
- Environment Variable
--num-confirmations=<value>resubmission-timeout
Duration we will wait before resubmitting a transaction to L1. The default value is 48s.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--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.- Syntax
- Example
- Environment Variable
--txmgr.not-in-mempool-timeout=<value>txmgr.receipt-query-interval
Frequency to poll for receipts. The default value is 12s.- Syntax
- Example
- Environment Variable
--txmgr.receipt-query-interval=<value>txmgr.send-timeout
Timeout for sending transactions. If 0 it is disabled. The default value is 0s.- Syntax
- Example
- Environment Variable
--txmgr.send-timeout=<value>Wallet
hd-path
The HD path used to derive the sequencer wallet from the mnemonic.- Tab Title
- Tab Title
- Tab Title
--hd-path=<value>mnemonic
The mnemonic used to derive the wallets for the service.- Syntax
- Example
- Environment Variable
--mnemonic=<value>RPC
l1-eth-rpc
HTTP provider URL for L1.- Syntax
- Example
- Environment Variable
--l1-eth-rpc=<value>rollup-rpc
HTTP provider URL for the rollup node. A comma-separated list enables the active rollup provider.- Syntax
- Example
- Environment Variable
--rollup-rpc=<value>rpc.addr
rpc listening address. The default value is “0.0.0.0”.- Syntax
- Example
- Environment Variable
--rpc.addr=<value>rpc.enable-admin
Enable the admin API. The default value is false.- Syntax
- Example
- Environment Variable
--rpc.enable-admin=<value>rpc.port
rpc listening port. The default value is 8545.- Syntax
- Example
- Environment Variable
--rpc.port=<value>Logging
log.color
Color the log output if in terminal mode. The default value is false.- Syntax
- Example
- Environment Variable
--log.color=<value>log.format
Format the log output. Supported formats: ‘text’, ‘terminal’, ‘logfmt’, ‘json’, ‘json-pretty’. The default value is text.- Syntax
- Example
- Environment Variable
--log.format=<value>log.level
The lowest log level that will be output. The default value is INFO.- Syntax
- Example
- Environment Variable
--log.level=<value>Metrics
metrics.addr
Metrics listening address. The default value is “0.0.0.0”.- Syntax
- Example
- Environment Variable
--metrics.addr=<value>metrics.enabled
Enable the metrics server. The default value is false.- Syntax
- Example
- Environment Variable
--metrics.enabled=<value>metrics.port
Metrics listening port. The default value is 7300.- Syntax
- Example
- Environment Variable
--metrics.port=<value>pprof
pprof.addr
pprof listening address. The default value is “0.0.0.0”.- Syntax
- Example
- Environment Variable
--pprof.addr=<value>pprof.enabled
Enable the pprof server. The default value is false.- Syntax
- Example
- Environment Variable
--pprof.enabled=<value>pprof.path
The pprof file path. If it is a directory, the path is{dir}/{profileType}.prof
- Syntax
- Example
- Environment Variable
--pprof.path=<value>pprof.port
pprof listening port. The default value is 6060.- Syntax
- Example
- Environment Variable
--pprof.port=<value>pprof.type
pprof profile type. One of cpu, heap, goroutine, threadcreate, block, mutex, allocs- Syntax
- Example
- Environment Variable
--pprof.type=<value>Signer
signer.address
Address the signer is signing transactions for.- Syntax
- Example
- Environment Variable
--signer.address=<value>signer.endpoint
Signer endpoint the client will connect to.- Syntax
- Example
- Environment Variable
--signer.endpoint=<value>signer.tls.ca
tls ca cert path. The default value is “tls/ca.crt”.- Syntax
- Example
- Environment Variable
--signer.tls.ca=<value>signer.tls.cert
tls cert path. The default value is “tls/tls.crt”.- Syntax
- Example
- Environment Variable
--signer.tls.cert=<value>signer.tls.key
tls key. The default value is “tls/tls.key”.- Syntax
- Example
- Environment Variable
--signer.tls.key=<value>Miscellaneous
network-timeout
Timeout for all network operations. The default value is 10s.- Syntax
- Example
- Environment Variable
--network-timeout=<value>help
Show help. The default value is false.- Syntax
- Example
--help=<value>version
Print the version. The default value is false.- Tab Title
- Tab Title
--version=<value>