Configuration

When deploying or upgrading the OPSuccinctL2OutputOracle contract, you will need to set the configuration parameters in your .env file.

Required Parameters

When deploying or upgrading the OPSuccinctL2OutputOracle contract, the following parameters are required to be set in your .env file:

ParameterDescription
L1_RPCL1 Archive Node.
L1_BEACON_RPCL1 Consensus (Beacon) Node.
L2_RPCL2 Execution Node (op-geth).
L2_NODE_RPCL2 Rollup Node (op-node).
PRIVATE_KEYPrivate key for the account that will be deploying the contract.
ETHERSCAN_API_KEYEtherscan API key used for verifying the contract (optional).

Optional Advanced Parameters

You can configure additional parameters when deploying or upgrading the OPSuccinctL2OutputOracle contract in your .env file.

ParameterDescription
VERIFIER_ADDRESSDefault: Succinct's official Groth16 VerifierGateway. Address of the ISP1Verifier contract used to verify proofs. For mock proofs, this is the address of the SP1MockVerifier contract.
STARTING_BLOCK_NUMBERDefault: The finalized block number on L2. The block number to initialize the contract from. OP Succinct will start proving state roots from this block number.
SUBMISSION_INTERVALDefault: 1000. The minimum interval in L2 blocks at which checkpoints must be submitted. An aggregation proof can be posted for any range larger than this interval.
FINALIZATION_PERIOD_SECSDefault: 3600 (1 hour). The time period (in seconds) after which a proposed output becomes finalized and withdrawals can be processed.
PROPOSERDefault: The address of the account associated with PRIVATE_KEY. If PRIVATE_KEY is not set, address(0). An Ethereum address authorized to submit proofs. Set to address(0) to allow permissionless submissions. Note: Use addProposer and removeProposer functions to update the list of approved proposers.
CHALLENGERDefault: The address of the account associated with PRIVATE_KEY. If PRIVATE_KEY is not set, address(0). Ethereum address authorized to dispute proofs. Set to address(0) for no challenging.
OWNERDefault: The address of the account associated with PRIVATE_KEY. If PRIVATE_KEY is not set, address(0). Ethereum address authorized to update the aggregationVkey, rangeVkeyCommitment, verifier, and rollupConfigHash parameters. Can also transfer ownership of the contract and update the approved proposers. In a production setting, set to the governance smart contract or multi-sig of the chain.