ethereum-optimism/optimism
DevOps & Self-hostingCore OP Stack components for running and extending Optimism rollups on Ethereum.
What this is
This monorepo contains core OP Stack components maintained by the Optimism Collective, the open-source stack behind OP Mainnet and Base Optimism overview. It covers the rollup consensus client (op-node), batch submitter (op-batcher), output proposer (op-proposer), dispute-game challenger, sequencer high-availability service, deployment CLI, smart contracts under packages/contracts-bedrock, and Rust components such as kona and OP-specific reth/revm work directory structure.
It is aimed at protocol engineers and infrastructure teams who operate, audit, or extend an OP Stack chain, rather than at end users of an L2 application.
Start by choosing a path
Building an application on OP Mainnet is a different task from launching a chain. The former is documented in the Optimism documentation; the latter starts with the OP Stack Guide, and the README asks you to understand the release and development process first documentation pointers.
Contract and protocol details live in the separate OP Stack specs repository specs. Contributor setup, including the Developer Quick Start, is in CONTRIBUTING.md contributing.
Two concrete repository workflows are documented:
- Fetch a specific commit, branch, or tag as an archive:
curl -L https://github.com/ethereum-optimism/optimism/archive/$REF.tar.gz | tar xz. Submodules are not included and must be fetched separately archive download. - Shallow-clone the latest
develop:git clone --depth 1 --shallow-submodules https://github.com/ethereum-optimism/optimism.gitshallow clone.
These avoid downloading the multi-gigabyte git history. A shallow checkout of a particular ref is also described. The repository has no standalone op-node quick-start block; follow the linked OP Stack Guide and release notes instead of assuming commands.
Releases and branches
Production releases are tags shaped like <component>/v<semver>, for example op-node/v1.1.2; release candidates use -rc.1 release process. Only op-batcher, op-contracts, op-challenger, op-node, and op-proposer have releases; other packages are development components.
Plain v<semver> tags cover all Go code and exclude smart contracts. Contract releases are listed in GitHub release notes, and not every contract in a release is production-ready.
develop is the main development branch and stays backwards compatible with the latest experimental network deployments. Changes to contracts in packages/contracts-bedrock/src are generally not backwards compatible, so contract PRs may need a feature branch development branch.
Operational and security constraints
Running nodes or a chain involves network configuration and deployment tooling outside this README; use the documented OP Stack starting point and the network reference networks. The README does not provide a single-turn local full-stack launch recipe.
Vulnerability reporting follows the canonical security policy, and the Immunefi program covers in-scope critical vulnerabilities with a bounty of up to $2,000,042 security policy. The repository is MIT-licensed unless a file states otherwise license.
HotRepo's take
On 2026-11-06 the Go daily list recorded 6,491 stars and 4,070 forks with 1 star gained and a best position of 21 for that day snapshot. That is a single observation, not evidence of a trend. What the repository itself makes clear is scope: five releasable node/contract components, a broad set of development-only tooling, and a strict tag convention. Anyone evaluating it for production should focus on the released component tags and the separate specs rather than treating the whole monorepo as a shipped product.
Written by AI from the project's README, updated . The project's own docs are the source of truth.