Configuration Reference
Complete environment variable and CLI argument reference for all ADI Rollup components.
This page covers the most important environment variables and CLI arguments for each component. For the full list of available options, see the linked source repositories.
Sequencer Configuration
The sequencer uses environment variables in component_setting_name format (lowercase, underscore-separated). All settings are defined via the smart_config framework.
General
general_l1_rpc_url
http://localhost:8545
Settlement-layer JSON-RPC endpoint for the node
general_rocks_db_path
./db
Path to RocksDB state storage
general_main_node_rpc_url
—
Main node RPC URL (required for External Nodes)
general_min_blocks_to_replay
10
Minimum blocks to replay on restart
general_force_starting_block_number
—
Force replay from a specific block number
For L3 chains, general_l1_rpc_url points to the settlement layer. On ADI, that means ADI Chain. For L2 external nodes, it points to Ethereum. The variable name is inherited from zkSync OS upstream.
L1 Watchers
l1_watcher_poll_interval
100ms
Poll interval for settlement-layer watchers. Good for local dev. Use 2s for public RPCs
l1_watcher_max_blocks_to_process
1000
Maximum blocks processed per poll. Good for local dev. Use 10 for public endpoints
Sequencer
sequencer_block_time
250ms
Block production interval
sequencer_max_transactions_in_block
1000
Maximum transactions per block
sequencer_block_gas_limit
100000000
Gas limit per block
sequencer_block_pubdata_limit_bytes
110000
Pubdata size limit per block
sequencer_block_dump_path
./db/block_dumps
Path to dump block data for replay
sequencer_block_replay_server_address
0.0.0.0:3053
Replay server address used by External Nodes
sequencer_block_replay_download_address
—
Replay source address; setting this enables External Node mode (must include http:// or https://)
sequencer_fee_collector_address
0x3661...c049
Address that collects transaction fees
Sequencer Fee Overrides
sequencer_base_fee_override
—
Override base fee (hex, e.g. 0x3e8)
sequencer_pubdata_price_override
—
Override pubdata price (hex)
sequencer_native_price_override
—
Override native token price (hex)
RPC
rpc_address
0.0.0.0:3050
JSON-RPC listen address
rpc_max_connections
1000
Maximum concurrent connections
rpc_eth_call_gas
10000000
Gas limit for eth_call
rpc_max_logs_per_response
20000
Maximum log entries returned per request
rpc_max_request_size
15
Maximum request payload size (MB)
rpc_max_response_size
24
Maximum response payload size (MB)
private_api_address
127.0.0.1:8546
Private API listen address (use a different port for External Nodes on the same host)
L1 Sender
l1_sender_operator_commit_pk
—
Private key for committing batches to L1
l1_sender_operator_prove_pk
—
Private key for submitting proofs to L1
l1_sender_operator_execute_pk
—
Private key for executing batches on L1
l1_sender_max_fee_per_gas
100 Gwei
Maximum gas price for L1 transactions
l1_sender_max_fee_per_gas_gwei
—
Same setting expressed with a Gwei suffix for easier Docker env usage
l1_sender_max_priority_fee_per_gas
1 Gwei
Maximum priority fee for L1 transactions
l1_sender_max_priority_fee_per_gas_gwei
—
Same setting expressed with a Gwei suffix
l1_sender_max_fee_per_blob_gas
1 Gwei
Maximum blob gas price
l1_sender_max_fee_per_blob_gas_gwei
—
Same setting expressed with a Gwei suffix
l1_sender_pubdata_mode
—
Pubdata availability mode — Blobs or Calldata
l1_sender_enabled
true
Enable L1 settlement transactions
l1_sender_fusaka_upgrade_timestamp
18446744073709551615
Switch to Fusaka blob format after this Unix timestamp
Prover API (on Sequencer)
prover_api_address
0.0.0.0:3320
Prover API listen address
prover_api_fake_fri_provers_enabled
true
Use fake FRI provers (set false for production)
prover_api_fake_snark_provers_enabled
true
Use fake SNARK provers (set false for production)
prover_api_fri_job_timeout
300s
Timeout before reassigning a FRI job
prover_api_snark_job_timeout
300s
Timeout before reassigning a SNARK job
prover_api_max_fris_per_snark
10
Maximum FRI proofs aggregated per SNARK proof
prover_api_object_store_file_backed_base_path
./db/shared
Base path for file-backed prover proof storage
Prover Input Generator
prover_input_generator_maximum_in_flight_blocks
16
Number of blocks the prover input generator can process concurrently
Batching
batcher_batch_timeout
1s
Maximum time to wait before sealing a batch
batcher_blocks_per_batch_limit
10
Maximum blocks per batch
Genesis
genesis_chain_id
—
L2 chain ID
genesis_bridgehub_address
—
L1 Bridgehub contract address
genesis_bytecode_supplier_address
—
L1 bytecode supplier contract address
genesis_genesis_input_path
—
Path to genesis.json file
l1_chain_id in genesis.json is the chain ID of your settlement layer. For L3s on ADI, use 36900 on mainnet or 99999 on testnet. adi init sets this automatically.
Observability
observability_prometheus_port
3312
Prometheus metrics port
status_server_address
0.0.0.0:3071
Status server address; set a different port on the External Node when both run on one host
RUST_LOG
—
Log level filter (e.g. info, debug, warn)
Full server configuration reference: ADI-Stack-Server/node/bin/src/config
FRI Prover Configuration
The FRI prover is configured via CLI arguments. Environment variables control logging only.
--base-url / --sequencer-urls
http://localhost:3124
Sequencer prover API URL(s), comma-separated for round-robin
--sequencer-urls-file
—
Path to file with URLs (one per line), takes precedence over --sequencer-urls
--app-bin-path
../../multiblock_batch.bin
Path to the RISC-V binary
--circuit-limit
10000
Maximum MainVM circuits to instantiate
--iterations
—
Number of proving iterations before exiting (unlimited if omitted)
--prover-name
unknown_prover
Prover identifier for monitoring
--prometheus-port
3124
Prometheus metrics port
--enabled-logging
false
Enable structured logging
--request-timeout-secs
2
HTTP request timeout to sequencer
RUST_LOG
Log level filter (debug, info, warn, error)
Full FRI prover source: ADI-Stack-Airbender-Prover/crates/zksync_os_fri_prover
SNARK Prover Configuration
The SNARK prover uses the run-prover subcommand with CLI arguments.
--sequencer-url / --sequencer-urls
—
Sequencer prover API URL(s)
--sequencer-urls-file
—
Path to file with URLs
--binary-path
—
Path to the RISC-V binary
--trusted-setup-file
—
Path to the trusted setup key (setup_compact.key)
--output-dir
—
Output directory for SNARK proofs
--iterations
—
Number of proving iterations before exiting
--prover-name
—
Prover identifier for monitoring
--prometheus-port
3124
Prometheus metrics port
--disable-zk
false
Disable zero-knowledge property (testing only)
RUST_MIN_STACK
—
Thread stack size in bytes (recommended: 267108864 = 256 MB)
RUST_LOG
—
Log level filter
Full SNARK prover source: ADI-Stack-Airbender-Prover/crates/zksync_os_snark_prover
Block Explorer Configuration
The Block Explorer consists of four services. Key environment variables for each:
Worker (Indexer)
BLOCKCHAIN_RPC_URL
—
L2 JSON-RPC endpoint to index
DATA_FETCHER_URL
—
URL of the data fetcher service
DATABASE_HOST
localhost
PostgreSQL host
DATABASE_USER
postgres
PostgreSQL user
DATABASE_PASSWORD
—
PostgreSQL password
DATABASE_NAME
block-explorer
PostgreSQL database name
SETTLEMENT_RPC_URL
—
Settlement-layer RPC URL for batch tracking
DIAMOND_PROXY_ADDRESS
—
L1 Diamond Proxy contract address
BASE_TOKEN_SYMBOL
ETH
Base token ticker symbol
BASE_TOKEN_NAME
Ether
Base token display name
API
PORT
3020
HTTP listen port
DATABASE_HOST
localhost
PostgreSQL host
DATABASE_USER
postgres
PostgreSQL user
DATABASE_PASSWORD
—
PostgreSQL password
DATABASE_NAME
block-explorer
PostgreSQL database name
BASE_TOKEN_SYMBOL
ETH
Base token ticker
BASE_TOKEN_L1_ADDRESS
—
L1 address of the base token
App (Frontend)
APP_NETWORK_NAME
—
Network display name
APP_L2_CHAIN_ID
—
L2 chain ID
APP_RPC_URL
—
L2 JSON-RPC URL (used by frontend)
APP_API_URL
—
Block Explorer API URL
APP_BRIDGE_URL
—
Bridge UI URL
APP_L1_EXPLORER_URL
—
L1 block explorer URL
APP_BASE_TOKEN_ADDRESS
—
Base token contract address on L2
Data Fetcher
PORT
3040
HTTP listen port
BLOCKCHAIN_RPC_URL
—
L2 JSON-RPC endpoint
RPC_BATCH_MAX_COUNT
50
Maximum batch size for RPC calls
Full Block Explorer source: matter-labs/block-explorer
Bridge (dApp Portal) Configuration
The Bridge is configured via a RUNTIME_CONFIG JSON environment variable. Key fields:
nodeType
Must be "hyperchain" for custom rollups
hyperchainsConfig[].network.id
L2 chain ID
hyperchainsConfig[].network.name
Network display name
hyperchainsConfig[].network.rpcUrl
L2 JSON-RPC endpoint
hyperchainsConfig[].network.blockExplorerUrl
Block Explorer frontend URL
hyperchainsConfig[].network.blockExplorerApi
Block Explorer API URL
hyperchainsConfig[].network.l1Network.rpcUrls
L1 RPC URLs
hyperchainsConfig[].tokens
List of bridgeable tokens with addresses and metadata. The UI defaults to the settlement layer's base token unless you add more entries
Full dApp Portal source: matter-labs/dapp-portal
Last updated
