op-node and op-geth, so nodes
can join your network with the --network / --op-network flags and can
inherit Superchain-wide hardfork activations automatically. See the
superchain-registry explainer for how
that works.
Before You Start
- Chat with the Optimism Foundation.
- Your chain ID must be registered at ethereum-lists/chains. The registry’s validation suite checks against it; this is a mandatory prerequisite (ops.md).
- Standard chains must be deployed with
op-deployer. A chain is
only considered standard in the registry if it was deployed with
op-deployer, which also produces the
state.jsonfile the registry tooling consumes (ops.md). Chains deployed another way follow the custom-chain path below. - Install the tooling dependencies:
git(^2),go(^1.21), andjust(^1.28.0) (ops.md).
Add Your Chain
1
Fork the Registry Repository
You will raise a pull request from your fork to the upstream repo. Start
from a fresh, non-protected branch (not your fork’s
main), and add one
chain per branch and PR.
(ops.md)2
Generate a Config From Your State File
From the root of the registry repo, run:where
<shortname> is your chain’s short name (for example op) and the
state file is the state.json produced by op-deployer. This writes two
files to the .staging directory: <shortname>.toml and
<shortname>.json.zst. If you deployed with custom contracts, pass your
op-deployer version as a third argument — supported values live in the
registry’s versions.json.
(ops.md)3
Fill In the Generated Config
Most of
<shortname>.toml is populated from your deployer state, but you
must fill in the rest yourself: name, superchain (mainnet or
sepolia), public_rpc, sequencer_rpc, explorer, and
deployment_tx_hash. Double-check the generated values while you are in
the file.
(ops.md)4
Open the Pull Request
Commit to your fork and open one PR per chain. Check the box to
allow edits from maintainers
so reviewers can push to your branch. Automated checks will validate your
chain and generate a report on its compliance with the standard
blockchain charter.
(ops.md)
5
Await Review
A registry maintainer reviews your PR. When it is ready, the team
generates code from your PR and pushes to your fork — do not run codegen
yourself; it slows down review.
(ops.md)
Custom Chains
If your chain was not deployed with op-deployer (for example, a heavily modified deployment), you must write the config file by hand instead of generating it: copy the example config into.staging, substitute every field
for your chain (custom chains set superchain_level = 0 and
governed_by_optimism = false), and ZST-encode your genesis file with the
registry’s dictionary. The full field-by-field walkthrough lives in
Adding a custom chain.
After You Are In
To receive Superchain-wide coordinated hardfork activations automatically, setsuperchain_time in your chain’s config (use 0 if your chain has activated
all Superchain forks up to its genesis time) and run your nodes with the
network flags. Details in the
explainer
and the registry’s
hardfork activation inheritance spec.