Operators
Contract deployment

OP Stack smart contract deployment

⚠️

This page is out of date and shows the legacy method for smart contract deployment. For the latest recommended method, use op-deployer.

The following guide shows you how to deploy the OP Stack L1 smart contracts. The primary development branch is develop, however you should only deploy official contract releases. You can visit the smart contract overview for the official release versions. Changes to the smart contracts are generally not considered backwards compatible.

Deployment configuration

Deploying your OP Stack contracts requires creating a deployment configuration JSON file. You will create a new deployment configuration file in the following monorepo subdirectory: packages/contracts-bedrock/deploy-config (opens in a new tab) For the full set of deployment configuration options and their meanings, you can see the rollup deployment configuration page.

For a detailed explanation of the configuration options and their meanings, refer to the rollup deployment configuration page.

Using op-deployer

The recommended way to deploy the L1 smart contracts is with the op-deployer tool. Follow the steps in this section to learn how it works.

Best practices

Production users should deploy their L1 contracts from a contracts release. All contracts releases are on git tags with the following format: op-contracts/vX.Y.Z. If you're deploying a new standard chain, you should deploy the latest Optimism Governance approved release of the L1 smart contracts with op-deployer. This will only initially deploy with permissioned dispute games enabled. Starting with permissioned fault proofs gives chain operators time to get comfortable running the additional infrastructure requirements: op-challenger (opens in a new tab) and monitoring (opens in a new tab). There are also additional changes to the economics of operating a permissionless fault proof that chain operators should fully understand.

Next steps