From 9f440cd9fd9e3242e05b098d53c8b18c87e048ec Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:29:11 -0700 Subject: [PATCH 1/6] Content migration redirects --- public/_redirects | 205 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) diff --git a/public/_redirects b/public/_redirects index 826a3dd7d..60328c182 100644 --- a/public/_redirects +++ b/public/_redirects @@ -208,3 +208,208 @@ # Catch any remaining /builders and /chain paths /builders/* /app-developers/:splat /chain/* /superchain/:splat + + +# ---------------------------------------------------------------------------- +# Content Migration Redirects +# ---------------------------------------------------------------------------- + +/stack/transactions/cross-domain /concepts/bridging/cross-domain +/get-started/superchain /app-developers/guides/superchain +/app-developers/get-started /app-developers/quickstarts/first-app +/interop/starter-kit /app-developers/quickstarts/interop-app +/operators/node-operators/architecture /node-operators/reference/architecture/overview +/superchain/addresses /reference/addresses +/app-developers/tools/connect/networks /app-developers/reference/networks +/operators/chain-operators/configuration/rollup /chain-operators/guides/configuration/rollup +/operators/chain-operators/tutorials/create-l2-rollup /chain-operators/tutorials/create-rollup +/operators/chain-operators/tools/chain-monitoring /chain-operators/tools/monitoring +/operators/chain-operators/tools/op-deployer /chain-operators/tools/op-deployer +/operators/node-operators/configuration/consensus-config /node-operators/guides/configuration/consensus +/operators/node-operators/configuration/execution-config /node-operators/guides/configuration/execution +/operators/node-operators/management/blobs /chain-operators/guides/management/blobs +/operators/node-operators/management/snap-sync /node-operators/guides/management/snap-sync +/operators/node-operators/management/metrics /node-operators/guides/monitoring/metrics +/operators/node-operators/management/troubleshooting /node-operators/guides/troubleshooting +/operators/node-operators/json-rpc /node-operators/reference/rpc +/stack/fault-proofs/mips /core-contributors/reference/specs/mips +/stack/transactions/fees /concepts/transactions/fees +/stack/transactions/withdrawal-flow /concepts/transactions/withdrawals +/stack/getting-started /concepts/stack/overview +/connect/resources/glossary /reference/glossary +/operators/node-operators/rollup-node /node-operators/reference/architecture/rollup-node +/app-developers/tools/build/ecosystem-overview /app-developers/tools/ecosystem +/connect/contribute/stack-contribute /core-contributors/getting-started/contribute +/app-developers/starter-kit /app-developers/quickstarts/token-starter-kit +/app-developers/building-apps /app-developers/guides/app-development +/app-developers/transactions/fees /app-developers/guides/transactions/fees +/app-developers/tutorials/bridging/standard-bridge-custom-token /app-developers/tutorials/bridging/custom-token-bridge +/app-developers/tools/build/oracles /app-developers/tools/data/oracles +/app-developers/tools/build/analytics-tools /app-developers/tools/data/analytics +/operators/chain-operators/configuration /chain-operators/guides/configuration +/operators/chain-operators/configuration/overview /chain-operators/guides/configuration/overview +/operators/chain-operators/configuration/batcher /chain-operators/guides/configuration/batcher +/operators/chain-operators/configuration/proposer /chain-operators/guides/configuration/proposer +/operators/chain-operators/management/operations /chain-operators/guides/management/operations +/operators/chain-operators/features/preinstalls /chain-operators/reference/features/preinstalls +/operators/chain-operators/deploy/smart-contracts /chain-operators/guides/deployment/contracts +/operators/node-operators/configuration/base-config /node-operators/guides/configuration/base +/operators/node-operators/management/snapshots /node-operators/guides/management/snapshots +/operators/node-operators/network-upgrades /concepts/stack/network-upgrades +/operators/node-operators/releases /node-operators/reference/releases +/stack/smart-contracts /concepts/stack/contracts +/stack/opcm /chain-operators/reference/opcm +/stack/rollup/overview /concepts/architecture/rollup/overview +/stack/transactions/transaction-flow /concepts/transactions/flow +/stack/transactions/deposit-flow /concepts/transactions/deposits +/stack/security/faq /concepts/security/faq +/stack/security/pause /concepts/security/pause-system +/stack/beta-features/alt-da-mode /chain-operators/guides/features/alt-da +/stack/differences /concepts/stack/differences +/notices/sdk-deprecation /notices/archive/sdk-deprecation +/interop/get-started /app-developers/guides/interoperability/getting-started +/interop/explainer /concepts/interoperability/overview +/app-developers/tools/supersim /app-developers/tools/development/supersim +/operators/chain-operators/tools/fee-calculator /chain-operators/tools/fee-calculator +/notices/superchain-withdrawal-pause-test /notices/superchain-withdrawal-pause-test +/notices/upgrade-15 /notices/archive/upgrade-15 +/notices/upgrade-14 /notices/archive/upgrade-14 +/notices/upgrade-13 /notices/archive/upgrade-13 +/notices/blob-fee-bug /notices/archive/blob-fee-bug +/notices/pectra-changes /notices/archive/pectra-changes +/notices/holocene-changes /notices/archive/holocene-changes +/notices/custom-gas-tokens-deprecation /notices/archive/custom-gas-tokens-deprecation +/get-started/op-stack /concepts/stack/op-stack +/get-started/interop /concepts/interoperability/getting-started +/superchain/superchain-registry /chain-operators/reference/superchain-registry +/superchain/superchain-upgrades /chain-operators/concepts/upgrades +/superchain/blockspace-charter /governance/blockspace-charter +/superchain/standard-configuration /chain-operators/reference/standard-configuration +/superchain/tokenlist /app-developers/reference/tokens/tokenlist +/superchain/networks /reference/networks +/superchain/privileged-roles /chain-operators/reference/privileged-roles +/interop/predeploy /app-developers/reference/contracts/interop/predeploys +/interop/message-passing /app-developers/guides/interoperability/message-passing +/interop/reading-logs /app-developers/guides/interoperability/reading-logs +/interop/op-supervisor /chain-operators/reference/components/op-supervisor +/interop/superchain-eth-bridge /concepts/interoperability/superchain-eth +/interop/superchain-erc20 /concepts/interoperability/superchain-erc20 +/interop/compatible-tokens /app-developers/reference/tokens/compatibility +/interop/reorg /concepts/architecture/reorgs +/interop/interop-security /concepts/security/interoperability +/interop/tools /app-developers/tools/interoperability +/interop/tools/devnet /app-developers/tools/testing/devnet +/interop/tools/supersim /app-developers/tools/development/supersim +/interop/tools/rc-alpha /app-developers/tools/development/rc-alpha +/interop/tutorials /app-developers/tutorials/interoperability +/interop/tutorials/message-passing /app-developers/tutorials/interoperability/message-passing +/interop/tutorials/deploy-superchain-erc20 /app-developers/tutorials/tokens/deploy-superchain-erc20 +/interop/tutorials/transfer-superchainERC20 /app-developers/tutorials/tokens/transfer-superchainERC20 +/interop/tutorials/custom-superchain-erc20 /app-developers/tutorials/tokens/custom-superchain-erc20 +/interop/tutorials/bridge-crosschain-eth /app-developers/tutorials/bridging/cross-chain-eth +/interop/tutorials/relay-messages-cast /app-developers/tutorials/interoperability/relay-messages-cast +/interop/tutorials/relay-messages-viem /app-developers/tutorials/interoperability/relay-messages-viem +/interop/tutorials/contract-calls /app-developers/tutorials/interoperability/contract-calls +/interop/tutorials/event-reads /app-developers/tutorials/interoperability/event-reads +/interop/tutorials/event-contests /app-developers/tutorials/interoperability/event-contests +/app-developers/tutorials/supersim /app-developers/tutorials/development/supersim +/app-developers/tutorials/interop /app-developers/tutorials/interoperability +/app-developers/tutorials/transactions /app-developers/tutorials/transactions +/app-developers/tutorials/bridging /app-developers/tutorials/bridging +/app-developers/interop /app-developers/guides/interoperability +/app-developers/testing-apps /app-developers/guides/testing +/app-developers/bridging /app-developers/guides/bridging +/app-developers/bridging/basics /app-developers/guides/bridging/basics +/app-developers/bridging/standard-bridge /app-developers/guides/bridging/standard-bridge +/app-developers/bridging/custom-bridge /app-developers/guides/bridging/custom-bridge +/app-developers/bridging/messaging /app-developers/guides/bridging/messaging +/app-developers/transactions /app-developers/guides/transactions +/app-developers/transactions/estimates /app-developers/guides/transactions/estimates +/app-developers/transactions/parameters /app-developers/guides/transactions/parameters +/app-developers/transactions/statuses /app-developers/guides/transactions/statuses +/app-developers/transactions/troubleshooting /app-developers/guides/transactions/troubleshooting +/app-developers/tutorials/bridging/cross-dom-solidity /app-developers/tutorials/bridging/cross-domain-contracts +/app-developers/tutorials/bridging/cross-dom-bridge-eth /app-developers/tutorials/bridging/cross-domain-eth +/app-developers/tutorials/bridging/cross-dom-bridge-erc20 /app-developers/tutorials/bridging/cross-domain-erc20 +/app-developers/tutorials/bridging/standard-bridge-standard-token /app-developers/tutorials/bridging/standard-token-bridge +/app-developers/tutorials/transactions/sdk-trace-txns /app-developers/tutorials/transactions/sdk-tracing +/app-developers/tutorials/transactions/sdk-estimate-costs /app-developers/tutorials/transactions/cost-estimation +/app-developers/tutorials/transactions/send-tx-from-eth /app-developers/tutorials/transactions/l1-to-l2-transactions +/app-developers/tutorials/supersim/getting-started /app-developers/tutorials/development/supersim/getting-started +/app-developers/tutorials/supersim/getting-started/installation /app-developers/tutorials/development/supersim/installation +/app-developers/tutorials/supersim/getting-started/first-steps /app-developers/tutorials/development/supersim/first-steps +/app-developers/tutorials/supersim/reference /app-developers/reference/tools/supersim +/app-developers/tutorials/supersim/reference/vanilla /app-developers/reference/tools/supersim/vanilla +/app-developers/tutorials/supersim/reference/fork /app-developers/reference/tools/supersim/fork +/app-developers/tutorials/supersim/chain-env /app-developers/reference/tools/supersim/environment +/app-developers/tutorials/supersim/chain-env/included-contracts /app-developers/reference/tools/supersim/contracts +/app-developers/tutorials/supersim/chain-env/chain-a /app-developers/reference/tools/supersim/chain-a +/app-developers/tutorials/supersim/chain-env/chain-b /app-developers/reference/tools/supersim/chain-b +/app-developers/tutorials/supersim/deposit-transactions /app-developers/tutorials/bridging/deposit-transactions +/app-developers/tutorials/interop/transfer-superchainERC20 /app-developers/tutorials/tokens/transfer-superchain-erc20 +/app-developers/tutorials/interop/deploy-superchain-erc20 /app-developers/tutorials/tokens/deploy-superchain-erc20 +/app-developers/tutorials/interop/bridge-crosschain-eth /app-developers/tutorials/bridging/cross-chain-eth +/app-developers/tutorials/interop/relay-messages-cast /app-developers/tutorials/tools/cast-relay +/app-developers/tutorials/interop/relay-messages-viem /app-developers/tutorials/tools/viem-relay +/app-developers/tutorials/interop/contract-calls /app-developers/tutorials/interoperability/cross-chain-calls +/app-developers/tutorials/interop/event-reads /app-developers/tutorials/interoperability/reading-events +/app-developers/tutorials/interop/event-contests /app-developers/tutorials/interoperability/event-handling +/app-developers/tools/connect /app-developers/guides/rpcs +/app-developers/tools/connect/rpc-providers /app-developers/reference/rpc +/app-developers/tools/build /app-developers/tools +/app-developers/tools/build/faucets /app-developers/tools/testing/faucets +/app-developers/tools/build/nft-tools /app-developers/tools/nft +/app-developers/tools/build/block-explorers /app-developers/tools/infrastructure/explorers +/app-developers/tools/build/account-abstraction /app-developers/tools/wallets/account-abstraction +/operators/chain-operators/management /chain-operators/guides/management +/operators/chain-operators/management/blobs /chain-operators/guides/management/blobs +/operators/chain-operators/management/snap-sync /chain-operators/guides/management/snap-sync +/operators/chain-operators/management/key-management /chain-operators/guides/management/key-management +/operators/chain-operators/management/troubleshooting /chain-operators/guides/troubleshooting +/operators/chain-operators/management/best-practices /chain-operators/guides/best-practices +/operators/chain-operators/features /chain-operators/reference/features +/operators/chain-operators/features/alt-da-mode /chain-operators/reference/features/alt-da +/operators/chain-operators/features/span-batches /chain-operators/reference/features/span-batches +/operators/chain-operators/features/bridged-usdc-standard /chain-operators/reference/features/bridged-usdc +/operators/chain-operators/deploy /chain-operators/guides/deployment +/operators/chain-operators/deploy/overview /chain-operators/guides/deployment/overview +/operators/chain-operators/tutorials /chain-operators/tutorials +/operators/chain-operators/tutorials/adding-derivation-attributes /chain-operators/tutorials/custom-derivation +/operators/chain-operators/tutorials/adding-precompiles /chain-operators/tutorials/add-precompiles +/operators/chain-operators/tutorials/modifying-predeploys /chain-operators/tutorials/modify-predeploys +/operators/chain-operators/tutorials/integrating-da-layer /chain-operators/tutorials/integrate-da +/operators/chain-operators/tutorials/migrating-permissionless /chain-operators/tutorials/migrate-permissionless +/operators/chain-operators/tutorials/chain-dev-net /chain-operators/tutorials/development-network +/operators/chain-operators/tutorials/dispute-games /chain-operators/tutorials/deploy-dispute-games +/operators/chain-operators/tools /chain-operators/tools +/operators/chain-operators/tools/explorer /chain-operators/tools/explorer +/operators/chain-operators/tools/op-challenger /chain-operators/tools/op-challenger +/operators/chain-operators/tools/op-conductor /chain-operators/tools/op-conductor +/operators/chain-operators/tools/op-validator /chain-operators/tools/op-validator +/operators/chain-operators/tools/op-txproxy /chain-operators/tools/op-txproxy +/operators/chain-operators/tools/proxyd /chain-operators/tools/proxyd +/operators/node-operators/tutorials /node-operators/tutorials +/operators/node-operators/tutorials/node-from-docker /node-operators/tutorials/docker-node +/operators/node-operators/tutorials/node-from-source /node-operators/tutorials/source-node +/operators/node-operators/tutorials/run-node-from-source /node-operators/tutorials/run-from-source +/operators/node-operators/configuration /node-operators/guides/configuration +/operators/node-operators/management /node-operators/guides/management +/operators/node-operators/management/regenesis-history /node-operators/guides/management/regenesis +/operators/chain-operators /chain-operators +/stack/fact-sheet /concepts/stack/fact-sheet +/stack/differences /concepts/stack/differences +/stack/design-principles /concepts/stack/design-principles +/stack/public-devnets /developers/testing/public-devnets +/stack/rollup /concepts/architecture/rollup +/stack/rollup/derivation-pipeline /concepts/architecture/rollup/derivation +/stack/rollup/outages /concepts/architecture/rollup/outages +/stack/fault-proofs /concepts/architecture/fault-proofs +/stack/fault-proofs/explainer /concepts/architecture/fault-proofs/explainer +/stack/fault-proofs/fp-components /concepts/architecture/fault-proofs/components +/stack/fault-proofs/cannon /concepts/architecture/fault-proofs/cannon +/stack/fault-proofs/challenger /concepts/architecture/fault-proofs/op-challenger +/stack/fault-proofs/fp-security /concepts/security/fault-proofs +/stack/transactions /concepts/transactions +/stack/transactions/transaction-finality /concepts/transactions/finality +/stack/transactions/forced-transaction /concepts/transactions/forced-txs +/stack/features /concepts/stack/features \ No newline at end of file From e2f50e2efaf4888569449594ee5f170ab4c5f68b Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:30:31 -0700 Subject: [PATCH 2/6] Fix links --- pages/app-developers/bridging.mdx | 8 ++-- pages/app-developers/bridging/basics.mdx | 8 ++-- .../app-developers/bridging/custom-bridge.mdx | 4 +- pages/app-developers/bridging/messaging.mdx | 4 +- .../bridging/standard-bridge.mdx | 12 +++--- pages/app-developers/building-apps.mdx | 10 ++--- pages/app-developers/testing-apps.mdx | 6 +-- pages/app-developers/tools.mdx | 26 ++++++------ pages/app-developers/tools/build.mdx | 18 ++++---- .../tools/build/account-abstraction.mdx | 2 +- .../tools/build/block-explorers.mdx | 2 +- .../tools/build/ecosystem-overview.mdx | 2 +- pages/app-developers/tools/build/oracles.mdx | 2 +- pages/app-developers/tools/connect.mdx | 4 +- .../tools/connect/rpc-providers.mdx | 4 +- pages/app-developers/tools/supersim.mdx | 6 +-- pages/app-developers/transactions.mdx | 10 ++--- .../app-developers/transactions/estimates.mdx | 2 +- pages/app-developers/tutorials.mdx | 42 +++++++++---------- pages/app-developers/tutorials/bridging.mdx | 10 ++--- .../bridging/cross-dom-bridge-erc20.mdx | 8 ++-- .../bridging/cross-dom-bridge-eth.mdx | 6 +-- .../tutorials/bridging/cross-dom-solidity.mdx | 6 +-- pages/app-developers/tutorials/interop.mdx | 12 +++--- pages/app-developers/tutorials/supersim.mdx | 24 +++++------ .../tutorials/supersim/chain-env.mdx | 6 +-- .../tutorials/supersim/chain-env/chain-a.mdx | 2 +- .../tutorials/supersim/chain-env/chain-b.mdx | 2 +- .../supersim/chain-env/included-contracts.mdx | 4 +- .../supersim/deposit-transactions.mdx | 6 +-- .../tutorials/supersim/getting-started.mdx | 4 +- .../supersim/getting-started/first-steps.mdx | 4 +- .../supersim/getting-started/installation.mdx | 2 +- .../tutorials/supersim/reference.mdx | 4 +- .../tutorials/supersim/reference/fork.mdx | 4 +- .../tutorials/supersim/reference/vanilla.mdx | 6 +-- .../app-developers/tutorials/transactions.mdx | 6 +-- .../transactions/sdk-estimate-costs.mdx | 4 +- .../tutorials/transactions/sdk-trace-txns.mdx | 4 +- pages/connect/contribute.mdx | 2 +- pages/connect/contribute/docs-contribute.mdx | 4 +- pages/connect/contribute/stack-contribute.mdx | 4 +- pages/connect/contribute/style-guide.mdx | 30 ++++++------- pages/connect/resources.mdx | 2 +- pages/index.mdx | 26 ++++++------ pages/interop/compatible-tokens.mdx | 10 ++--- pages/interop/estimate-costs.mdx | 8 ++-- pages/interop/explainer.mdx | 12 +++--- pages/interop/get-started.mdx | 16 +++---- pages/interop/interop-security.mdx | 6 +-- pages/interop/message-expiration.mdx | 14 +++---- pages/interop/message-passing.mdx | 8 ++-- pages/interop/op-supervisor.mdx | 4 +- pages/interop/predeploy.mdx | 6 +-- pages/interop/reading-logs.mdx | 10 ++--- pages/interop/reorg.mdx | 2 +- pages/interop/starter-kit.mdx | 4 +- pages/interop/superchain-erc20.mdx | 8 ++-- pages/interop/superchain-eth-bridge.mdx | 10 ++--- pages/interop/tools.mdx | 4 +- pages/interop/tools/devnet.mdx | 6 +-- pages/interop/tutorials.mdx | 16 +++---- .../tutorials/bridge-crosschain-eth.mdx | 14 +++---- .../tutorials/custom-superchain-erc20.mdx | 20 ++++----- .../tutorials/deploy-superchain-erc20.mdx | 14 +++---- pages/interop/tutorials/event-contests.mdx | 2 +- pages/interop/tutorials/event-reads.mdx | 2 +- pages/interop/tutorials/message-passing.mdx | 12 +++--- .../message-passing/manual-relay.mdx | 8 ++-- .../tutorials/transfer-superchainERC20.mdx | 4 +- .../custom-bridge.mdx | 20 ++++----- pages/interop/tutorials/verify-messages.mdx | 2 +- .../notices/custom-gas-tokens-deprecation.mdx | 2 +- pages/notices/pectra-changes.mdx | 2 +- pages/notices/pectra-fees.mdx | 6 +-- .../superchain-withdrawal-pause-test.mdx | 2 +- pages/notices/upgrade-13.mdx | 2 +- pages/notices/upgrade-14.mdx | 2 +- pages/notices/upgrade-15.mdx | 2 +- pages/operators/chain-operators.mdx | 12 +++--- .../chain-operators/architecture.mdx | 10 ++--- .../chain-operators/configuration.mdx | 8 ++-- .../chain-operators/configuration/batcher.mdx | 6 +-- .../configuration/overview.mdx | 8 ++-- .../configuration/proposer.mdx | 4 +- .../chain-operators/configuration/rollup.mdx | 2 +- pages/operators/chain-operators/deploy.mdx | 4 +- .../chain-operators/deploy/overview.mdx | 4 +- .../deploy/proposer-setup-guide.mdx | 12 +++--- .../chain-operators/deploy/sequencer-node.mdx | 10 ++--- .../deploy/smart-contracts.mdx | 2 +- .../chain-operators/deploy/spin-batcher.mdx | 12 +++--- .../deploy/validate-deployment.mdx | 10 ++--- pages/operators/chain-operators/features.mdx | 8 ++-- .../chain-operators/features/alt-da-mode.mdx | 2 +- .../operators/chain-operators/management.mdx | 12 +++--- .../management/best-practices.mdx | 2 +- .../management/key-management.mdx | 4 +- .../chain-operators/management/operations.mdx | 2 +- .../chain-operators/management/snap-sync.mdx | 2 +- .../management/troubleshooting.mdx | 2 +- .../operators/chain-operators/self-hosted.mdx | 36 ++++++++-------- pages/operators/chain-operators/tools.mdx | 18 ++++---- .../tools/chain-monitoring.mdx | 4 +- .../chain-operators/tools/op-challenger.mdx | 4 +- .../chain-operators/tools/op-deployer.mdx | 2 +- .../chain-operators/tools/proxyd.mdx | 4 +- pages/operators/chain-operators/tutorials.mdx | 18 ++++---- .../tutorials/absolute-prestate.mdx | 10 ++--- .../tutorials/chain-dev-net.mdx | 4 +- .../tutorials/create-l2-rollup.mdx | 6 +-- .../tutorials/dispute-games.mdx | 10 ++--- .../tutorials/integrating-da-layer.mdx | 4 +- .../tutorials/migrating-permissionless.mdx | 18 ++++---- pages/operators/node-operators.mdx | 16 +++---- .../operators/node-operators/architecture.mdx | 2 +- .../node-operators/configuration.mdx | 6 +-- .../configuration/base-config.mdx | 8 ++-- pages/operators/node-operators/json-rpc.mdx | 2 +- pages/operators/node-operators/management.mdx | 12 +++--- .../node-operators/management/blobs.mdx | 2 +- .../node-operators/management/snap-sync.mdx | 2 +- .../node-operators/network-upgrades.mdx | 2 +- .../operators/node-operators/rollup-node.mdx | 26 ++++++------ pages/operators/node-operators/tutorials.mdx | 6 +-- .../tutorials/node-from-docker.mdx | 2 +- .../tutorials/node-from-source.mdx | 2 +- .../tutorials/run-node-from-source.mdx | 12 +++--- pages/stack/beta-features.mdx | 2 +- pages/stack/beta-features/alt-da-mode.mdx | 2 +- pages/stack/components.mdx | 2 +- pages/stack/differences.mdx | 6 +-- pages/stack/fact-sheet.mdx | 2 +- pages/stack/fault-proofs.mdx | 12 +++--- pages/stack/fault-proofs/cannon.mdx | 2 +- pages/stack/fault-proofs/challenger.mdx | 4 +- pages/stack/fault-proofs/explainer.mdx | 8 ++-- .../send-raw-transaction-conditional.mdx | 2 +- pages/stack/getting-started.mdx | 4 +- pages/stack/opcm.mdx | 2 +- pages/stack/research/block-time-research.mdx | 2 +- pages/stack/rollup.mdx | 6 +-- pages/stack/rollup/overview.mdx | 10 ++--- pages/stack/security.mdx | 4 +- pages/stack/security/faq-sec-model.mdx | 2 +- pages/stack/security/faq.mdx | 4 +- pages/stack/security/pause.mdx | 2 +- .../smart-contracts/op-deployer-upgrade.mdx | 2 +- .../stack/smart-contracts/smart-contracts.mdx | 2 +- pages/stack/transactions.mdx | 14 +++---- pages/stack/transactions/fees.mdx | 12 +++--- .../transactions/transaction-finality.mdx | 2 +- pages/stack/transactions/withdrawal-flow.mdx | 2 +- pages/superchain/blockspace-charter.mdx | 4 +- pages/superchain/networks.mdx | 2 +- pages/superchain/privileged-roles.mdx | 8 ++-- pages/superchain/standard-configuration.mdx | 14 +++---- pages/superchain/superchain-registry.mdx | 4 +- 158 files changed, 572 insertions(+), 572 deletions(-) diff --git a/pages/app-developers/bridging.mdx b/pages/app-developers/bridging.mdx index 4720e5250..ad15c06aa 100644 --- a/pages/app-developers/bridging.mdx +++ b/pages/app-developers/bridging.mdx @@ -28,8 +28,8 @@ Contracts on one chain can trigger contract functions on the other chain, which The Standard Token Bridge for OP Mainnet even uses this same message-passing infrastructure under the hood. - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/bridging/basics.mdx b/pages/app-developers/bridging/basics.mdx index 12ac5f3a8..b8011f4a3 100644 --- a/pages/app-developers/bridging/basics.mdx +++ b/pages/app-developers/bridging/basics.mdx @@ -39,7 +39,7 @@ All of this is easily accessible with a simple, clean API. Ready to start bridging? Check out these tutorials to get up to speed fast. -* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) -* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth) -* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token) -* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-domain-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-token-bridge) +* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) diff --git a/pages/app-developers/bridging/custom-bridge.mdx b/pages/app-developers/bridging/custom-bridge.mdx index 7c8d21493..da14da1b2 100644 --- a/pages/app-developers/bridging/custom-bridge.mdx +++ b/pages/app-developers/bridging/custom-bridge.mdx @@ -25,7 +25,7 @@ This guide provides important information you should be aware of when building a Custom bridges can bring a significant amount of complexity and risk to any project. Before you commit to a custom bridge, be sure that the [Standard Bridge](./standard-bridge) definitely does not support your use case. - [Building a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) is often sufficient for projects that need more flexibility. + [Building a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) is often sufficient for projects that need more flexibility. ## Guidelines @@ -41,7 +41,7 @@ You can read more about the design of the Standard Bridge in the guide on [Using ## The Superchain Token List -The [Superchain Token List](/superchain/tokenlist) exists to help users and developers find the right bridged representations of tokens native to another blockchain. +The [Superchain Token List](/app-developers/reference/tokens/tokenlist) exists to help users and developers find the right bridged representations of tokens native to another blockchain. Once you've built and tested your custom bridge, make sure to register any tokens meant to flow through this bridge by [making a pull request against the Superchain Token List repository](https://github.com/ethereum-optimism/ethereum-optimism.github.io#adding-a-token-to-the-list). You **must** deploy your bridge to OP Sepolia before it can be added to the Superchain Token List. diff --git a/pages/app-developers/bridging/messaging.mdx b/pages/app-developers/bridging/messaging.mdx index e96057054..e0f8a220c 100644 --- a/pages/app-developers/bridging/messaging.mdx +++ b/pages/app-developers/bridging/messaging.mdx @@ -25,7 +25,7 @@ This page explains how bridging works, how to use it, and what to watch out for. This is a high-level overview of the bridging process. - For a step-by-step tutorial on how to send data between L1 and L2, check out the [Solidity tutorial](/app-developers/tutorials/bridging/cross-dom-solidity). + For a step-by-step tutorial on how to send data between L1 and L2, check out the [Solidity tutorial](/app-developers/tutorials/bridging/cross-domain-contracts). ## Understanding contract calls @@ -130,7 +130,7 @@ contract MyContract { ``` - You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/superchain/addresses) page. + You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/reference/addresses) page. ## Communication speed diff --git a/pages/app-developers/bridging/standard-bridge.mdx b/pages/app-developers/bridging/standard-bridge.mdx index 0f5a934cc..fa65f9ec2 100644 --- a/pages/app-developers/bridging/standard-bridge.mdx +++ b/pages/app-developers/bridging/standard-bridge.mdx @@ -206,19 +206,19 @@ Users simply need to trigger and send ETH to the [`bridgeETH`](https://github.co Users can also deposit ETH from Ethereum to OP Mainnet by sending a basic ETH transfer from an EOA to the `L1StandardBridgeProxy`. This works because the `L1StandardBridgeProxy` contains a [`receive`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L119-L121) function. - You can find the mainnet and testnet addresses on the [Contract Addresses](/superchain/addresses) page. + You can find the mainnet and testnet addresses on the [Contract Addresses](/reference/addresses) page. ## Tutorials -* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) -* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth) -* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token) -* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-domain-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-token-bridge) +* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) ## Superchain Token List -The [Superchain Token List](/superchain/tokenlist) exists to help users discover the right bridged token addresses for any given native token. +The [Superchain Token List](/app-developers/reference/tokens/tokenlist) exists to help users discover the right bridged token addresses for any given native token. Consider checking this list to make sure that you're not using the wrong bridged representation of a token when bridging a native token. Developers who are creating their own bridged tokens should consider [adding their token](https://github.com/ethereum-optimism/ethereum-optimism.github.io#adding-a-token-to-the-list) to the Superchain Token List. diff --git a/pages/app-developers/building-apps.mdx b/pages/app-developers/building-apps.mdx index a0a309661..59f153102 100644 --- a/pages/app-developers/building-apps.mdx +++ b/pages/app-developers/building-apps.mdx @@ -21,11 +21,11 @@ import { Steps } from 'nextra/components' This guide explains the basics of OP Stack development. OP Stack chains are [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306), meaning they run a slightly modified version of the same `geth` you run on mainnet. Therefore, the differences between OP Stack development and Ethereum development are minor. -But a few differences [do exist](/stack/differences). +But a few differences [do exist](/concepts/stack/differences). ## OP Stack chains endpoint URLs -To access any Ethereum type network you need an endpoint. [These providers](/app-developers/tools/connect/rpc-providers) support our networks. +To access any Ethereum type network you need an endpoint. [These providers](/app-developers/reference/rpc) support our networks. ### Network choice @@ -42,7 +42,7 @@ You can verify your development stack configuration by interacting with it. As you can see in the different development stacks below, the way you deploy contracts and interact with them on OP Stack chains is almost identical to the way you do it with L1 Ethereum. The most visible difference is that you have to specify a different endpoint (of course). -For more detail, see the guide on [Differences between Ethereum and OP Stack Chains](/stack/differences). +For more detail, see the guide on [Differences between Ethereum and OP Stack Chains](/concepts/stack/differences). * [Apeworx](https://www.apeworx.io/) * [Brownie](https://eth-brownie.readthedocs.io/en/stable/install.html) @@ -61,14 +61,14 @@ Not only is it faster, but such EVMs often have extra features, such as the [abi ### Debug before deploying -After you are done with that development, debug your decentralized application using either a [development network](/operators/chain-operators/tutorials/chain-dev-net) or a [Sepolia test network](/superchain/networks). +After you are done with that development, debug your decentralized application using either a [development network](/chain-operators/tutorials/development-network) or a [Sepolia test network](/reference/networks). This lets you debug parts that are OP Stack chains specific such as calls to bridges to transfer ETH or tokens between layers. Only when you have a version that works well on a test network should you deploy to the production network, where every transaction has a cost. ### Contract source verification -You don't have to upload your source code to [block explorers](/app-developers/tools/build/block-explorers), but it is a good idea. +You don't have to upload your source code to [block explorers](/app-developers/tools/infrastructure/explorers), but it is a good idea. On the test network, it lets you issue queries and transactions from the explorer's user interface. On the production network, it lets users know exactly what your contract does, which is conducive to trust. diff --git a/pages/app-developers/testing-apps.mdx b/pages/app-developers/testing-apps.mdx index cc5346324..e8423a410 100644 --- a/pages/app-developers/testing-apps.mdx +++ b/pages/app-developers/testing-apps.mdx @@ -25,13 +25,13 @@ Most Ethereum development stacks include features that make testing easier, whic Therefore, it is a good idea to run the majority of tests, which do not rely on OP Stack-specific features, in the development stack. It is a lot faster. -It is a best practice to design and run thorough tests across an OP test network, either in your [local multichain development environment](/app-developers/tools/supersim), our [devnets](/stack/public-devnets), or on [the test network](/superchain/networks#op-sepolia), depending on your use case. Alternatively, with [Tenderly Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism)you can run tests with complete integration with existing protocols, access to unlimited faucets, continuous state sync, and access to development tools such as Debugger and Simulator UI. +It is a best practice to design and run thorough tests across an OP test network, either in your [local multichain development environment](/app-developers/tools/development/supersim), our [devnets](/developers/testing/public-devnets), or on [the test network](/superchain/networks#op-sepolia), depending on your use case. Alternatively, with [Tenderly Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism)you can run tests with complete integration with existing protocols, access to unlimited faucets, continuous state sync, and access to development tools such as Debugger and Simulator UI. Running proper testing is key to identifying fringe cases where the equivalence between OP Stack chains and Ethereum breaks down (or where Ethereum mainnet itself and the development stack may be non-equivalent in a production environment). ## Multilayer integration tests Some apps need OP Stack-specific features that aren't available as part of the development stack. -For example, if your decentralized application relies on [inter-domain communication](/app-developers/bridging/messaging), the effort of developing a stub to let you debug it in a development stack is probably greater than the hassle of having the automated test go to [a local multichain development environment](/app-developers/tools/supersim) each time. +For example, if your decentralized application relies on [inter-domain communication](/app-developers/guides/bridging/messaging), the effort of developing a stub to let you debug it in a development stack is probably greater than the hassle of having the automated test go to [a local multichain development environment](/app-developers/tools/development/supersim) each time. ## Testing and Staging with Tenderly @@ -48,6 +48,6 @@ Tenderly [Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campai In many cases a decentralized application requires the services of other contracts. For example, [Perpetual v. 2](https://docs.perp.com/docs/guides/integration-guide) cannot function without [Uniswap v. 3](https://uniswap.org/blog/uniswap-v3). -* If that is the case, you can use [mainnet forking](/app-developers/tutorials/supersim/reference/fork). It works with OP Stack chains. +* If that is the case, you can use [mainnet forking](/app-developers/reference/tools/supersim/fork). It works with OP Stack chains. * Create a Virtual TestNet to get access to third party contracts (e.g. Uniswap) and it's latest or historical state. * Alternatively, you can connect to our [test network](/superchain/networks#op-sepolia) if those contracts are also deployed there (in many cases they are). diff --git a/pages/app-developers/tools.mdx b/pages/app-developers/tools.mdx index ec079a27d7..e6553c4ed 100644 --- a/pages/app-developers/tools.mdx +++ b/pages/app-developers/tools.mdx @@ -19,30 +19,30 @@ import { Card, Cards } from 'nextra/components' Welcome to the app developer tools! -If you are already familiar with [building on the OP Stack](/stack/getting-started) and just need the tools to get cracking, you are in the right place! +If you are already familiar with [building on the OP Stack](/concepts/stack/overview) and just need the tools to get cracking, you are in the right place! ## Connecting - } /> + } /> - } /> + } /> - } /> + } /> ## Building - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> @@ -52,15 +52,15 @@ If you are already familiar with [building on the OP Stack](/stack/getting-start } /> - } /> + } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> diff --git a/pages/app-developers/tools/build.mdx b/pages/app-developers/tools/build.mdx index 6ada1a1c7..c1872114c 100644 --- a/pages/app-developers/tools/build.mdx +++ b/pages/app-developers/tools/build.mdx @@ -23,28 +23,28 @@ This section provides information on account abstraction, block explorers, testn - } /> + } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tools/build/account-abstraction.mdx b/pages/app-developers/tools/build/account-abstraction.mdx index 0b02511f6..a43abdf6e 100644 --- a/pages/app-developers/tools/build/account-abstraction.mdx +++ b/pages/app-developers/tools/build/account-abstraction.mdx @@ -34,7 +34,7 @@ import { Callout } from 'nextra/components' The OP Stack includes support for the `eth_sendRawTransactionConditional` RPC method to assist bundlers on shared 4337 mempools. See the [specification](/stack/features/send-raw-transaction-conditional) for how this method is implemented in op-geth. -If used by the chain operator, also see the supplemental [op-txproxy](/operators/chain-operators/tools/op-txproxy) service which may apply additional restrictions prior to reaching the block builder. +If used by the chain operator, also see the supplemental [op-txproxy](/chain-operators/tools/op-txproxy) service which may apply additional restrictions prior to reaching the block builder. As of today, this endpoint is not enabled by default in the stack. The operator must explicitly configure this. diff --git a/pages/app-developers/tools/build/block-explorers.mdx b/pages/app-developers/tools/build/block-explorers.mdx index 50ae7df8c..3945b365c 100644 --- a/pages/app-developers/tools/build/block-explorers.mdx +++ b/pages/app-developers/tools/build/block-explorers.mdx @@ -95,7 +95,7 @@ Tenderly Developer Explorer lets you: ## Access to pre-regenesis history Because of our final regenesis on 11 November 2021, older transactions are not part of the current blockchain and do not appear on [Etherscan](https://explorer.optimism.io/?utm_source=op-docs&utm_medium=docs). -However, you **can** access transaction history between 23 June 2021 and the final regenesis using a number of different tools. For detailed instructions, see [Regenesis History](/operators/node-operators/management/regenesis-history). +However, you **can** access transaction history between 23 June 2021 and the final regenesis using a number of different tools. For detailed instructions, see [Regenesis History](/node-operators/guides/management/regenesis). ## Inclusion criteria diff --git a/pages/app-developers/tools/build/ecosystem-overview.mdx b/pages/app-developers/tools/build/ecosystem-overview.mdx index b004e2030..d660f7b89 100644 --- a/pages/app-developers/tools/build/ecosystem-overview.mdx +++ b/pages/app-developers/tools/build/ecosystem-overview.mdx @@ -24,7 +24,7 @@ The Superchain ecosystem repository was developed to help ease and expedite the ## Getting started -Our initial launch includes a [bridge tutorial](/interop/tutorials/bridge-crosschain-eth) that demonstrates how to bridge ETH and any ERC20 tokens listed in the [Superchain Token List](/superchain/tokenlist). This tutorial serves as a reference for anyone looking to build their own bridge, providing a clearer understanding of how to interact with the protocol on both the L1 and L2 sides. +Our initial launch includes a [bridge tutorial](/app-developers/tutorials/bridging/cross-chain-eth) that demonstrates how to bridge ETH and any ERC20 tokens listed in the [Superchain Token List](/app-developers/reference/tokens/tokenlist). This tutorial serves as a reference for anyone looking to build their own bridge, providing a clearer understanding of how to interact with the protocol on both the L1 and L2 sides. Additionally, we provide a package containing common utilities essential for developers interacting with both L1 and L2. One such package is [viem-optimism](https://github.com/ethereum-optimism/ecosystem/tree/main/packages/viem), which offers utilities for interacting with the OP Stack using the viem library. diff --git a/pages/app-developers/tools/build/oracles.mdx b/pages/app-developers/tools/build/oracles.mdx index b216761eb..dbf94318f 100644 --- a/pages/app-developers/tools/build/oracles.mdx +++ b/pages/app-developers/tools/build/oracles.mdx @@ -56,7 +56,7 @@ Random number generation in blockchain applications ensures that smart contracts ### Gas oracle -OP Mainnet provides a [Gas Price Oracle](https://github.com/ethereum-optimism/optimism/blob/233ede59d16cb01bdd8e7ff662a153a4c3178bdd/packages/contracts/contracts/L2/predeploys/OVM_GasPriceOracle.sol) that provides information about [gas prices and related parameters](/stack/transactions/fees). +OP Mainnet provides a [Gas Price Oracle](https://github.com/ethereum-optimism/optimism/blob/233ede59d16cb01bdd8e7ff662a153a4c3178bdd/packages/contracts/contracts/L2/predeploys/OVM_GasPriceOracle.sol) that provides information about [gas prices and related parameters](/concepts/transactions/fees). It can also calculate the total cost of a transaction for you before you send it. This contract is a predeploy at address `0x420000000000000000000000000000000000000F`: diff --git a/pages/app-developers/tools/connect.mdx b/pages/app-developers/tools/connect.mdx index 2a1d2b358..53eccfc62 100644 --- a/pages/app-developers/tools/connect.mdx +++ b/pages/app-developers/tools/connect.mdx @@ -20,7 +20,7 @@ import { Card, Cards } from 'nextra/components' This section provides information on networks and RPC & node providers. You'll find reference to help you understand and work with these topics. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tools/connect/rpc-providers.mdx b/pages/app-developers/tools/connect/rpc-providers.mdx index 449ef2452..6a91dbb81 100644 --- a/pages/app-developers/tools/connect/rpc-providers.mdx +++ b/pages/app-developers/tools/connect/rpc-providers.mdx @@ -248,10 +248,10 @@ The following providers offer production-grade RPC access to Superchain networks The Superchain RPC Directory is maintained by OP Labs with the following policies: * Providers must submit a docs PR to the [docs](https://github.com/ethereum-optimism/docs/) to be added -* To be listed, providers must support at least one network in the [Superchain](/superchain/superchain-registry) +* To be listed, providers must support at least one network in the [Superchain](/chain-operators/reference/superchain-registry) * Anyone can submit a PR to remove a provider that does not support a listed network ## Next steps -* Want to run your own node? See the [Node operators guide](/operators/node-operators/rollup-node). +* Want to run your own node? See the [Node operators guide](/node-operators/reference/architecture/rollup-node). * Looking for other developer tools? See [developer tools overview](/app-developers/tools) to explore more options! diff --git a/pages/app-developers/tools/supersim.mdx b/pages/app-developers/tools/supersim.mdx index 735f54051..eb3f77649 100644 --- a/pages/app-developers/tools/supersim.mdx +++ b/pages/app-developers/tools/supersim.mdx @@ -65,6 +65,6 @@ This diagram illustrates how developers interact with Supersim through the CLI, ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* View more [Supersim tutorials](/app-developers/tutorials/supersim) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* View more [Supersim tutorials](/app-developers/tutorials/development/supersim) diff --git a/pages/app-developers/transactions.mdx b/pages/app-developers/transactions.mdx index e38926b58..c442e5489 100644 --- a/pages/app-developers/transactions.mdx +++ b/pages/app-developers/transactions.mdx @@ -22,9 +22,9 @@ import { Card, Cards } from 'nextra/components' This section provides information on transactions in OP Mainnet, including fee estimation, gas parameters, transaction statuses, and troubleshooting. You'll find guides to help you understand and work with these topics. - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/transactions/estimates.mdx b/pages/app-developers/transactions/estimates.mdx index 19b283548..83cbd80b9 100644 --- a/pages/app-developers/transactions/estimates.mdx +++ b/pages/app-developers/transactions/estimates.mdx @@ -60,7 +60,7 @@ Make sure to check out the guide on [Setting Transaction Gas Parameters on OP Ma The Viem library provides a convenient method for estimating the L1 data fee for a transaction. -Check out the tutorial on [Estimating Transaction Costs on OP Mainnet](/app-developers/tutorials/transactions/sdk-estimate-costs) to learn how to use the Viem library to estimate the L1 data fee for your transaction. +Check out the tutorial on [Estimating Transaction Costs on OP Mainnet](/app-developers/tutorials/transactions/cost-estimation) to learn how to use the Viem library to estimate the L1 data fee for your transaction. Keep reading if you'd like to learn how to estimate the L1 data fee without the Viem library. diff --git a/pages/app-developers/tutorials.mdx b/pages/app-developers/tutorials.mdx index 987c1c352..b1afac412 100644 --- a/pages/app-developers/tutorials.mdx +++ b/pages/app-developers/tutorials.mdx @@ -23,41 +23,41 @@ If you're a bit more familiar with the OP Stack and Ethereum, you can try walkin ## Bridging - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> } /> ## Transactions - } /> - } /> - } /> + } /> + } /> + } /> } /> ## Supersim - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> ## Interop - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> You can also [suggest a new tutorial](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=tutorial%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_tutorial.yaml\&title=%5BTUTORIAL%5D+Add+PR+title) if you have something specific in mind. We'd love to grow this list! diff --git a/pages/app-developers/tutorials/bridging.mdx b/pages/app-developers/tutorials/bridging.mdx index fd57707fc..65b7ca4d3 100644 --- a/pages/app-developers/tutorials/bridging.mdx +++ b/pages/app-developers/tutorials/bridging.mdx @@ -20,9 +20,9 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on bridging. - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx b/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx index 4a6932a25..13016797a 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx @@ -25,8 +25,8 @@ This tutorial explains how you can use [@eth-optimism/viem](https://www.npmjs.co The `@eth-optimism/viem` package is an easy way to add bridging functionality to your javascript-based application. It also provides some safety rails to prevent common mistakes that could cause tokens to be made inaccessible. -Behind the scenes, `@eth-optimism/viem` package uses the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts to transfer tokens. -Make sure to check out the [Standard Bridge guide](/app-developers/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. +Behind the scenes, `@eth-optimism/viem` package uses the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts to transfer tokens. +Make sure to check out the [Standard Bridge guide](/app-developers/guides/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. The Standard Bridge **does not** support [**fee on transfer @@ -37,8 +37,8 @@ Make sure to check out the [Standard Bridge guide](/app-developers/bridging/stan ## Supported networks -The `@eth-optimism/viem` package supports any of the [Superchain networks](/superchain/networks). -If you want to use a network that isn't included by default, you can simply [instantiate the package with the appropriate contract addresses](/app-developers/get-started). +The `@eth-optimism/viem` package supports any of the [Superchain networks](/reference/networks). +If you want to use a network that isn't included by default, you can simply [instantiate the package with the appropriate contract addresses](/app-developers/quickstarts/first-app). ## Dependencies diff --git a/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx b/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx index df97cccb9..2a468764c 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx @@ -26,12 +26,12 @@ This tutorial explains how you can use [Viem](https://viem.sh) to bridge ETH fro Viem is a TypeScript interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum. It offers an easy way to add bridging functionality to your JavaScript-based application. -Behind the scenes, Viem uses the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts to transfer ETH and ERC-20 tokens. -Make sure to check out the [Standard Bridge guide](/app-developers/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. +Behind the scenes, Viem uses the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts to transfer ETH and ERC-20 tokens. +Make sure to check out the [Standard Bridge guide](/app-developers/guides/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. ## Supported networks -Viem supports any of the [Superchain networks](/superchain/networks). +Viem supports any of the [Superchain networks](/reference/networks). The OP Stack networks are included in Viem by default. If you want to use a network that isn't included by default, you can add it to Viem's chain configurations. diff --git a/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx b/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx index cf3fa29ae..a0a49b40f 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx @@ -41,7 +41,7 @@ OP Stack uses a smart contract called the `CrossDomainMessenger` to pass message Both chains have a version of this contract (the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger`). Messages sent from Ethereum to OP Stack are automatically relayed behind the scenes. Messages sent from OP Stack to Ethereum must be explicitly relayed with a second transaction on Ethereum. -Read more about message passing in the guide to [Sending Data Between L1 and L2](/app-developers/bridging/messaging). +Read more about message passing in the guide to [Sending Data Between L1 and L2](/app-developers/guides/bridging/messaging). ## Dependencies @@ -271,7 +271,7 @@ Luckily, both `Greeter` contracts are exactly the same so it's easy to see how e ### The Messenger variable The `Greeter` contract has a `MESSENGER` variable that keeps track of the `CrossDomainMessenger` contract on the current chain. -Check out the [Contract Addresses page](/superchain/addresses) to see the addresses of the `CrossDomainMessenger` contracts on whichever network you'll be using. +Check out the [Contract Addresses page](/reference/addresses) to see the addresses of the `CrossDomainMessenger` contracts on whichever network you'll be using. ```solidity file=/public/tutorials/cross-dom-solidity.sol#L14 hash=ce8be857d4b4e1992cd3c16b8f2864b9 ``` @@ -335,7 +335,7 @@ You just learned how you can write Solidity contracts on Sepolia and OP Sepolia You can follow the same pattern to write contracts that can talk to each other on Ethereum and OP Stack. This sort of cross-chain communication is useful for a variety of reasons. -For example, the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts use this same system to bridge ETH and ERC-20 tokens between Ethereum and OP Stack. +For example, the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts use this same system to bridge ETH and ERC-20 tokens between Ethereum and OP Stack. One cool way to take advantage of cross-chain communication is to do most of your heavy lifting on OP Stack and then send a message to Ethereum only when you have important results to share. This way you can take advantage of the low gas costs on OP Stack while still being able to use Ethereum when you need it. diff --git a/pages/app-developers/tutorials/interop.mdx b/pages/app-developers/tutorials/interop.mdx index 5e15bc68b..bc440dcea 100644 --- a/pages/app-developers/tutorials/interop.mdx +++ b/pages/app-developers/tutorials/interop.mdx @@ -20,10 +20,10 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on interop. - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/supersim.mdx b/pages/app-developers/tutorials/supersim.mdx index d48fa17b4..b4a390e22 100644 --- a/pages/app-developers/tutorials/supersim.mdx +++ b/pages/app-developers/tutorials/supersim.mdx @@ -17,21 +17,21 @@ This is a collection of guides and tutorials to understanding and working with S ## General - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> ## Tutorials - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/chain-env.mdx b/pages/app-developers/tutorials/supersim/chain-env.mdx index 77d49dc39..2e6a7b43f 100644 --- a/pages/app-developers/tutorials/supersim/chain-env.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env.mdx @@ -21,9 +21,9 @@ import { Card, Cards } from 'nextra/components' These tutorials are for understanding and configuring your chain environment using Supersim. - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx b/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx index 67055f51f..92822bd59 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx @@ -101,5 +101,5 @@ This guide provides network details and contract addresses for OPChainA (chainID ## Next steps -* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx b/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx index 2d611269b..8b933a086 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx @@ -101,5 +101,5 @@ This guide provides network details and contract addresses for OPChainB (chainID ## Next steps -* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx b/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx index 11bae1c64..a0346cf55 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx @@ -54,5 +54,5 @@ cast send 0x420beeF000000000000000000000000000000001 "mint(address _to, uint256 ## Next steps -* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/tutorials/supersim/chain-env/chain-a) and [OPChainB (chainID 902)](/app-developers/tutorials/supersim/chain-env/chain-b). -* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/reference/tools/supersim/chain-a) and [OPChainB (chainID 902)](/app-developers/reference/tools/supersim/chain-b). +* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/supersim/deposit-transactions.mdx b/pages/app-developers/tutorials/supersim/deposit-transactions.mdx index 50d223cf5..9dffcb5b0 100644 --- a/pages/app-developers/tutorials/supersim/deposit-transactions.mdx +++ b/pages/app-developers/tutorials/supersim/deposit-transactions.mdx @@ -20,7 +20,7 @@ import { Callout, Steps } from 'nextra/components' # Deposit transactions -Supersim supports [deposit transactions](/stack/transactions/deposit-flow). It uses a very lightweight solution without the `op-node` derivation pipeline by listening directly to the `TransactionDeposited` events on the `OptimismPortal` contract and simply forwarding the transaction to the applicable L2. +Supersim supports [deposit transactions](/concepts/transactions/deposits). It uses a very lightweight solution without the `op-node` derivation pipeline by listening directly to the `TransactionDeposited` events on the `OptimismPortal` contract and simply forwarding the transaction to the applicable L2. The execution engine used with Supersim must support the Optimism [deposit transaction type](https://specs.optimism.io/protocol/deposits.html#the-deposited-transaction-type). @@ -106,6 +106,6 @@ We'll run through a sample deposit directly with the `OptimismPortal` using cast ## Next steps -* See the [transaction guides](/app-developers/transactions) for more detailed information. -* Questions about Interop? Check out collection of [interop guides](/interop/explainer) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). +* See the [transaction guides](/app-developers/guides/transactions) for more detailed information. +* Questions about Interop? Check out collection of [interop guides](/concepts/interoperability/overview) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/getting-started.mdx b/pages/app-developers/tutorials/supersim/getting-started.mdx index 53604732b..df940edb1 100644 --- a/pages/app-developers/tutorials/supersim/getting-started.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started.mdx @@ -21,7 +21,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of guides for installing dependencies and getting started with Supersim. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx b/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx index e6c402f16..340031328 100644 --- a/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx @@ -128,5 +128,5 @@ With the steps above, you've now successfully completed both an L1 to L2 ETH bri ## Next steps -* Learn how to start Supersim in [vanilla (non-forked) mode](/app-developers/tutorials/supersim/reference/vanilla) or [forked mode](/app-developers/tutorials/supersim/reference/fork). -* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. +* Learn how to start Supersim in [vanilla (non-forked) mode](/app-developers/reference/tools/supersim/vanilla) or [forked mode](/app-developers/reference/tools/supersim/fork). +* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. diff --git a/pages/app-developers/tutorials/supersim/getting-started/installation.mdx b/pages/app-developers/tutorials/supersim/getting-started/installation.mdx index 298686a89..4516292b7 100644 --- a/pages/app-developers/tutorials/supersim/getting-started/installation.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started/installation.mdx @@ -57,4 +57,4 @@ This page provides installation instructions for `supersim`. ## Next steps * Continue to the [First Steps](first-steps) tutorial to try L1 to L2 message passing. -* Explore [Supersim](/app-developers/tutorials/supersim) features, particularly in [vanilla mode](/app-developers/tutorials/supersim/reference/vanilla), which starts 3 chains (L1 and L2). +* Explore [Supersim](/app-developers/tutorials/development/supersim) features, particularly in [vanilla mode](/app-developers/reference/tools/supersim/vanilla), which starts 3 chains (L1 and L2). diff --git a/pages/app-developers/tutorials/supersim/reference.mdx b/pages/app-developers/tutorials/supersim/reference.mdx index c31b7a550..c34db4cc8 100644 --- a/pages/app-developers/tutorials/supersim/reference.mdx +++ b/pages/app-developers/tutorials/supersim/reference.mdx @@ -19,7 +19,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of guides for using the Superchain CLI with Supersim. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/reference/fork.mdx b/pages/app-developers/tutorials/supersim/reference/fork.mdx index f27eb500d..f55366163 100644 --- a/pages/app-developers/tutorials/supersim/reference/fork.mdx +++ b/pages/app-developers/tutorials/supersim/reference/fork.mdx @@ -156,5 +156,5 @@ supersim fork --chains=op,base,zora --interop.enabled ## Next steps -* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. -* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. +* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/supersim/reference/vanilla.mdx b/pages/app-developers/tutorials/supersim/reference/vanilla.mdx index 2bf85face..43a8751c0 100644 --- a/pages/app-developers/tutorials/supersim/reference/vanilla.mdx +++ b/pages/app-developers/tutorials/supersim/reference/vanilla.mdx @@ -159,6 +159,6 @@ GLOBAL OPTIONS: ## Next steps -* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. -* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/tutorials/supersim/chain-env/chain-a) and [OPChainB (chainID 902)](/app-developers/tutorials/supersim/chain-env/chain-b). -* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. +* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/reference/tools/supersim/chain-a) and [OPChainB (chainID 902)](/app-developers/reference/tools/supersim/chain-b). +* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/transactions.mdx b/pages/app-developers/tutorials/transactions.mdx index cc14d04a5..7e1075350 100644 --- a/pages/app-developers/tutorials/transactions.mdx +++ b/pages/app-developers/tutorials/transactions.mdx @@ -21,7 +21,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on transactions. - } /> - } /> - } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx b/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx index 44b244094..85d60c0e1 100644 --- a/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx +++ b/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx @@ -24,12 +24,12 @@ You'll learn how to estimate the [execution gas fee](/app-developers/transaction You'll also learn how to estimate the total cost of the transaction all at once. - Check out the full explainer on [OP Stack transaction fees](/app-developers/transactions/fees) for more information on how OP Mainnet charges fees under the hood. + Check out the full explainer on [OP Stack transaction fees](/app-developers/guides/transactions/fees) for more information on how OP Mainnet charges fees under the hood. ## Supported networks -Viem supports any of the [Superchain networks](/superchain/networks). +Viem supports any of the [Superchain networks](/reference/networks). The OP Stack networks are included in Viem by default. If you want to use a network that isn't included by default, you can add it to Viem's chain configurations. diff --git a/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx b/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx index fd9084bba..45c0b3b9a 100644 --- a/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx +++ b/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx @@ -20,7 +20,7 @@ import { Callout, Steps } from 'nextra/components' # Tracing deposits and withdrawals -In this tutorial, you'll learn how to use the [viem](https://viem.sh) library to trace a [Standard Bridge](/app-developers/bridging/standard-bridge) deposit or withdrawal between L1 and L2. +In this tutorial, you'll learn how to use the [viem](https://viem.sh) library to trace a [Standard Bridge](/app-developers/guides/bridging/standard-bridge) deposit or withdrawal between L1 and L2. You'll specifically learn how to determine the status of a deposit or withdrawal and how to retrieve the transaction receipt for the executed transaction on L1 (for withdrawals) or L2 (for deposits). ## Dependencies @@ -170,4 +170,4 @@ You can use viem's functions to trace a withdrawal. ## Next steps -* Check out the tutorial on [bridging ERC-20 tokens with the @eth-optimism/viem package](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) to learn how to create deposits and withdrawals. +* Check out the tutorial on [bridging ERC-20 tokens with the @eth-optimism/viem package](/app-developers/tutorials/bridging/cross-domain-erc20) to learn how to create deposits and withdrawals. diff --git a/pages/connect/contribute.mdx b/pages/connect/contribute.mdx index 211af4798..de8888c51 100644 --- a/pages/connect/contribute.mdx +++ b/pages/connect/contribute.mdx @@ -25,6 +25,6 @@ Documentation covering Docs Contribute, Stack Contribute, Style Guide in the Con - + diff --git a/pages/connect/contribute/docs-contribute.mdx b/pages/connect/contribute/docs-contribute.mdx index 7783df705..d2974d6e0 100644 --- a/pages/connect/contribute/docs-contribute.mdx +++ b/pages/connect/contribute/docs-contribute.mdx @@ -32,9 +32,9 @@ Optimism Docs (docs.optimism.io) is an open-source project, and we welcome your * [Add or update an FAQ item](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=documentation%2Cfaq%2Ccommunity-request\&projects=\&template=suggest_faq_item.yaml\&title=Suggest+an+FAQ+item): add a new FAQ (question+answer set) to an [existing page](/stack/security/faq-sec-model), create a new FAQ page, or update an existing FAQ question/answer set. * [Add or update a troubleshooting item](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=documentation%2Ctroubleshooting%2Ccommunity-request\&projects=\&template=suggest_troubleshooting_item.yaml\&title=Suggest+a+troubleshooting+item): - add a new troubleshooting item (problem+solution set) to an [existing page](/operators/chain-operators/management/troubleshooting), create a new troubleshooting page, or update an existing troubleshooting problem/solution set. + add a new troubleshooting item (problem+solution set) to an [existing page](/chain-operators/guides/troubleshooting), create a new troubleshooting page, or update an existing troubleshooting problem/solution set. * [Add a glossary term](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=glossary%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_glossary_term.yaml\&title=Suggest+a+glossary+term): - help us continue to expand the Optimism [glossary](/connect/resources/glossary). + help us continue to expand the Optimism [glossary](/reference/glossary). * [Add a faucet to the developer community](https://github.com/ethereum-optimism/developers/tree/main/community): add a new faucet to the [Faucets page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/faucets.md) or update an existing faucet. * [Add an oracle to the developer community](https://github.com/ethereum-optimism/developers/tree/main/community): diff --git a/pages/connect/contribute/stack-contribute.mdx b/pages/connect/contribute/stack-contribute.mdx index 1e9b88387..11c805ccc 100644 --- a/pages/connect/contribute/stack-contribute.mdx +++ b/pages/connect/contribute/stack-contribute.mdx @@ -19,7 +19,7 @@ import { Callout } from 'nextra/components' # Contribute to the OP Stack -The OP Stack is a collaborative, decentralized development stack that only gets more powerful as more people contribute. Code for the OP Stack should follow the stack's [design principles](/stack/design-principles), which means it should be entirely open source and accessible for people to hack on, contribute to, and extend. +The OP Stack is a collaborative, decentralized development stack that only gets more powerful as more people contribute. Code for the OP Stack should follow the stack's [design principles](/concepts/stack/design-principles), which means it should be entirely open source and accessible for people to hack on, contribute to, and extend. The Optimism Collective wins when it works together. ♥️✨ Whether you're a budding chain operator, app developer, node operator, bounty hunter, content creator, or anything in between, the OP Stack always has something for you to contribute to. @@ -27,7 +27,7 @@ Every contribution makes a difference — no contribution is too small. If you'r ## Component contributions -The OP Stack is a decentralized development stack and is constantly evolving as new layers and modules are developed. Anyone can contribute components that can be considered part of the OP Stack as long as those components fit the stack's [design principles and goals](/stack/design-principles). +The OP Stack is a decentralized development stack and is constantly evolving as new layers and modules are developed. Anyone can contribute components that can be considered part of the OP Stack as long as those components fit the stack's [design principles and goals](/concepts/stack/design-principles). To start contributing components to the stack, check out some of these [useful ideas](https://github.com/ethereum-optimism/ecosystem-contributions) and get to building! And don't forget that projects can also receive grants from the Collective via [RetroPGF](https://community.optimism.io/docs/citizen-house/how-retro-funding-works/?utm_source=op-docs&utm_medium=docs). ## Codebase contributions diff --git a/pages/connect/contribute/style-guide.mdx b/pages/connect/contribute/style-guide.mdx index b9046d0d8..340d955b6 100644 --- a/pages/connect/contribute/style-guide.mdx +++ b/pages/connect/contribute/style-guide.mdx @@ -21,7 +21,7 @@ import { Callout } from 'nextra/components' # Docs style guide -This Style Guide aims to assist Optimists in writing technical content with a consistent voice, tone, and style. See the [glossary](/connect/resources/glossary) for an alphabetical listing of commonly used words, terms, and concepts used throughout the technical docs and across the OP Collective. +This Style Guide aims to assist Optimists in writing technical content with a consistent voice, tone, and style. See the [glossary](/reference/glossary) for an alphabetical listing of commonly used words, terms, and concepts used throughout the technical docs and across the OP Collective. This doc doesn't cover all questions or use-cases. Our guide is based on the [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/). Please reference their guide for any use-case or situation we do not cover here. @@ -97,7 +97,7 @@ See below for when to use title or sentence case. * Use sentence case for body content and short phrases, even when the content is a link. Sentence case means you only capitalize the first letter of the sentence.
- **Example:** If you're trying to figure out how to do something specific as a node operator, you might search our collection of [tutorials](/operators/node-operators/rollup-node) or [suggest a new one](https://github.com/ethereum-optimism/docs/issues). + **Example:** If you're trying to figure out how to do something specific as a node operator, you might search our collection of [tutorials](/node-operators/reference/architecture/rollup-node) or [suggest a new one](https://github.com/ethereum-optimism/docs/issues). * Use lowercase in code snippets by default, unless the code block uses capitalization (e.g., for the name of a function or variable) and you are referring to the function or variable elsewhere within the technical documentation.
**Examples**: Run `git add` or Import `useState` @@ -305,7 +305,7 @@ Developers trust that we will lead them to sites or pages related to their readi * Use anchor links, whenever possible, to guide users to a specific page and location in the technical documentation. This reduces cognitive load and improves overall usability. -* To link to an anchor, such as an H3 tag within a page, you need to append it to the page name preceded by `#`, like this **example**: `[any descriptive text](/interop/tutorials/deploy-superchain-erc20)`. +* To link to an anchor, such as an H3 tag within a page, you need to append it to the page name preceded by `#`, like this **example**: `[any descriptive text](/app-developers/tutorials/tokens/deploy-superchain-erc20)`. ### Linking across pages @@ -315,32 +315,32 @@ Developers trust that we will lead them to sites or pages related to their readi * Use the exact title of the page when linking to it in a sentence, whenever possible, and display it in title case. The link should use default styling with no other formatting (bold, italics, quotations). - **Example**: Be sure to check out the [OP Stack Getting Started Guide](/stack/getting-started) to get up to speed. + **Example**: Be sure to check out the [OP Stack Getting Started Guide](/concepts/stack/overview) to get up to speed. * Use sentence case when linking to an article without using the exact article title. This causes minimal disruption to the flow of the sentence. The link should use default styling. - **Example**: For something more advanced, we recommend reading through our page on [sending data between L1 and L2](/app-developers/bridging/messaging). + **Example**: For something more advanced, we recommend reading through our page on [sending data between L1 and L2](/app-developers/guides/bridging/messaging). * Use `detailed instructions` link format to refer users to another article with detailed instructions that are important for completing the current task. - **Example**: For detailed instructions, see [Article Title](/app-developers/bridging/standard-bridge). + **Example**: For detailed instructions, see [Article Title](/app-developers/guides/bridging/standard-bridge). * Use the `more information` link format to guide users to a suggested reading that the user may find helpful because it is related to the task/topic, but not essential for completing the current task. - **Example**: For more information, see [Article Title](/app-developers/bridging/standard-bridge). + **Example**: For more information, see [Article Title](/app-developers/guides/bridging/standard-bridge). ## Content types Content types help manage technical content by defining the purpose and common structure for each file type. All content types used in these technical docs have attributes or properties, as defined below. -| Document type | Purpose | Examples | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | -| Overviews or Explainers | General introduction to a product or feature, provides a happy-path for readers | [Superchain Explainer](/superchain/superchain-explainer) | -| Guides | Explain what things are and how they work | [Standard Bridge Guide](/app-developers/bridging/standard-bridge) | -| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) | -| FAQs | Address frequently asked questions | [FAQ: OP Mainnet Security Model](/stack/security/faq-sec-model) | -| Troubleshooting | List common troubleshooting scenarios and solutions | [Troubleshooting: Run a Node](/operators/node-operators/management/troubleshooting) | -| Reference | Provide deep, theoretical knowledge of the internal workings of a system, such as API endpoints and specifications | [Node and RPC Providers](/app-developers/tools/connect/rpc-providers) | +| Document type | Purpose | Examples | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | +| Overviews or Explainers | General introduction to a product or feature, provides a happy-path for readers | [Superchain Explainer](/superchain/superchain-explainer) | +| Guides | Explain what things are and how they work | [Standard Bridge Guide](/app-developers/guides/bridging/standard-bridge) | +| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) | +| FAQs | Address frequently asked questions | [FAQ: OP Mainnet Security Model](/stack/security/faq-sec-model) | +| Troubleshooting | List common troubleshooting scenarios and solutions | [Troubleshooting: Run a Node](/node-operators/guides/troubleshooting) | +| Reference | Provide deep, theoretical knowledge of the internal workings of a system, such as API endpoints and specifications | [Node and RPC Providers](/app-developers/reference/rpc) | ### Overviews (or Explainers) diff --git a/pages/connect/resources.mdx b/pages/connect/resources.mdx index f79157f85..f3cc4ba3b 100644 --- a/pages/connect/resources.mdx +++ b/pages/connect/resources.mdx @@ -24,5 +24,5 @@ import { Card, Cards } from 'nextra/components' Documentation covering Glossary in the Resources section of the OP Stack ecosystem. - + diff --git a/pages/index.mdx b/pages/index.mdx index 4eadb7c38..5ac875fdc 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -28,20 +28,20 @@ import { Cards, Card } from 'nextra/components' # Welcome to the Optimism Docs -Welcome to the Optimism Docs, the unified home of the [Optimism Collective's](/connect/resources/glossary#optimism-collective) technical documentation and information about the [OP Stack](/stack/getting-started). +Welcome to the Optimism Docs, the unified home of the [Optimism Collective's](/connect/resources/glossary#optimism-collective) technical documentation and information about the [OP Stack](/concepts/stack/overview). Information about the Optimism Collective's governance, community, and mission can be found on the [Optimism Community Hub](https://community.optimism.io/docs/governance/?utm_source=op-docs&utm_medium=docs). ## Grow your app with Superchain interoperability! Superchain interoperability is the next major scalability improvement to the OP Stack which enables a network of chains, the Superchain, to feel like a single blockchain. Superchain interoperability unlocks 1-block latency, trust minimized cross-chain composability and enables ETH and ERC-20 tokens to move securely between chains via native minting and burning as well as smart contracts to compose with data across multiple chains. -Superchain interop is in active development. [Learn how you can leverage Superchain interoperability to tap into Superchain network effects](/interop/get-started). +Superchain interop is in active development. [Learn how you can leverage Superchain interoperability to tap into Superchain network effects](/app-developers/guides/interoperability/getting-started). - } /> - } /> - } /> + } /> + } /> + } /> ## Builder guides @@ -49,13 +49,13 @@ Superchain interop is in active development. [Learn how you can leverage Superch Whether you're a developer building an app on OP Mainnet, a node operator running an OP Mainnet node, or a chain operator launching your own OP Stack chain, you'll find everything you need to get started right here. - } /> + } /> } /> - } /> + } /> - } /> + } /> ## Featured tools @@ -65,15 +65,15 @@ Check out these amazing tools, so you can get building with Optimism. } /> - } /> + } /> } /> } /> - } /> + } /> - } /> + } /> @@ -84,9 +84,9 @@ The Superchain is a network of OP Stack chains that share a bridging protocol, g We've got you covered with these detailed guides to help you learn all about Optimism's tech stack. - } /> + } /> } /> - } /> + } /> diff --git a/pages/interop/compatible-tokens.mdx b/pages/interop/compatible-tokens.mdx index c5c1fecba..ef6c3635a 100644 --- a/pages/interop/compatible-tokens.mdx +++ b/pages/interop/compatible-tokens.mdx @@ -33,7 +33,7 @@ Please note that the OP Stack interoperability upgrade, required for crosschain # Superchain interop compatible tokens Superchain interop enables **trust-minimized, 1-block latency cross-chain composability** on the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster). -The recommended approach for giving tokens Superchain interop capabilities is using [SuperchainERC20](/interop/superchain-erc20), but there are other options depending on your needs. +The recommended approach for giving tokens Superchain interop capabilities is using [SuperchainERC20](/concepts/interoperability/superchain-erc20), but there are other options depending on your needs. ## How to enable cross-chain token interoperability @@ -56,7 +56,7 @@ If a 3rd party interop solution is providing faster-than-Ethereum L1 finality (1 ## SuperchainERC20 -`SuperchainERC20` is a simple and trust-minimized way to enable token interoperability within the Superchain. You can learn more about `SuperchainERC20` [here](/interop/superchain-erc20). +`SuperchainERC20` is a simple and trust-minimized way to enable token interoperability within the Superchain. You can learn more about `SuperchainERC20` [here](/concepts/interoperability/superchain-erc20). * **Security:** Fault Proofs secure Superchain interop end to end. No third-party dependencies to enable token interoperability. * **Latency:** 1-block latency within the Superchain interop cluster. @@ -143,6 +143,6 @@ NTT is a token standard used to send, receive, and compose tokens across chains ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* [Learn more about SuperchainERC20](/interop/superchain-erc20) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* [Learn more about SuperchainERC20](/concepts/interoperability/superchain-erc20) diff --git a/pages/interop/estimate-costs.mdx b/pages/interop/estimate-costs.mdx index 39aa11a6b..91dea550a 100644 --- a/pages/interop/estimate-costs.mdx +++ b/pages/interop/estimate-costs.mdx @@ -30,7 +30,7 @@ Unless OP Stack transaction costs increase significantly, interop costs should n To see the current cost of gas, go to a [block explorer](https://optimism.blockscout.com/) and look at a recent transaction.
-There are several factors that determine the cost of an [interop transaction](/interop/message-passing): +There are several factors that determine the cost of an [interop transaction](/app-developers/guides/interoperability/message-passing): * How you pass the message. You can either use [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) directly, or use the cross domain messenger, [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol), which uses `CrossL2Inbox` internally. @@ -113,7 +113,7 @@ At the time of writing, each gas unit costs approximately `$3×10^-9`, so it wou ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/interop/message-passing) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) * Watch [this video](https://www.youtube.com/watch?v=FKc5RgjtGes), which gives an overview of Superchain interoperability. diff --git a/pages/interop/explainer.mdx b/pages/interop/explainer.mdx index 28c2c08bb..64707d036 100644 --- a/pages/interop/explainer.mdx +++ b/pages/interop/explainer.mdx @@ -44,7 +44,7 @@ Superchain interoperability provides the following benefits: ## Superchain interoperability architecture A pre-interop OP Stack node consists of two pieces of software: a consensus client (e.g. op-node) and an execution client, which is responsible for processing user transactions and constructing blocks (e.g. op-geth). -Superchain interoperability among OP Stack chains is enabled via a new service called [*OP Supervisor*](/interop/op-supervisor). +Superchain interoperability among OP Stack chains is enabled via a new service called [*OP Supervisor*](/chain-operators/reference/components/op-supervisor). Every node operator is expected to run this service in addition to the [rollup node](/operators/node-operators/architecture#rollup-node) and [execution client](/operators/node-operators/architecture#execution-client). ```mermaid @@ -222,7 +222,7 @@ flowchart LR A <--> C <--> E <--> B <--> D <--> A ``` -Each blockchain in the Superchain interop cluster shares the same security model to mitigate the weakest-link scenario. As outlined in the [Standard Rollup Charter](/superchain/blockspace-charter), these chains share the same L1 `ProxyAdmin` Owner. Any changes to the Superchain interop cluster must follow the standard Protocol Upgrade vote procedure—the established governance process for Superchain modifications. +Each blockchain in the Superchain interop cluster shares the same security model to mitigate the weakest-link scenario. As outlined in the [Standard Rollup Charter](/governance/blockspace-charter), these chains share the same L1 `ProxyAdmin` Owner. Any changes to the Superchain interop cluster must follow the standard Protocol Upgrade vote procedure—the established governance process for Superchain modifications. The Superchain interop cluster will be rolled out iteratively, but to see a list of eligible chains that could join the cluster visit the [Superchain Index](https://www.superchain.eco/superchain-index) and look at chains that have a `Standard` charter. @@ -232,14 +232,14 @@ The Superchain interop cluster will be rolled out iteratively, but to see a list Superchain interop includes both the protocol layer message passing asset interoperability for ETH and SuperchainERC20 tokens. * **Message passing protocol:** the initial + finalizing/executing [message-cross-chain-message] that fire events to be consumed by the chains in the [dependency set](https://specs.optimism.io/interop/dependency-set.html) -* ****: the [SuperchainERC20 superchain-erc20] turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/interop/superchain-erc20) +* ****: the [SuperchainERC20 superchain-erc20] turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/concepts/interoperability/superchain-erc20) This means ETH and ERC-20s can seamlessly and securely move across L2s, and intent-based protocols (i.e., bridges) can build better experiences on top of the message passing protocol. */} ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/interop/message-passing) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) * Watch [this video](https://www.youtube.com/watch?v=FKc5RgjtGes), which gives an overview of Superchain interoperability. diff --git a/pages/interop/get-started.mdx b/pages/interop/get-started.mdx index f9a44183e..5dff38d69 100644 --- a/pages/interop/get-started.mdx +++ b/pages/interop/get-started.mdx @@ -30,12 +30,12 @@ Reimagine your app with Superchain Interop to deliver the unified UX your users Choose your development environment to build, test, and quickly iterate on your apps. -| Environment | Purpose | Getting Started | -| --------------------- | ----------------------------------------- | ---------------------------------------------------------- | -| **Local development** | Rapid iteration and testing with Supersim | [Setup Supersim guide](/app-developers/tutorials/supersim) | -| **Interop devnet** | Large-scale testing on testnets | [Network specs](/interop/tools/devnet) | +| Environment | Purpose | Getting Started | +| --------------------- | ----------------------------------------- | ---------------------------------------------------------------------- | +| **Local development** | Rapid iteration and testing with Supersim | [Setup Supersim guide](/app-developers/tutorials/development/supersim) | +| **Interop devnet** | Large-scale testing on testnets | [Network specs](/app-developers/tools/testing/devnet) | -For complete network details including RPC endpoints, chain IDs, contract addresses, and bridging instructions, see the [Superchain Interop Devnet Documentation](/interop/tools/devnet). +For complete network details including RPC endpoints, chain IDs, contract addresses, and bridging instructions, see the [Superchain Interop Devnet Documentation](/app-developers/tools/testing/devnet). ## Deploy your app to devnet in minutes @@ -51,16 +51,16 @@ The SuperchainERC20 Starter Kit allows you to focus on what to deploy, not how t | [Supersim](tools/supersim) | Local multi-chain testing environment for smart contracts. | | [Super CLI](https://github.com/ethereum-optimism/super-cli) | Command-line tool for seamless multichain app deployment and testing. | | [Superchain Relayer](https://github.com/ethereum-optimism/superchain-relayer) | UI for monitoring and managing cross-chain transactions. | -| [Interop Docs](/interop/explainer) | Comprehensive Interop information in the Optimism Docs. | +| [Interop Docs](/concepts/interoperability/overview) | Comprehensive Interop information in the Optimism Docs. | | [Superchain Dev Console](https://console.optimism.io/?utm_source=op-docs\&utm_medium=docs) | Comprensive tool to build, launch, and grow your app on the Superchain. | | [Developer Support GitHub](https://github.com/ethereum-optimism/developers/discussions) | Quick and easy developer support. | ## Handy step-by-step guides - } /> + } /> - } /> + } /> } /> diff --git a/pages/interop/interop-security.mdx b/pages/interop/interop-security.mdx index e1dfac811..937e2c2bd 100644 --- a/pages/interop/interop-security.mdx +++ b/pages/interop/interop-security.mdx @@ -168,7 +168,7 @@ The protocol enforces the fact that all executing messages are valid. It does th */} -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs) -* View more [interop tutorials](/interop/tutorials) +* View more [interop tutorials](/app-developers/tutorials/interoperability) diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx index ed5cc1ac5..44881e34c 100644 --- a/pages/interop/message-expiration.mdx +++ b/pages/interop/message-expiration.mdx @@ -22,19 +22,19 @@ is_imported_content: 'false' # Message expiration -[Messages](/interop/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced. +[Messages](/app-developers/guides/interoperability/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced. -For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, enabling the message to be relayed. +For messages using [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, enabling the message to be relayed. ## The expiry window -The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be referenced within 7 days (604,800 seconds) of the log being created. +The expiry window is an offchain constant, defined by [OP-Supervisor](/chain-operators/reference/components/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be referenced within 7 days (604,800 seconds) of the log being created. After this period, a message can no longer be referenced unless the event is remitted. ## Reemitting an expired message -The `resendMessage` function on the [`L2ToL2CrossDomainMessenger`](/interop/message-passing) contract allows developers to reemit a message that was sent but not yet relayed. +The `resendMessage` function on the [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing) contract allows developers to reemit a message that was sent but not yet relayed. This emits a new `SentMessage` log with the same content as the original message, enabling offchain relayers to pick it up again. @@ -48,6 +48,6 @@ Note: Re-emitting an already relayed message will have no effect on the destinat ## Next steps -* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing) -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* [Build a revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing) +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain diff --git a/pages/interop/message-passing.mdx b/pages/interop/message-passing.mdx index 7b51dbedf..0319474f2 100644 --- a/pages/interop/message-passing.mdx +++ b/pages/interop/message-passing.mdx @@ -29,7 +29,7 @@ import { InteropCallout } from '@/components/WipCallout' This is an explanation of how interop works. - You can find a step by step tutorial [here](/interop/tutorials/message-passing). + You can find a step by step tutorial [here](/app-developers/tutorials/interoperability/message-passing). The low-level [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract handles basic message execution. It verifies whether an initiating message exists but does not check the message's destination, processing status, or other attributes. @@ -121,6 +121,6 @@ sequenceDiagram ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing). -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain. +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing). +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain. diff --git a/pages/interop/op-supervisor.mdx b/pages/interop/op-supervisor.mdx index 515830534..47e3cd3e6 100644 --- a/pages/interop/op-supervisor.mdx +++ b/pages/interop/op-supervisor.mdx @@ -91,7 +91,7 @@ For a full listing of API names, see the [source code](https://github.com/ethere ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain * Learn [how ETH can move across chains](https://docs.optimism.io/interop/superchain-eth-bridge) * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/interop/predeploy.mdx b/pages/interop/predeploy.mdx index fdcbcb596..5d95aa8bf 100644 --- a/pages/interop/predeploy.mdx +++ b/pages/interop/predeploy.mdx @@ -82,6 +82,6 @@ The `SuperchainTokenBridge` is an abstraction on top of the `L2ToL2CrossDomainMe ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/interop/message-passing) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx index abfdfe851..088c99b80 100644 --- a/pages/interop/reading-logs.mdx +++ b/pages/interop/reading-logs.mdx @@ -56,7 +56,7 @@ The process works through the [`CrossL2Inbox`](https://github.com/ethereum-optim ## Example: cross-chain attestation verification Let's walk through a conceptual example of verifying an Ethereum Attestation Service (EAS) attestation across chains. -EAS is a [predeploy](/interop/predeploy) in the OP Stack for making attestations on or off-chain about anything. +EAS is a [predeploy](/app-developers/reference/contracts/interop/predeploys) in the OP Stack for making attestations on or off-chain about anything. ### Source chain: creating an attestation @@ -111,7 +111,7 @@ sequenceDiagram 3. The attestation verifier calls `validateMessage()` on the `CrossL2Inbox` contract, passing the attestation identifier and a hash of the event data. -4. The [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract interacts with the [`OP-Supervisor`](/interop/op-supervisor) service to check if the specified log exists on the source chain. +4. The [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract interacts with the [`OP-Supervisor`](/chain-operators/reference/components/op-supervisor) service to check if the specified log exists on the source chain. 5. The `OP-Supervisor` confirms the validity of the log to the `CrossL2Inbox` contract. @@ -223,6 +223,6 @@ This diagram compares the two approaches for cross-chain communication: ## Next steps -* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing) -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* [Build a revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing) +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain diff --git a/pages/interop/reorg.mdx b/pages/interop/reorg.mdx index ba94642d2..cbfb6d40d 100644 --- a/pages/interop/reorg.mdx +++ b/pages/interop/reorg.mdx @@ -188,6 +188,6 @@ At worst, some unsafe blocks need to be recalculated (if one fork is chosen over ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain. +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain. * Deploy a [SuperchainERC20](./tutorials/deploy-superchain-erc20) to the Superchain. * View more [interop tutorials](./tutorials). diff --git a/pages/interop/starter-kit.mdx b/pages/interop/starter-kit.mdx index 5db0eddeb..bdd3251ce 100644 --- a/pages/interop/starter-kit.mdx +++ b/pages/interop/starter-kit.mdx @@ -160,7 +160,7 @@ For best security practices `SuperchainERC20Bridge` should be the only contract ## Next Steps -* Test your token deployment on multiple chains using [Supersim](/app-developers/tools/supersim) and run simple [end-to-end integration tests](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-e2e-tests). +* Test your token deployment on multiple chains using [Supersim](/app-developers/tools/development/supersim) and run simple [end-to-end integration tests](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-e2e-tests). * For specific use cases, check out our guides for [bridging a SuperchainERC20 token to another chain](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-example-how-to-bridge-a-superchainerc20-token-to-another-chain) or [modifying an existing ERC20 contract to be interoperable](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#updating-an-erc20-contract-to-be-interoperable). -* Questions about Interop? Check out our collection of [interop guides](/interop/explainer) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). +* Questions about Interop? Check out our collection of [interop guides](/concepts/interoperability/overview) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). diff --git a/pages/interop/superchain-erc20.mdx b/pages/interop/superchain-erc20.mdx index d40513e31..17f57663b 100644 --- a/pages/interop/superchain-erc20.mdx +++ b/pages/interop/superchain-erc20.mdx @@ -124,7 +124,7 @@ Setting this up in advance ensures tokens will benefit from interop when it beco Add this after the tutorial is written - For detailed, step-by-step instructions on implementing SuperchainERC20, refer to [Deploy assets using SuperchainERC20](/interop/tutorials/deploy-superchain-erc20). + For detailed, step-by-step instructions on implementing SuperchainERC20, refer to [Deploy assets using SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20). */} @@ -140,6 +140,6 @@ Setting this up in advance ensures tokens will benefit from interop when it beco ## Next steps -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain. -* Learn about [other token standards that can benefit from Superchain interop](/interop/compatible-tokens). -* Learn how to [modify an existing ERC20 contract](/interop/tutorials/custom-superchain-erc20) to make it interoperable within the Superchain. +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain. +* Learn about [other token standards that can benefit from Superchain interop](/app-developers/reference/tokens/compatibility). +* Learn how to [modify an existing ERC20 contract](/app-developers/tutorials/tokens/custom-superchain-erc20) to make it interoperable within the Superchain. diff --git a/pages/interop/superchain-eth-bridge.mdx b/pages/interop/superchain-eth-bridge.mdx index 4ef057ab2..c18861cdb 100644 --- a/pages/interop/superchain-eth-bridge.mdx +++ b/pages/interop/superchain-eth-bridge.mdx @@ -38,7 +38,7 @@ InteroperableETH enables seamless ETH transfers across Superchain blockchains. I * [`SuperchainETHBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol): A bridge contract that facilitates ETH transfers between Superchain blockchains. * [`ETHLiquidity`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/ETHLiquidity.sol): A liquidity provider for ETH transfers. `SuperchainETHBridge` uses this contract as a liquidity repository to ensure ETH availability on the destination chain. -* [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol): A messaging contract that [facilitates cross-chain communication](/interop/message-passing). +* [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol): A messaging contract that [facilitates cross-chain communication](/app-developers/guides/interoperability/message-passing). Superchain ETH Bridge deposits ETH into the `ETHLiquidity` contract on the source chain and withdraws an equivalent amount on the destination chain. This mechanism improves capital efficiency and eliminates liquidity fragmentation and poor user experiences caused by asset wrapping or reliance on liquidity pools. @@ -97,7 +97,7 @@ sequenceDiagram 2. `SuperchainETHBridge` transfers the specified ETH amount to `ETHLiquidity`, removing it from circulation on the source chain. -3. `SuperchainETHBridge` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) message to `SuperchainETHBridge` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/interop/message-passing). +3. `SuperchainETHBridge` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) message to `SuperchainETHBridge` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing). #### Executing message @@ -162,6 +162,6 @@ Here is an example of how this works. ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain. -* Learn about [SuperchainERC20](/interop/superchain-erc20). -* Practice [transferring ETH across chains using Superchain interop](/interop/tutorials/bridge-crosschain-eth). +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain. +* Learn about [SuperchainERC20](/concepts/interoperability/superchain-erc20). +* Practice [transferring ETH across chains using Superchain interop](/app-developers/tutorials/bridging/cross-chain-eth). diff --git a/pages/interop/tools.mdx b/pages/interop/tools.mdx index d69c99caf..4da5559fc 100644 --- a/pages/interop/tools.mdx +++ b/pages/interop/tools.mdx @@ -22,8 +22,8 @@ import { Card, Cards } from 'nextra/components' Documentation covering Interop devnet, Supersim in the Interop section of the OP Stack ecosystem. - } /> + } /> - } /> + } /> diff --git a/pages/interop/tools/devnet.mdx b/pages/interop/tools/devnet.mdx index 3c6f4a28e..1b4c50651 100644 --- a/pages/interop/tools/devnet.mdx +++ b/pages/interop/tools/devnet.mdx @@ -85,6 +85,6 @@ The Superchain interop devnet is a temporary public network of two OP Stack Sepo ## Next steps -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* View more [interop tutorials](/interop/tutorials) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* View more [interop tutorials](/app-developers/tutorials/interoperability) diff --git a/pages/interop/tutorials.mdx b/pages/interop/tutorials.mdx index 6537a9bfd..976b9a873 100644 --- a/pages/interop/tutorials.mdx +++ b/pages/interop/tutorials.mdx @@ -22,20 +22,20 @@ import { Card, Cards } from 'nextra/components' Documentation covering Interop related tutorials. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/interop/tutorials/bridge-crosschain-eth.mdx b/pages/interop/tutorials/bridge-crosschain-eth.mdx index 0c9e9cd69..1e7909b9e 100644 --- a/pages/interop/tutorials/bridge-crosschain-eth.mdx +++ b/pages/interop/tutorials/bridge-crosschain-eth.mdx @@ -30,14 +30,14 @@ import { AutorelayCallout } from '@/components/AutorelayCallout' This tutorial provides step-by-step instructions for how to send ETH from one chain in the Superchain interop cluster to another. For a conceptual overview, - see the [interoperable ETH explainer](/interop/superchain-eth-bridge). + see the [interoperable ETH explainer](/concepts/interoperability/superchain-eth). ## Overview Crosschain ETH transfers in the Superchain are facilitated through the [SuperchainETHBridge](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) contract. This tutorial walks through how to send ETH from one chain to another. -You can do this on [Supersim](/interop/tools/supersim), [the Interop devnet](/interop/tools/devnet), or production once it is released. +You can do this on [Supersim](/app-developers/tools/development/supersim), [the Interop devnet](/app-developers/tools/testing/devnet), or production once it is released. ### What you'll build @@ -83,13 +83,13 @@ The tutorial uses these primary tools: ### Configure the network - You can run this tutorial either with [Supersim](/interop/tools/supersim) running locally, or using the [Interop devnet](/interop/tools/devnet). + You can run this tutorial either with [Supersim](/app-developers/tools/development/supersim) running locally, or using the [Interop devnet](/app-developers/tools/testing/devnet). Select the correct tab and follow the directions. - 1. Follow the [Installation Guide](/app-developers/tutorials/supersim/getting-started/installation) to install Supersim for running blockchains with Interop. + 1. Follow the [Installation Guide](/app-developers/tutorials/development/supersim/installation) to install Supersim for running blockchains with Interop. 1. Start Supersim. @@ -285,7 +285,7 @@ The tutorial uses these primary tools: ## Next steps -* Check out the [SuperchainETHBridge guide](/interop/superchain-eth-bridge) for more information. -* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. -* Review the [Superchain interop explainer](/interop/explainer) for answers to common questions about interoperability. +* Check out the [SuperchainETHBridge guide](/concepts/interoperability/superchain-eth) for more information. +* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. +* Review the [Superchain interop explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/custom-superchain-erc20.mdx b/pages/interop/tutorials/custom-superchain-erc20.mdx index 994f47df4..6dfdb34b6 100644 --- a/pages/interop/tutorials/custom-superchain-erc20.mdx +++ b/pages/interop/tutorials/custom-superchain-erc20.mdx @@ -29,10 +29,10 @@ import { Callout, Steps, Tabs } from 'nextra/components' ## Overview -This guide explains how to upgrade an ERC20 to a [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) that can then teleport across the Superchain interop cluster quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract. For more information on how it works, [see the explainer](/interop/superchain-erc20). +This guide explains how to upgrade an ERC20 to a [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) that can then teleport across the Superchain interop cluster quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract. For more information on how it works, [see the explainer](/concepts/interoperability/superchain-erc20). To ensure fungibility across chains, `SuperchainERC20` assets must have the same contract address on all chains. This requirement abstracts away the complexity of cross-chain validation. Achieving this requires deterministic deployment methods. There are [many ways to do this](https://github.com/Arachnid/deterministic-deployment-proxy). -Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). +Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit).
About this tutorial @@ -45,7 +45,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). * Understanding of smart contract development * Familiarity with blockchain concepts - * Familiarity with [standard SuperchainERC20 deployments](/interop/tutorials/deploy-superchain-erc20). + * Familiarity with [standard SuperchainERC20 deployments](/app-developers/tutorials/tokens/deploy-superchain-erc20). **Development environment** @@ -55,7 +55,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). ### What you'll do -* Use the [SuperchainERC20 starter kit](/app-developers/starter-kit) to deploy tokens with your custom code. +* Use the [SuperchainERC20 starter kit](/app-developers/quickstarts/token-starter-kit) to deploy tokens with your custom code. ## Step by step @@ -99,7 +99,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). - The [SuperchainERC20 Starter Kit](/app-developers/starter-kit) is already set up for [Supersim](/interop/tools/supersim). + The [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) is already set up for [Supersim](/app-developers/tools/development/supersim). All you need to do is start it. ```sh @@ -108,8 +108,8 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). - The [SuperchainERC20 Starter Kit](/app-developers/starter-kit) is already set up for [Supersim](/interop/tools/supersim). - If you want to use it with a different set of blockchains, for example the [Devnets](/interop/tools/devnet), follow these steps. + The [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) is already set up for [Supersim](/app-developers/tools/development/supersim). + If you want to use it with a different set of blockchains, for example the [Devnets](/app-developers/tools/testing/devnet), follow these steps. 1. Edit `packages/contracts/foundry.toml` to add the RPC endpoints (add the bottom two rows). @@ -249,10 +249,10 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). ``` -For more details [see the explainer](/interop/superchain-erc20). +For more details [see the explainer](/concepts/interoperability/superchain-erc20). ## Next steps -* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. +* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. * If you'd like a guided walkthrough, check out our [tutorial video](https://x.com/i/status/1866095114374045969) instead. -* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. +* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/deploy-superchain-erc20.mdx b/pages/interop/tutorials/deploy-superchain-erc20.mdx index e7d031631..d9d20052b 100644 --- a/pages/interop/tutorials/deploy-superchain-erc20.mdx +++ b/pages/interop/tutorials/deploy-superchain-erc20.mdx @@ -34,7 +34,7 @@ import { Steps } from 'nextra/components' This guide explains how to issue new assets with the [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) contract. Those assets can then be bridged quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract (once interop is operational). -For more information on how it works, [see the explainer](/interop/superchain-erc20). +For more information on how it works, [see the explainer](/concepts/interoperability/superchain-erc20). Note that bridging assets through the Superchain using `SuperchainTokenBridge` *never* affects the total supply of your asset. The supply remains fixed, bridging only changes the chain on which the asset is located. @@ -43,7 +43,7 @@ The token's total amount across all networks always remains the same, ensuring v To ensure fungibility across chains, `SuperchainERC20` assets *must* have the same contract address on all chains. This requirement abstracts away the complexity of cross-chain validation. Achieving this requires deterministic deployment methods. There are multiple ways to do this. -Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit). +Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit).
@@ -73,7 +73,7 @@ The tutorial uses these primary tools: ### What you'll do -* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy an `SuperchainERC20` token on the devnet. +* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy an `SuperchainERC20` token on the devnet. ## Step by step explanation @@ -84,8 +84,8 @@ The tutorial uses these primary tools: ### Prepare for deployment - The Starter Kit already deploys a `SuperchainERC20` token to [Supersim](/interop/tools/supersim). - Here are the required changes to deploy it to the [Interop devnet](/interop/tools/devnet). + The Starter Kit already deploys a `SuperchainERC20` token to [Supersim](/app-developers/tools/development/supersim). + Here are the required changes to deploy it to the [Interop devnet](/app-developers/tools/testing/devnet). 1. Edit `packages/contracts/foundry.toml` to add the RPC endpoints for the devnet (add the bottom two rows). @@ -194,6 +194,6 @@ The tutorial uses these primary tools: ## Next steps * Learn how to [transfer tokens between chains inside the Superchain](transfer-superchainERC20). -* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. +* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. * Explore the [SuperchainERC20 specifications](https://specs.optimism.io/interop/token-bridging.html?utm_source=op-docs&utm_medium=docs) for in-depth implementation details. -* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. +* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/event-contests.mdx b/pages/interop/tutorials/event-contests.mdx index a408a332a..aed534fd8 100644 --- a/pages/interop/tutorials/event-contests.mdx +++ b/pages/interop/tutorials/event-contests.mdx @@ -32,7 +32,7 @@ We showcase cross chain composability through the implementation of contests. Le ## How it works -Unlike [TicTacToe](/interop/tutorials/event-reads) which is deployed on every participating chain, the contests are deployed on a single L2, behaving like an application-specific OP Stack chain rather than a horizontally scaled app. +Unlike [TicTacToe](/app-developers/tutorials/interoperability/event-reads) which is deployed on every participating chain, the contests are deployed on a single L2, behaving like an application-specific OP Stack chain rather than a horizontally scaled app. ### Implement contests diff --git a/pages/interop/tutorials/event-reads.mdx b/pages/interop/tutorials/event-reads.mdx index fd00dcf4d..d8b265ee2 100644 --- a/pages/interop/tutorials/event-reads.mdx +++ b/pages/interop/tutorials/event-reads.mdx @@ -209,4 +209,4 @@ Leveraging superchain interop, we can build new types of horizontally scalable c * As new chains are added to the superchain, this contract can be installed by anyone and immediately playable with no necessary code changes. The frontend simply needs to react the addition of a new chain. * The concept of a "chain" can be completely abstracted away from the user. When connecting their wallet, the frontend can simply pick the chain which the user has funds on with the lowest gas fees. -* Event reading enables a new level of composability for cross-chain interactions. Imagine [contests](/interop/tutorials/event-contests) contract that resolves based on the outcome of a TicTacToe game via the `GameWon` or `GameLost` event without the need for a trusted oracle, nor permission or native integration with the TicTacToe contract. +* Event reading enables a new level of composability for cross-chain interactions. Imagine [contests](/app-developers/tutorials/interoperability/event-contests) contract that resolves based on the outcome of a TicTacToe game via the `GameWon` or `GameLost` event without the need for a trusted oracle, nor permission or native integration with the TicTacToe contract. diff --git a/pages/interop/tutorials/message-passing.mdx b/pages/interop/tutorials/message-passing.mdx index 128cdfeb9..e9c86e22f 100644 --- a/pages/interop/tutorials/message-passing.mdx +++ b/pages/interop/tutorials/message-passing.mdx @@ -76,7 +76,7 @@ message passing system that enables different chains to interact with each other This tutorial provides step-by-step instructions for implementing cross-chain messaging. For a conceptual overview, - see the [Message Passing Explainer](/interop/message-passing). + see the [Message Passing Explainer](/app-developers/guides/interoperability/message-passing). In this tutorial, you will learn how to use the [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol) contract to pass messages between interoperable blockchains. @@ -84,7 +84,7 @@ In this tutorial, you will learn how to use the [`L2ToL2CrossDomainMessenger`](h ## Setting up your development environment - ### Follow the [Installation Guide](/app-developers/tutorials/supersim/getting-started/installation) to install: + ### Follow the [Installation Guide](/app-developers/tutorials/development/supersim/installation) to install: * Foundry for smart contract development (required in all cases) * Supersim for local blockchain simulation (optional) @@ -107,13 +107,13 @@ The implementation consists of three main components: ### Setting up test networks - 1. If you are using [Supersim](/interop/tools/supersim), go to the directory where Supersim is installed and start it with autorelay. + 1. If you are using [Supersim](/app-developers/tools/development/supersim), go to the directory where Supersim is installed and start it with autorelay. ```sh ./supersim --interop.autorelay ``` - If you are using [the devnets](/interop/tools/devnet), just skip this step. + If you are using [the devnets](/app-developers/tools/testing/devnet), just skip this step. @@ -409,6 +409,6 @@ In this section we change `Greeter.sol` to emit a separate event in it receives ## Next steps -* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. -* Read the [Message Passing Explainer](/interop/message-passing) to understand what happens "under the hood". +* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. +* Read the [Message Passing Explainer](/app-developers/guides/interoperability/message-passing) to understand what happens "under the hood". * Write a revolutionary app that uses multiple blockchains within the Superchain. diff --git a/pages/interop/tutorials/message-passing/manual-relay.mdx b/pages/interop/tutorials/message-passing/manual-relay.mdx index 09e8735ce..ea48c69e4 100644 --- a/pages/interop/tutorials/message-passing/manual-relay.mdx +++ b/pages/interop/tutorials/message-passing/manual-relay.mdx @@ -72,7 +72,7 @@ These steps are necessary to run the tutorial, regardless of whether you are usi This exercise needs to be done on Supersim. You cannot use the devnets because you cannot disable autorelay on them. - 1. Follow the [installation guide](/app-developers/tutorials/supersim/getting-started/installation). + 1. Follow the [installation guide](/app-developers/tutorials/development/supersim/installation). 2. Run Supersim *without* `--interop.relay`. @@ -82,7 +82,7 @@ These steps are necessary to run the tutorial, regardless of whether you are usi ### Create the state for relaying messages - The results of this step are similar to what the [message passing tutorial](/interop/tutorials/message-passing) would produce if you did not have autorelay on. + The results of this step are similar to what the [message passing tutorial](/app-developers/tutorials/interoperability/message-passing) would produce if you did not have autorelay on. Execute this script. @@ -348,6 +348,6 @@ Here is the detailed explanation: ## Next steps -* Review the [Superchain interop explainer](/interop/explainer) for answers to common questions about interoperability. -* Read the [message passing explainer](/interop/message-passing) to understand what happens "under the hood". +* Review the [Superchain interop explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. +* Read the [message passing explainer](/app-developers/guides/interoperability/message-passing) to understand what happens "under the hood". * Write a revolutionary app that uses multiple blockchains within the Superchain. diff --git a/pages/interop/tutorials/transfer-superchainERC20.mdx b/pages/interop/tutorials/transfer-superchainERC20.mdx index 81c6dd05b..30558629e 100644 --- a/pages/interop/tutorials/transfer-superchainERC20.mdx +++ b/pages/interop/tutorials/transfer-superchainERC20.mdx @@ -217,5 +217,5 @@ Note that this tutorial provides step-by-step instructions for transferring `Sup ## Next steps * Read the [Superchain Interop Explainer](/interop/explainer#faqs) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). -* Learn [how this works](/interop/superchain-erc20). -* Use [Supersim](/app-developers/tools/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. +* Learn [how this works](/concepts/interoperability/superchain-erc20). +* Use [Supersim](/app-developers/tools/development/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. diff --git a/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx b/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx index 4262d38d6..5f279dec6 100644 --- a/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx +++ b/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx @@ -15,7 +15,7 @@ import { Steps, Callout, Tabs } from 'nextra/components' ## Overview Sometimes the address of an ERC20 contract is not available on a different chain. -This means that the [SuperchainTokenBridge](/interop/superchain-erc20) is not an option. +This means that the [SuperchainTokenBridge](/concepts/interoperability/superchain-erc20) is not an option. However, if the original ERC20 contract is behind a proxy (so we can add [ERC7802](https://eips.ethereum.org/EIPS/eip-7802) support), we can still use interop by writing our own bridge.
@@ -23,12 +23,12 @@ However, if the original ERC20 contract is behind a proxy (so we can add [ERC780 **What you'll learn** - * How to use [interop message passing](/interop/tutorials/message-passing) to create a custom bridge. + * How to use [interop message passing](/app-developers/tutorials/interoperability/message-passing) to create a custom bridge. **Prerequisite knowledge** - * How to [deploy SuperchainERC20 tokens with custom code](/interop/tutorials/custom-superchain-erc20). - * How to [transfer interop messages](/interop/tutorials/message-passing). + * How to [deploy SuperchainERC20 tokens with custom code](/app-developers/tutorials/tokens/custom-superchain-erc20). + * How to [transfer interop messages](/app-developers/tutorials/interoperability/message-passing).
@@ -80,12 +80,12 @@ After that happens, all new calls are sent to the new implementation. ## Instructions -Some steps depend on whether you want to deploy on [Supersim](/interop/tools/supersim) or on the [development network](/interop/tools/devnet). +Some steps depend on whether you want to deploy on [Supersim](/app-developers/tools/development/supersim) or on the [development network](/app-developers/tools/testing/devnet). ### Install and run Supersim - If you are going to use Supersim, [follow these instructions](/app-developers/tutorials/supersim/getting-started/installation) to install and run Supersim. + If you are going to use Supersim, [follow these instructions](/app-developers/tutorials/development/supersim/installation) to install and run Supersim. Make sure to run Supersim with autorelay on. @@ -105,7 +105,7 @@ Some steps depend on whether you want to deploy on [Supersim](/interop/tools/sup ./setup-for-erc20-upgrade.sh ``` - If you want to deploy to the [development networks](/interop/tools/devnet), provide `setup-for-erc20-upgrade.sh` with the private key of an address with ETH on both devnets. + If you want to deploy to the [development networks](/app-developers/tools/testing/devnet), provide `setup-for-erc20-upgrade.sh` with the private key of an address with ETH on both devnets. ```sh ./setup-for-erc20-upgrade.sh @@ -343,6 +343,6 @@ Some steps depend on whether you want to deploy on [Supersim](/interop/tools/sup ## Next steps -* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain -* [Learn more about SuperchainERC20](/interop/superchain-erc20) -* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* [Learn more about SuperchainERC20](/concepts/interoperability/superchain-erc20) +* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain diff --git a/pages/interop/tutorials/verify-messages.mdx b/pages/interop/tutorials/verify-messages.mdx index ccd773307..1d68ff52a 100644 --- a/pages/interop/tutorials/verify-messages.mdx +++ b/pages/interop/tutorials/verify-messages.mdx @@ -364,5 +364,5 @@ To demonstrate this functionality, this guide uses an [attestation](https://atte ## Next steps * Read the [Superchain Interop Explainer](/interop/explainer#faqs) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). -* Use [Supersim](/app-developers/tools/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. +* Use [Supersim](/app-developers/tools/development/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. * Find a cool dapp that only works on a single blockchain and extend it to the entire interop cluster, at least for reading information. diff --git a/pages/notices/custom-gas-tokens-deprecation.mdx b/pages/notices/custom-gas-tokens-deprecation.mdx index 0f8fb839e..5d67200f4 100644 --- a/pages/notices/custom-gas-tokens-deprecation.mdx +++ b/pages/notices/custom-gas-tokens-deprecation.mdx @@ -32,7 +32,7 @@ Additionally, advancements in Account Abstraction (AA) tooling now enable gas pa ## Options for new chains -The Optimism ecosystem is focusing on interoperability within the Superchain, with efforts and incentives directed towards [standard configured chains](/superchain/standard-configuration). Some options are: +The Optimism ecosystem is focusing on interoperability within the Superchain, with efforts and incentives directed towards [standard configured chains](/chain-operators/reference/standard-configuration). Some options are: * All new chains launch with the standard ETH gas token configuration. * Utilize Account Abstraction tooling to allow users to pay gas fees in alternative tokens instead of relying on Custom Gas Tokens. diff --git a/pages/notices/pectra-changes.mdx b/pages/notices/pectra-changes.mdx index bdf2fd0b1..482de5461 100644 --- a/pages/notices/pectra-changes.mdx +++ b/pages/notices/pectra-changes.mdx @@ -26,7 +26,7 @@ import { Steps, Callout } from 'nextra/components' You must update your Sepolia nodes to the latest release of op-node and schedule a hardfork activation time to avoid this issue on your network. There are new instructions in the node operator section to help you mitigate this issue. - See this notice page for more information: [Superchain testnets' blob fee bug](/notices/blob-fee-bug). + See this notice page for more information: [Superchain testnets' blob fee bug](/notices/archive/blob-fee-bug). This page outlines breaking changes related to the Ethereum Pectra (Prague-Electra) hard fork for chain operators and node operators on OP Stack chains. The OP Stack is dividing the Pectra upgrade into two parts: diff --git a/pages/notices/pectra-fees.mdx b/pages/notices/pectra-fees.mdx index 0f5e51c4d..bc338b458 100644 --- a/pages/notices/pectra-fees.mdx +++ b/pages/notices/pectra-fees.mdx @@ -31,7 +31,7 @@ Chains configured for blob data availability remain entirely unaffected by the P Since the Ecotone upgrade, the Optimism protocol prices L2 transactions using a function that incorporates the L1 base fee as well as the L1 blob base fee. The other inputs are the so-called "Ecotone scalars": operator-controlled parameters stored in the SystemConfig contract which can be used to tune the chain's (approximate) target profit margin for DA. -Please review your [Ecotone scalar chain configuration](/operators/chain-operators/management/blobs). +Please review your [Ecotone scalar chain configuration](/chain-operators/guides/management/blobs). If your chain uses a zero blob base fee scalar, meaning it is configured to price for calldata only, you may need to update the base fee scalar and/or the blob base fee scalar. Otherwise, no action is necessary. @@ -47,13 +47,13 @@ The impact and recommended actions for each of the possible configurations are s ### Chains charging for calldata DA and spending on calldata DA -If your chain uses a zero blob base fee scalar and your batcher is configured to submit using calldata *only*, then you should take the opportunity to check your chain's profit margin according to [this guide](/operators/chain-operators/management/blobs) and make any adjustments to your Ecotone scalars as necessary. This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is as desired. +If your chain uses a zero blob base fee scalar and your batcher is configured to submit using calldata *only*, then you should take the opportunity to check your chain's profit margin according to [this guide](/chain-operators/guides/management/blobs) and make any adjustments to your Ecotone scalars as necessary. This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is as desired. If your profit margin was perfectly tuned before Pectra, then you should scale your base fee scalar by 10/4. ### Chains charging for calldata DA and spending on blob DA -If your chain uses a zero blob base fee scalar and your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/operators/chain-operators/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet. +If your chain uses a zero blob base fee scalar and your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/chain-operators/guides/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet. ### General remarks diff --git a/pages/notices/superchain-withdrawal-pause-test.mdx b/pages/notices/superchain-withdrawal-pause-test.mdx index 441103149..827f5f0d3 100644 --- a/pages/notices/superchain-withdrawal-pause-test.mdx +++ b/pages/notices/superchain-withdrawal-pause-test.mdx @@ -32,6 +32,6 @@ The Optimism Collective will be testing improved incident response features on t 2. Members of the Optimism Collective's security team will ensure that the pause is executed correctly and the incident response improvements worked as intended. 3. Then the `unpause` function will be called to resume normal operations. -To learn more about this functionality, please refer to this [documentation](/stack/security/pause). +To learn more about this functionality, please refer to this [documentation](/concepts/security/pause-system). This functionality is important for the security of the Superchain and should be understood by Chain Operators, users, and especially for centralized exchanges and third-party bridge operators. **Please note that this will not effect any L1-to-L2 deposit transactions or L2 transactions. No action is required from users or operators.** diff --git a/pages/notices/upgrade-13.mdx b/pages/notices/upgrade-13.mdx index d09bb5760..5d7a24765 100644 --- a/pages/notices/upgrade-13.mdx +++ b/pages/notices/upgrade-13.mdx @@ -47,7 +47,7 @@ For more information on the Upgrade 13 implementation details, please review the ### OP Contracts Manager -The OP Contracts Manager ([OPCM](/stack/opcm)) is a new system for upgrading L1 contracts across the Superchain. Each release will have its own OPCM that can deploy new proxies and upgrade existing OP Chains. +The OP Contracts Manager ([OPCM](/chain-operators/reference/opcm)) is a new system for upgrading L1 contracts across the Superchain. Each release will have its own OPCM that can deploy new proxies and upgrade existing OP Chains. Key changes: diff --git a/pages/notices/upgrade-14.mdx b/pages/notices/upgrade-14.mdx index 0e42e8dc7..e80dcf674 100644 --- a/pages/notices/upgrade-14.mdx +++ b/pages/notices/upgrade-14.mdx @@ -42,7 +42,7 @@ Upgrade 14 contains two main components: ### MT-Cannon -MT-Cannon is an upgrade to [Cannon](/stack/fault-proofs/cannon), the [fault proof VM](/stack/fault-proofs/fp-components#fault-proof-virtual-machine) that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. +MT-Cannon is an upgrade to [Cannon](/concepts/architecture/fault-proofs/cannon), the [fault proof VM](/stack/fault-proofs/fp-components#fault-proof-virtual-machine) that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. Key changes: diff --git a/pages/notices/upgrade-15.mdx b/pages/notices/upgrade-15.mdx index cec3d8073..58cedc0d6 100644 --- a/pages/notices/upgrade-15.mdx +++ b/pages/notices/upgrade-15.mdx @@ -42,7 +42,7 @@ For more information on the Isthmus implementation details, please review [Isthm Chain operators must upgrade their nodes ahead of the activation times to a release that contains the Isthmus changes and has the activation times for their chains baked in, or set the activation times manually via overrides. The details are outlined in the node operator section below. Additionally, chain operators must update `op-batcher` to [`v1.12.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.12.0) and must update `op-challenger` to [`v1.4.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.4.0). -In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/upgrade-14) are required to utilize this new functionality. +In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/archive/upgrade-14) are required to utilize this new functionality. ### For permissionless fault proof enabled chains diff --git a/pages/operators/chain-operators.mdx b/pages/operators/chain-operators.mdx index 3bf6c611a..7e742fc08 100644 --- a/pages/operators/chain-operators.mdx +++ b/pages/operators/chain-operators.mdx @@ -27,17 +27,17 @@ Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Man - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/architecture.mdx b/pages/operators/chain-operators/architecture.mdx index 2a9d9a34d..9a7dc16df 100644 --- a/pages/operators/chain-operators/architecture.mdx +++ b/pages/operators/chain-operators/architecture.mdx @@ -30,7 +30,7 @@ perspective. The OP Stack is built in such a way that it is as similar to Ethereum as possible. Like Ethereum, the OP Stack has execution and consensus clients. The OP Stack also has some privileged roles that produce L2 blocks. If you want a more detailed view of the OP Stack protocol, check out the -[OP Stack section](/stack/getting-started) of our documentation. +[OP Stack section](/concepts/stack/overview) of our documentation. ## Permissioned components @@ -174,11 +174,11 @@ In addition to the core protocol components, the following offchain services are ### op-conductor -The [op-conductor](/operators/chain-operators/tools/op-conductor) RPC can act as a leader-aware rpc proxy for op-batcher (proxies the necessary op-geth / op-node RPC methods if the node is the leader). +The [op-conductor](/chain-operators/tools/op-conductor) RPC can act as a leader-aware rpc proxy for op-batcher (proxies the necessary op-geth / op-node RPC methods if the node is the leader). ### op-challenger -The [op-challenger](/operators/chain-operators/tools/op-challenger) verifies the correctness of the L2 state by challenging invalid state transitions. This ensures the network's security and validity. +The [op-challenger](/chain-operators/tools/op-challenger) verifies the correctness of the L2 state by challenging invalid state transitions. This ensures the network's security and validity. ### Ethereum L1 nodes @@ -215,7 +215,7 @@ This tool is an RPC request router and proxy. It does the following things: ## Next steps -* Find out how you can support [snap sync](/operators/chain-operators/management/snap-sync) +* Find out how you can support [snap sync](/chain-operators/guides/management/snap-sync) on your chain. -* Find out how you can utilize [blob space](/operators/chain-operators/management/blobs) +* Find out how you can utilize [blob space](/chain-operators/guides/management/blobs) to reduce the transaction fee cost on your chain. diff --git a/pages/operators/chain-operators/configuration.mdx b/pages/operators/chain-operators/configuration.mdx index d23e6703f..970b80831 100644 --- a/pages/operators/chain-operators/configuration.mdx +++ b/pages/operators/chain-operators/configuration.mdx @@ -22,11 +22,11 @@ import { Card, Cards } from 'nextra/components' This section provides information on batcher configuration, chain operator configurations, proposer configuration, and rollup deployment configuration. Users will find API references and overviews to help understand and work with these topics. - + - + - + - + diff --git a/pages/operators/chain-operators/configuration/batcher.mdx b/pages/operators/chain-operators/configuration/batcher.mdx index f9678ba59..c327d1fe2 100644 --- a/pages/operators/chain-operators/configuration/batcher.mdx +++ b/pages/operators/chain-operators/configuration/batcher.mdx @@ -25,7 +25,7 @@ options are from the `--help` in [v1.10.0](https://github.com/ethereum-optimism/ ## Batcher policy -The batcher policy defines high-level constraints and responsibilities regarding how L2 data is posted to L1. Below are the [standard guidelines](/superchain/standard-configuration) for configuring the batcher within the OP Stack. +The batcher policy defines high-level constraints and responsibilities regarding how L2 data is posted to L1. Below are the [standard guidelines](/chain-operators/reference/standard-configuration) for configuring the batcher within the OP Stack. | Parameter | Description | Administrator | Requirement | Notes | | -------------------------- | -------------------------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -89,7 +89,7 @@ The minimum tip cap and base fee are also lifted to 2 gwei because it is uncerta The resubmission timeout is increased to a few minutes to give more time for inclusion before bumping the fees because current transaction pool implementations require a doubling of fees for blob transaction replacements. Multi-blob transactions are particularly useful for medium to high-throughput chains, where enough transaction volume exists to fill up 6 blobs in a reasonable amount of time. -You can use [this calculator](https://docs.google.com/spreadsheets/d/1V3CWpeUzXv5Iopw8lBSS8tWoSzyR4PDDwV9cu2kKOrs/edit?gid=186414307#gid=186414307) for your chain to determine what number of blobs are right for you, and what gas scalar configuration to use. Please also refer to guide on [Using Blobs](/operators/chain-operators/management/blobs) for chain operators. +You can use [this calculator](https://docs.google.com/spreadsheets/d/1V3CWpeUzXv5Iopw8lBSS8tWoSzyR4PDDwV9cu2kKOrs/edit?gid=186414307#gid=186414307) for your chain to determine what number of blobs are right for you, and what gas scalar configuration to use. Please also refer to guide on [Using Blobs](/chain-operators/guides/management/blobs) for chain operators. ### Set your `--batch-type=1` to use span batches @@ -177,7 +177,7 @@ may save gas by increasing the `MAX_CHANNEL_DURATION`. See the [recommendations The batch type. 0 for `SingularBatch` and 1 for `SpanBatch`. The default value is `0` for `SingularBatch`. -See the [span batch feature page](/operators/chain-operators/features/span-batches) to learn more. +See the [span batch feature page](/chain-operators/reference/features/span-batches) to learn more. `--batch-type=` diff --git a/pages/operators/chain-operators/configuration/overview.mdx b/pages/operators/chain-operators/configuration/overview.mdx index edfff7fbb..7f0e8c4e6 100644 --- a/pages/operators/chain-operators/configuration/overview.mdx +++ b/pages/operators/chain-operators/configuration/overview.mdx @@ -34,7 +34,7 @@ documentation for details on configuring each piece. * Be aware that many of these values cannot be changed after deployment or require a complex process to update. Carefully consider and validate all settings during configuration to avoid issues later. - * [Rollup Configuration Documentation](/operators/chain-operators/configuration/rollup) + * [Rollup Configuration Documentation](/chain-operators/guides/configuration/rollup) {

Batcher Configuration

} @@ -42,21 +42,21 @@ documentation for details on configuring each piece. it available for verifiers. These configurations determine the batcher's behavior. - * [Batcher Configuration Documentation](/operators/chain-operators/configuration/batcher) + * [Batcher Configuration Documentation](/chain-operators/guides/configuration/batcher) {

Proposer Configuration

} The proposer is the service that submits the output roots to the L1. These configurations determine the proposer's behavior. - * [Proposer Configuration Documentation](/operators/chain-operators/configuration/proposer) + * [Proposer Configuration Documentation](/chain-operators/guides/configuration/proposer) {

Node Configuration

} The rollup node has a wide array of configurations for both the consensus and execution clients. - * [Node Configuration Documentation](/operators/node-operators/configuration/base-config) + * [Node Configuration Documentation](/node-operators/guides/configuration/base)
diff --git a/pages/operators/chain-operators/configuration/proposer.mdx b/pages/operators/chain-operators/configuration/proposer.mdx index ce33a2b94..06e3f4f71 100644 --- a/pages/operators/chain-operators/configuration/proposer.mdx +++ b/pages/operators/chain-operators/configuration/proposer.mdx @@ -24,11 +24,11 @@ import { Tabs } from 'nextra/components' This page lists all configuration options for op-proposer. The op-proposer posts output roots (proposals) to L1, making them available for verifiers. Withdrawals to L1 must reference an output root. If the chain is running permissioned fault proofs, only the [designated proposer](/superchain/privileged-roles#proposer) can submit output roots. -With [permissionless fault proofs](/stack/fault-proofs/explainer), anyone can make a proposal. +With [permissionless fault proofs](/concepts/architecture/fault-proofs/explainer), anyone can make a proposal. ## Proposer policy -The proposer policy defines high-level constraints and responsibilities regarding how L2 output roots are posted to L1. Below are the [standard guidelines](/superchain/standard-configuration) for configuring the proposer within the OP Stack. +The proposer policy defines high-level constraints and responsibilities regarding how L2 output roots are posted to L1. Below are the [standard guidelines](/chain-operators/reference/standard-configuration) for configuring the proposer within the OP Stack. | Parameter | Description | Administrator | Requirement | Notes | | ---------------- | ----------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------- | --------------------------------------------------------------- | diff --git a/pages/operators/chain-operators/configuration/rollup.mdx b/pages/operators/chain-operators/configuration/rollup.mdx index 55e5cce09..75834ce58 100644 --- a/pages/operators/chain-operators/configuration/rollup.mdx +++ b/pages/operators/chain-operators/configuration/rollup.mdx @@ -986,7 +986,7 @@ instead of the older output oracle mechanism. Alt-DA Mode enables seamless integration of various Data Availability (DA) Layers, regardless of their commitment type, into the OP Stack. This allows any chain operator to launch an OP Stack chain using their favorite DA Layer -for sustainably low costs. Learn more [here](/stack/beta-features/alt-da-mode). +for sustainably low costs. Learn more [here](/chain-operators/guides/features/alt-da). *** diff --git a/pages/operators/chain-operators/deploy.mdx b/pages/operators/chain-operators/deploy.mdx index ee408564e..368cdbdbd 100644 --- a/pages/operators/chain-operators/deploy.mdx +++ b/pages/operators/chain-operators/deploy.mdx @@ -25,9 +25,9 @@ This section provides information on OP Stack genesis creation, deployment overv - + - + diff --git a/pages/operators/chain-operators/deploy/overview.mdx b/pages/operators/chain-operators/deploy/overview.mdx index 551fe743b..7b52f8ee7 100644 --- a/pages/operators/chain-operators/deploy/overview.mdx +++ b/pages/operators/chain-operators/deploy/overview.mdx @@ -116,6 +116,6 @@ process. ## Next steps -* Discover how to [deploy the smart contracts](/operators/chain-operators/deploy/smart-contracts). +* Discover how to [deploy the smart contracts](/chain-operators/guides/deployment/contracts). * Find out how to create your [genesis file](/operators/chain-operators/deploy/genesis). -* Explore some chain operator [best practices](/operators/chain-operators/management/best-practices). +* Explore some chain operator [best practices](/chain-operators/guides/best-practices). diff --git a/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx b/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx index 734d9771a..0574efb32 100644 --- a/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx +++ b/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx @@ -22,9 +22,9 @@ import { Callout, Steps } from 'nextra/components' After you have [spun up your sequencer](/operators/chain-operators/deploy/sequencer-node), you need to attach a proposer to post your L2 state roots data back onto L1 so we can prove withdrawal validity. The proposer is a critical component that enables trustless L2-to-L1 messaging and creates the authoritative view of L2 state from L1's perspective. -This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/operators/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the [sequencer guide](/operators/chain-operators/deploy/sequencer-node) first. +This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the [sequencer guide](/operators/chain-operators/deploy/sequencer-node) first. -To see configuration info for the proposer, check out the [configuration page](/operators/chain-operators/configuration/proposer). +To see configuration info for the proposer, check out the [configuration page](/chain-operators/guides/configuration/proposer). ## Understanding the proposer's role @@ -259,7 +259,7 @@ Your proposer is now operational! ## Next steps * Learn how to set up the [sequencer node](/operators/chain-operators/deploy/sequencer-node) for your OP Stack chain. -* For detailed parameter documentation, see the [proposer configuration reference](/operators/chain-operators/configuration/proposer). -* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). -* checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide -* For cost optimization resources, check out the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). +* For detailed parameter documentation, see the [proposer configuration reference](/chain-operators/guides/configuration/proposer). +* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). +* checkout the [migrating to permissionless fault proofs](/chain-operators/tutorials/migrate-permissionless) guide +* For cost optimization resources, check out the [Fee calculation tools](/chain-operators/tools/fee-calculator). diff --git a/pages/operators/chain-operators/deploy/sequencer-node.mdx b/pages/operators/chain-operators/deploy/sequencer-node.mdx index 5aa70cd7f..bc35af80e 100644 --- a/pages/operators/chain-operators/deploy/sequencer-node.mdx +++ b/pages/operators/chain-operators/deploy/sequencer-node.mdx @@ -21,7 +21,7 @@ import { Callout, Steps } from 'nextra/components' ## Overview -This guide provides step-by-step instructions for spinning up a sequencer node after deploying L1 smart contracts for your OP Stack chain with [`op-deployer`](/operators/chain-operators/tools/op-deployer). +This guide provides step-by-step instructions for spinning up a sequencer node after deploying L1 smart contracts for your OP Stack chain with [`op-deployer`](/chain-operators/tools/op-deployer). A sequencer node consists of two core components: @@ -588,7 +588,7 @@ Your sequencer node is now operational and ready to process transactions. ## Next steps -* Discover how to [deploy chains with op-deployer](/operators/chain-operators/tools/op-deployer) for standardized OP Stack deployments. -* Learn how to configure and deploy the [batcher](/operators/chain-operators/configuration/batcher) to submit transaction data to L1. -* Set up the [proposer](/operators/chain-operators/configuration/proposer) to submit output roots for withdrawals. -* Explore chain operator [best practices](/operators/chain-operators/management/best-practices) for production deployments. +* Discover how to [deploy chains with op-deployer](/chain-operators/tools/op-deployer) for standardized OP Stack deployments. +* Learn how to configure and deploy the [batcher](/chain-operators/guides/configuration/batcher) to submit transaction data to L1. +* Set up the [proposer](/chain-operators/guides/configuration/proposer) to submit output roots for withdrawals. +* Explore chain operator [best practices](/chain-operators/guides/best-practices) for production deployments. diff --git a/pages/operators/chain-operators/deploy/smart-contracts.mdx b/pages/operators/chain-operators/deploy/smart-contracts.mdx index bc3af43be..5285db428 100644 --- a/pages/operators/chain-operators/deploy/smart-contracts.mdx +++ b/pages/operators/chain-operators/deploy/smart-contracts.mdx @@ -106,4 +106,4 @@ When selecting a contract version, consider: ## Next Steps * Learn how to [create your genesis file](/operators/chain-operators/deploy/genesis). -* See all [configuration options](/operators/chain-operators/configuration/rollup) and example configurations. +* See all [configuration options](/chain-operators/guides/configuration/rollup) and example configurations. diff --git a/pages/operators/chain-operators/deploy/spin-batcher.mdx b/pages/operators/chain-operators/deploy/spin-batcher.mdx index ec16cd85d..bf84dcad4 100644 --- a/pages/operators/chain-operators/deploy/spin-batcher.mdx +++ b/pages/operators/chain-operators/deploy/spin-batcher.mdx @@ -22,7 +22,7 @@ import { Callout, Steps } from 'nextra/components' After you have spun up your [sequencer](/operators/chain-operators/deploy/sequencer-node), you need to configure a batcher to submit L2 transaction batches to L1. The batcher is a critical component that ensures L2 transaction data is available on L1 for data availability and enables users to reconstruct the L2 state. -This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/operators/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the \[sequencer guide]\(add this later) first. +This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the \[sequencer guide]\(add this later) first. ## Understanding the batcher's role @@ -436,14 +436,14 @@ curl -X POST -H "Content-Type: application/json" \ ``` - For detailed cost analysis and optimization strategies, refer to the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). + For detailed cost analysis and optimization strategies, refer to the [Fee calculation tools](/chain-operators/tools/fee-calculator). ## Next steps -* For detailed parameter documentation, see the [batcher configuration reference](/operators/chain-operators/configuration/batcher). -* For monitoring and metrics setup, check the [chain monitoring guide](/operators/chain-operators/tools/chain-monitoring). -* For cost optimization strategies, refer to the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). -* Consider setting up the [op-challenger](/operators/chain-operators/tutorials/dispute-games) for a complete fault proof system. +* For detailed parameter documentation, see the [batcher configuration reference](/chain-operators/guides/configuration/batcher). +* For monitoring and metrics setup, check the [chain monitoring guide](/chain-operators/tools/monitoring). +* For cost optimization strategies, refer to the [Fee calculation tools](/chain-operators/tools/fee-calculator). +* Consider setting up the [op-challenger](/chain-operators/tutorials/deploy-dispute-games) for a complete fault proof system. Your batcher is now operational and will continuously submit L2 transaction batches to L1! diff --git a/pages/operators/chain-operators/deploy/validate-deployment.mdx b/pages/operators/chain-operators/deploy/validate-deployment.mdx index 69ba6002b..a09c0bcea 100644 --- a/pages/operators/chain-operators/deploy/validate-deployment.mdx +++ b/pages/operators/chain-operators/deploy/validate-deployment.mdx @@ -26,9 +26,9 @@ This guide walks you through using `op-validator` to validate your deployment ag ## Prerequisites -* Complete deployment of L1 smart contracts using [op-deployer](/operators/chain-operators/deploy/smart-contracts). +* Complete deployment of L1 smart contracts using [op-deployer](/chain-operators/guides/deployment/contracts). * Generate [genesis and rollup](/operators/chain-operators/deploy/genesis) files. -* Install [op-validator](/operators/chain-operators/tools/op-validator). +* Install [op-validator](/chain-operators/tools/op-validator). ## Validation process @@ -112,6 +112,6 @@ This guide walks you through using `op-validator` to validate your deployment ag ## Next Steps -* If you plan to join the Superchain, follow the [Standard Rollup Charter](/superchain/blockspace-charter). -* Configure [monitoring and maintenance](/operators/chain-operators/tools/chain-monitoring) -* Read the [op-deployer docs](/operators/chain-operators/tools/op-deployer) +* If you plan to join the Superchain, follow the [Standard Rollup Charter](/governance/blockspace-charter). +* Configure [monitoring and maintenance](/chain-operators/tools/monitoring) +* Read the [op-deployer docs](/chain-operators/tools/op-deployer) diff --git a/pages/operators/chain-operators/features.mdx b/pages/operators/chain-operators/features.mdx index 6a7bc96e8..e46cfec27 100644 --- a/pages/operators/chain-operators/features.mdx +++ b/pages/operators/chain-operators/features.mdx @@ -24,11 +24,11 @@ import { Card, Cards } from 'nextra/components' This section provides information on various features for chain operators. You'll find guides and overviews to help you understand and work with topics such as running an alternative data availability mode chain, implementing the bridged USDC standard on the OP Stack, OP Stack preinstalls, and span batches. - + - + - + - + diff --git a/pages/operators/chain-operators/features/alt-da-mode.mdx b/pages/operators/chain-operators/features/alt-da-mode.mdx index 0bf3ff776..339f83afc 100644 --- a/pages/operators/chain-operators/features/alt-da-mode.mdx +++ b/pages/operators/chain-operators/features/alt-da-mode.mdx @@ -24,7 +24,7 @@ import { Callout, Steps } from 'nextra/components' These features may experience stability issues, and we encourage feedback from our early users.
-This guide provides a walkthrough for chain operators who want to run an Alt-DA Mode chain. See the [Alt-DA Mode Explainer](/stack/beta-features/alt-da-mode) for a general overview of this OP Stack configuration. +This guide provides a walkthrough for chain operators who want to run an Alt-DA Mode chain. See the [Alt-DA Mode Explainer](/chain-operators/guides/features/alt-da) for a general overview of this OP Stack configuration. An Alt-DA Mode OP Stack chain enables a chain operator to post and read data to any alternative data availability layer that has built a functioning OP Stack DA Server. diff --git a/pages/operators/chain-operators/management.mdx b/pages/operators/chain-operators/management.mdx index 6394ecaf5..99f4ba44f 100644 --- a/pages/operators/chain-operators/management.mdx +++ b/pages/operators/chain-operators/management.mdx @@ -28,15 +28,15 @@ import { Card, Cards } from 'nextra/components' This section provides information on chain operator best practices, using blobs, managing keys, rollup operations, using snap sync for chain operators, and troubleshooting chain operations. You'll find guides and tutorials to help you understand and work with these topics. - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/management/best-practices.mdx b/pages/operators/chain-operators/management/best-practices.mdx index 9243d8b4a..598a47ed2 100644 --- a/pages/operators/chain-operators/management/best-practices.mdx +++ b/pages/operators/chain-operators/management/best-practices.mdx @@ -92,7 +92,7 @@ GETH_TXPOOL_LIFETIME: "1h" GETH_TXPOOL_NOLOCALS: "true" ``` -For additional information about these flags, check out our [Execution Layer Configuration Options](/operators/node-operators/configuration/execution-config) doc. +For additional information about these flags, check out our [Execution Layer Configuration Options](/node-operators/guides/configuration/execution) doc. ## Write your own runbooks diff --git a/pages/operators/chain-operators/management/key-management.mdx b/pages/operators/chain-operators/management/key-management.mdx index 4c4f51b86..6d8407e06 100644 --- a/pages/operators/chain-operators/management/key-management.mdx +++ b/pages/operators/chain-operators/management/key-management.mdx @@ -20,7 +20,7 @@ import { Callout } from 'nextra/components' # Managing your keys This guide informs chain operators on important key management considerations. -There are certain [privileged roles](/superchain/privileged-roles) that +There are certain [privileged roles](/chain-operators/reference/privileged-roles) that need careful consideration. The privileged roles are categorized as hot wallets or cold wallets. @@ -50,6 +50,6 @@ of community members and avoid a single point of failure. The signers behind a multisig should probably also use a hardware wallet. - Refer to the [privileged roles](/superchain/privileged-roles) documentation + Refer to the [privileged roles](/chain-operators/reference/privileged-roles) documentation for more information about these different addresses and their security concerns. diff --git a/pages/operators/chain-operators/management/operations.mdx b/pages/operators/chain-operators/management/operations.mdx index 093945d07..a722a5d5d 100644 --- a/pages/operators/chain-operators/management/operations.mdx +++ b/pages/operators/chain-operators/management/operations.mdx @@ -203,5 +203,5 @@ If you do it this way, you won't have to wait until the transactions are written ## Next steps -* See the [Node Configuration](/operators/node-operators/configuration/base-config) guide for additional explanation or customization. +* See the [Node Configuration](/node-operators/guides/configuration/base) guide for additional explanation or customization. * If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/chain-operators/management/snap-sync.mdx b/pages/operators/chain-operators/management/snap-sync.mdx index 3f753a8ae..985dd6b19 100644 --- a/pages/operators/chain-operators/management/snap-sync.mdx +++ b/pages/operators/chain-operators/management/snap-sync.mdx @@ -26,7 +26,7 @@ Snap sync works by downloading a snapshot of the state from other nodes on the n This means that performing a snap sync is significantly faster than performing a full sync. * Snap sync enables node operators on your network to sync faster. -* Snap sync removes the need for nodes on your post Ecotone network to run a [blob archiver](/operators/node-operators/management/blobs). +* Snap sync removes the need for nodes on your post Ecotone network to run a [blob archiver](/chain-operators/guides/management/blobs). ## Enable snap sync for chains diff --git a/pages/operators/chain-operators/management/troubleshooting.mdx b/pages/operators/chain-operators/management/troubleshooting.mdx index f635b230f..e35618b2e 100644 --- a/pages/operators/chain-operators/management/troubleshooting.mdx +++ b/pages/operators/chain-operators/management/troubleshooting.mdx @@ -55,7 +55,7 @@ WARN [02-16|21:22:02.868] Derivation process temporary error attempts=14 e This error can occur when the data directory for `op-geth` becomes corrupted (for example, as a result of a computer crash). You will need to reinitialize the data directory. -If you are following the tutorial for [Creating Your Own L2 Rollup](/operators/chain-operators/tutorials/create-l2-rollup), make sure to rerun the commands within the [Initialize `op-geth`](/operators/chain-operators/tutorials/create-l2-rollup#initialize-op-geth) section. +If you are following the tutorial for [Creating Your Own L2 Rollup](/chain-operators/tutorials/create-rollup), make sure to rerun the commands within the [Initialize `op-geth`](/operators/chain-operators/tutorials/create-l2-rollup#initialize-op-geth) section. If you are not following the tutorial, make sure to take the following steps: diff --git a/pages/operators/chain-operators/self-hosted.mdx b/pages/operators/chain-operators/self-hosted.mdx index c7bc895a9..9c4a07810 100644 --- a/pages/operators/chain-operators/self-hosted.mdx +++ b/pages/operators/chain-operators/self-hosted.mdx @@ -33,13 +33,13 @@ There are two main steps to get started building your own self-hosted OP Chain: To work with OP Chains, you'll need to understand the fundamental components of OP Chains. * **Chain Architecture**: OP Chains use execution and consensus clients as well as the OP Stack's privileged roles. For more details, see the [Chain Architecture](/operators/chain-operators/architecture) guide. - * **Smart Contracts**: OP Chains use several smart contracts on the L1 - blockchain to manage aspects of the Rollup. Each OP Stack chain has its own - set of [L1 smart contracts](/stack/smart-contracts/smart-contracts), - [L2 predeploy contracts](/stack/smart-contracts/smart-contracts), - and [L2 preinstall contracts](/operators/chain-operators/features/preinstalls) - that are deployed when the chain is created. - * **Preinstalls**: OP Chains come with [preinstalled core contracts](/operators/chain-operators/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack. + * **Smart Contracts**: OP Chains use several smart contracts on the L1 + blockchain to manage aspects of the Rollup. Each OP Stack chain has its own + set of [L1 smart contracts](/stack/smart-contracts/smart-contracts), + [L2 predeploy contracts](/stack/smart-contracts/smart-contracts), + and [L2 preinstall contracts](/chain-operators/reference/features/preinstalls) + that are deployed when the chain is created. + * **Preinstalls**: OP Chains come with [preinstalled core contracts](/chain-operators/reference/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack. You should only use governance approved and audited smart contracts. The monorepo has them tagged with the following pattern `op-contracts/vX.X.X` and you can review the release notes for details on the changes. @@ -48,7 +48,7 @@ There are two main steps to get started building your own self-hosted OP Chain: {

Launch Your OP Stack Testnet Chain

} * Now, you are ready to spin up your testnet chain. - * Just follow the [Creating Your Own L2 Rollup Testnet](/operators/chain-operators/tutorials/create-l2-rollup) tutorial to get started. + * Just follow the [Creating Your Own L2 Rollup Testnet](/chain-operators/tutorials/create-rollup) tutorial to get started.
## Configure your chain @@ -58,14 +58,14 @@ OP Chains can be configured for throughput, cost, and other decentralization tra {

Setup Key Management and Privileged Roles

} - * Configure hot wallets and cold wallets using the guide for [Managing Your Keys](/operators/chain-operators/management/key-management). - * Refer to the [Privileged Roles](/superchain/privileged-roles) guide for detailed security information. + * Configure hot wallets and cold wallets using the guide for [Managing Your Keys](/chain-operators/guides/management/key-management). + * Refer to the [Privileged Roles](/chain-operators/reference/privileged-roles) guide for detailed security information. {

Make Standard Chain Configurations

} - * Configure your [OP Chain parameters](/operators/chain-operators/configuration/overview) based on your particular tradeoffs. You'll need to configure the **rollup**, **batcher**, and **proposer** for optimal performance. - * Update your batcher to [post transaction data within blobs](/operators/chain-operators/management/blobs) instead of call data to maximize your fee savings. - * Enable [snap sync](/operators/chain-operators/management/snap-sync) on your OP Chain to significantly improve the experience and speed of syncing an OP Stack node. + * Configure your [OP Chain parameters](/chain-operators/guides/configuration/overview) based on your particular tradeoffs. You'll need to configure the **rollup**, **batcher**, and **proposer** for optimal performance. + * Update your batcher to [post transaction data within blobs](/chain-operators/guides/management/blobs) instead of call data to maximize your fee savings. + * Enable [snap sync](/chain-operators/guides/management/snap-sync) on your OP Chain to significantly improve the experience and speed of syncing an OP Stack node. {

Set Public RPC Endpoint

} @@ -73,7 +73,7 @@ OP Chains can be configured for throughput, cost, and other decentralization tra {

Enable Analytics for Onchain Data

} - * Enable [analytics tracking for your OP Chain](/operators/node-operators/management/metrics), to immediately generate onchain metrics after mainnet launch. + * Enable [analytics tracking for your OP Chain](/node-operators/guides/monitoring/metrics), to immediately generate onchain metrics after mainnet launch.
## Test your chain @@ -85,15 +85,15 @@ Before launching on Mainnet, thoroughly test and debug OP Chain contracts, featu Block explorers allow you to access transaction history and conduct chain debugging. - * Option 1: Select an [external block explorer](/app-developers/tools/build/block-explorers) to use with your OP Chain. - * Option 2: Deploy your own block explorer for your OP Chain, such as [Blockscout](/operators/chain-operators/tools/explorer). + * Option 1: Select an [external block explorer](/app-developers/tools/infrastructure/explorers) to use with your OP Chain. + * Option 2: Deploy your own block explorer for your OP Chain, such as [Blockscout](/chain-operators/tools/explorer). {

Send Test Transactions

} As part of testing your OP Chain, you'll need to send test or example transactions to the new network. * Test [sending L2 transactions](https://github.com/ethereum-optimism/tx-overload) to understand how much load your new chain can handle. - * Trace [deposits and withdrawals](/app-developers/tutorials/transactions/sdk-trace-txns) using the SDK or viem. + * Trace [deposits and withdrawals](/app-developers/tutorials/transactions/sdk-tracing) using the SDK or viem. * Run [basic transaction tests](https://metamask.io/) using Metamask.
@@ -112,7 +112,7 @@ They'll help you get a head start deploying your first OP Stack chain. | [Adding Attributes to the Derivation Function](tutorials/adding-derivation-attributes) | Learn how to modify the derivation function for an OP Stack chain to track the amount of ETH being burned on L1. | 🟢 Easy | | [Adding a Precompile](tutorials/adding-precompiles) | Learn how to run an EVM with a new precompile for OP Stack chain operations to speed up calculations that are not currently supported. | 🟢 Easy | | [Modifying Predeployed Contracts](tutorials/modifying-predeploys) | Learn how to modify predeployed contracts for an OP Stack chain by upgrading the proxy. | 🟢 Easy | -| [Pause and Unpause the Bridge](/stack/security/pause) | Learn how to pause `OptimismPortal` as a backup safety mechanism on your OP Stack chain. | 🟢 Easy | +| [Pause and Unpause the Bridge](/concepts/security/pause-system) | Learn how to pause `OptimismPortal` as a backup safety mechanism on your OP Stack chain. | 🟢 Easy | | [Integrating a DA Layer](tutorials/integrating-da-layer) | Learn how to integrate a new DA Layer with Alt-DA | 🟢 Easy | You can also [suggest a new tutorial](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=tutorial%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_tutorial.yaml\&title=%5BTUTORIAL%5D+Add+PR+title) if you have something specific in mind. We'd love to grow this list! diff --git a/pages/operators/chain-operators/tools.mdx b/pages/operators/chain-operators/tools.mdx index d46a54afa..3ad67fbf4 100644 --- a/pages/operators/chain-operators/tools.mdx +++ b/pages/operators/chain-operators/tools.mdx @@ -28,16 +28,16 @@ import { Card, Cards } from 'nextra/components' This section provides information on chain monitoring options, deploying a block explorer, configuring a challenger for your chain, conductor, and deployer. You'll find guides, overviews, and tools to help you understand and work with these topics. - - - - - - + + + + + + - + - + - + diff --git a/pages/operators/chain-operators/tools/chain-monitoring.mdx b/pages/operators/chain-operators/tools/chain-monitoring.mdx index 17178ff4d..3c9ec38dd 100644 --- a/pages/operators/chain-operators/tools/chain-monitoring.mdx +++ b/pages/operators/chain-operators/tools/chain-monitoring.mdx @@ -96,7 +96,7 @@ The general steps for enabling offchain monitoring are pretty consistent for all ### `op-node` -`op-node` metrics and monitoring is detailed in the [Node Metrics and Monitoring](/operators/node-operators/management/metrics) guide. To enable metrics, pass the `--metrics.enabled` flag to `op-node` and follow the steps above for customization options. +`op-node` metrics and monitoring is detailed in the [Node Metrics and Monitoring](/node-operators/guides/monitoring/metrics) guide. To enable metrics, pass the `--metrics.enabled` flag to `op-node` and follow the steps above for customization options. See [this curated list](/operators/node-operators/management/metrics#important-metrics) for important metrics to track specifically for `op-node`. ### `op-geth` @@ -118,7 +118,7 @@ You can find more information about these flags in our [Batcher configuration do ### `op-challenger` The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. -For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/stack/fault-proofs/cannon)). See the [OP-Challenger Explainer](/stack/fault-proofs/challenger) for more information on this service. +For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/concepts/architecture/fault-proofs/cannon)). See the [OP-Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger) for more information on this service. To enable metrics, pass the `--metrics.enabled` flag to `op-challenger` and follow the steps above for customization options. diff --git a/pages/operators/chain-operators/tools/op-challenger.mdx b/pages/operators/chain-operators/tools/op-challenger.mdx index 7d7f8c025..ac2d98837 100644 --- a/pages/operators/chain-operators/tools/op-challenger.mdx +++ b/pages/operators/chain-operators/tools/op-challenger.mdx @@ -19,7 +19,7 @@ import { Callout, Steps } from 'nextra/components' # How to configure challenger for your chain -This guide provides a walkthrough of setting up the configuration and monitoring options for `op-challenger`. See the [OP-Challenger Explainer](/stack/fault-proofs/challenger) for a general overview of this fault proofs feature. +This guide provides a walkthrough of setting up the configuration and monitoring options for `op-challenger`. See the [OP-Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger) for a general overview of this fault proofs feature. ### Build the executable @@ -229,6 +229,6 @@ This guide provides a walkthrough of setting up the configuration and monitoring ## Next steps -* Additional questions? See the FAQ section in the [OP Challenger Explainer](/stack/fault-proofs/challenger). +* Additional questions? See the FAQ section in the [OP Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger). * For more detailed info on `op-challenger`, see the [specs](https://specs.optimism.io/fault-proof/stage-one/honest-challenger-fdg.html?utm_source=op-docs&utm_medium=docs). * If you experience any problems, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/chain-operators/tools/op-deployer.mdx b/pages/operators/chain-operators/tools/op-deployer.mdx index 0c450d04c..352d7ac6a 100644 --- a/pages/operators/chain-operators/tools/op-deployer.mdx +++ b/pages/operators/chain-operators/tools/op-deployer.mdx @@ -578,4 +578,4 @@ The command outputs a JSON file containing the deployed implementation contract ## Next steps * For more details, check out the tool and documentation in the [op-deployer repository](https://github.com/ethereum-optimism/optimism/tree/develop/op-deployer/cmd/op-deployer). -* For more information on OP Contracts Manager, refer to the [OPCM documentation](/stack/opcm). +* For more information on OP Contracts Manager, refer to the [OPCM documentation](/chain-operators/reference/opcm). diff --git a/pages/operators/chain-operators/tools/proxyd.mdx b/pages/operators/chain-operators/tools/proxyd.mdx index 32c9f10e8..e0af65c9b 100644 --- a/pages/operators/chain-operators/tools/proxyd.mdx +++ b/pages/operators/chain-operators/tools/proxyd.mdx @@ -84,7 +84,7 @@ Extensive metrics are available to monitor request latency, error rates, backend ## Next steps * Read about the [OP Stack chain architecture](/operators/chain-operators/architecture). -* Find out how you can support [snap sync](/operators/chain-operators/management/snap-sync). +* Find out how you can support [snap sync](/chain-operators/guides/management/snap-sync). on your chain. -* Find out how you can utilize [blob space](/operators/chain-operators/management/blobs) +* Find out how you can utilize [blob space](/chain-operators/guides/management/blobs) to reduce the transaction fee cost on your chain. diff --git a/pages/operators/chain-operators/tutorials.mdx b/pages/operators/chain-operators/tutorials.mdx index af3ca06b1..730378cfb 100644 --- a/pages/operators/chain-operators/tutorials.mdx +++ b/pages/operators/chain-operators/tutorials.mdx @@ -28,23 +28,23 @@ import { Card, Cards } from 'nextra/components' This section provides information on adding attributes to the derivation function, adding a precompile, creating your own l2 rollup testnet, integrating a new da layer with alt da, modifying predeployed contracts and using viem. You'll find overview, tutorial, guide to help you understand and work with these topics. - + - + - + - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/tutorials/absolute-prestate.mdx b/pages/operators/chain-operators/tutorials/absolute-prestate.mdx index 6e1d988f0..204fd0697 100644 --- a/pages/operators/chain-operators/tutorials/absolute-prestate.mdx +++ b/pages/operators/chain-operators/tutorials/absolute-prestate.mdx @@ -40,7 +40,7 @@ This upgrade offers several advantages: * Support for the latest network upgrades - Beginning with [Upgrade 14](/notices/upgrade-14), all chains should use the `64-bit` multi-threaded version of Cannon. + Beginning with [Upgrade 14](/notices/archive/upgrade-14), all chains should use the `64-bit` multi-threaded version of Cannon. The absolute prestate files for this version typically have the format `prestate-mt64.bin.gz`. @@ -153,7 +153,7 @@ For these cases, follow these additional steps: ### Copy your chain configuration files to this directory - First, you need to obtain your chain's configuration files. These are typically generated when you [deploy your L2 chain](/operators/chain-operators/deploy/smart-contracts) with op-deployer: + First, you need to obtain your chain's configuration files. These are typically generated when you [deploy your L2 chain](/chain-operators/guides/deployment/contracts) with op-deployer: * **rollup.json**: The rollup configuration file * **genesis.json**: The L2 genesis file @@ -277,6 +277,6 @@ After generating the absolute prestate and preimage files, you'll need to: ## Next Steps -* Check out the [migrating to permissionless fault proofs guide](/operators/chain-operators/tutorials/migrating-permissionless). -* Read the [Fault proofs explainer](/stack/fault-proofs/explainer). -* [Fault proofs explainer](/stack/fault-proofs/explainer) +* Check out the [migrating to permissionless fault proofs guide](/chain-operators/tutorials/migrate-permissionless). +* Read the [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer). +* [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer) diff --git a/pages/operators/chain-operators/tutorials/chain-dev-net.mdx b/pages/operators/chain-operators/tutorials/chain-dev-net.mdx index ca05f63c3..906a74497 100644 --- a/pages/operators/chain-operators/tutorials/chain-dev-net.mdx +++ b/pages/operators/chain-operators/tutorials/chain-dev-net.mdx @@ -32,7 +32,7 @@ You'll perform the full deployment process, and **you'll end up with your very o It's useful to understand what each of these components does before you start deploying your chain. To learn about the different components please -read the [deployment overview page](/operators/chain-operators/deploy/overview). +read the [deployment overview page](/chain-operators/guides/deployment/overview). You can use this devnet to experiment and perform tests, or you can choose to modify the chain to adapt it to your own needs. **The OP Stack is free and open source software licensed entirely under the MIT license**. You don't need permission from @@ -219,5 +219,5 @@ Send some transactions, deploy some contracts, and see what happens! ## Next Steps * Check out the [protocol specs](https://specs.optimism.io/?utm_source=op-docs&utm_medium=docs) for more detail about the rollup protocol. -* If you run into any problems, please visit the [chain operators troubleshooting guide](/operators/chain-operators/management/troubleshooting) +* If you run into any problems, please visit the [chain operators troubleshooting guide](/chain-operators/guides/troubleshooting) * If you run into any problems, please [file an issue](https://github.com/ethereum-optimism/optimism/issues) or join the [Superchain Dev Discord](https://guild.xyz/superchain-devs) for help. diff --git a/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx index 0f7d88d13..5e9992628 100644 --- a/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx +++ b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx @@ -33,7 +33,7 @@ You'll walk through the full deployment process and teach you all of the compone It's useful to understand what each of these components does before you start deploying your chain. To learn about the different components please -read the [deployment overview page](/operators/chain-operators/deploy/overview). +read the [deployment overview page](/chain-operators/guides/deployment/overview). You can use this testnet to experiment and perform tests, or you can choose to modify the chain to adapt it to your own needs. **The OP Stack is free and open source software licensed entirely under the MIT license**. @@ -438,7 +438,7 @@ These files are crucial for initializing the execution client (`op-geth`) and co The recommended flow for creating a genesis file and rollup configuration file on the OP Stack is as follows: -1. **Deploy the L1 contracts** using [op-deployer](/operators/chain-operators/tools/op-deployer). +1. **Deploy the L1 contracts** using [op-deployer](/chain-operators/tools/op-deployer). 2. **Generate** both the L2 genesis file (`genesis.json`) and the rollup configuration file (`rollup.json`) using op-deployer's `inspect` commands. 3. **Initialize** your off-chain components (e.g., execution client, consensus client). @@ -773,4 +773,4 @@ Send some transactions, deploy some contracts, and see what happens! ## Next steps * Check out the [protocol specs](https://specs.optimism.io/?utm_source=op-docs&utm_medium=docs) for more detail about the rollup protocol. -* If you run into any problems, please visit the [Chain Operators Troubleshooting Guide](/operators/chain-operators/management/troubleshooting) for help. +* If you run into any problems, please visit the [Chain Operators Troubleshooting Guide](/chain-operators/guides/troubleshooting) for help. diff --git a/pages/operators/chain-operators/tutorials/dispute-games.mdx b/pages/operators/chain-operators/tutorials/dispute-games.mdx index 6a58e9a28..1449f3360 100644 --- a/pages/operators/chain-operators/tutorials/dispute-games.mdx +++ b/pages/operators/chain-operators/tutorials/dispute-games.mdx @@ -20,7 +20,7 @@ import { Callout } from 'nextra/components' # Deploying new dispute games with OPCM -This guide provides instructions on how to deploy new dispute games to an OP Stack chain using the [OPCM (OP Contracts Manager)](/stack/opcm). This process is particularly relevant for teams looking to upgrade their chains to support permissionless dispute games. +This guide provides instructions on how to deploy new dispute games to an OP Stack chain using the [OPCM (OP Contracts Manager)](/chain-operators/reference/opcm). This process is particularly relevant for teams looking to upgrade their chains to support permissionless dispute games. ## Prerequisites @@ -147,11 +147,11 @@ cast send --rpc-url $RPC_URL --private-key $PRIVATE_KEY $OPCM_ADDRESS $CALLDATA 4. Setting the respected game type After deploying the permissionless dispute game, you'll need to update the respectedGameType in the OptimismPortal to start using it. - For detailed instructions on setting the respected game type and migrating your chain from permissioned to permissionless fault proofs, refer to the [migrating to permissionless fault proofs guide](/operators/chain-operators/tutorials/migrating-permissionless). + For detailed instructions on setting the respected game type and migrating your chain from permissioned to permissionless fault proofs, refer to the [migrating to permissionless fault proofs guide](/chain-operators/tutorials/migrate-permissionless). ## Next Steps -* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). +* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). * Learn about [absolute prestate](/operators/chain-operators/tutorials/absolute-prestate) -* checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide -* [Fault proofs explainer](/stack/fault-proofs/explainer) +* checkout the [migrating to permissionless fault proofs](/chain-operators/tutorials/migrate-permissionless) guide +* [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer) diff --git a/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx index 85e21418f..d99aa1821 100644 --- a/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx +++ b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx @@ -25,7 +25,7 @@ import { Callout, Steps } from 'nextra/components' These features may experience stability issues, and we encourage feedback from our early users. -[Alt-DA Mode](/stack/beta-features/alt-da-mode) enables seamless integration of any DA Layer, regardless of their commitment type, into the OP Stack. After a DA Server is built for a DA Layer, any chain operator can launch an OP Stack chain using that DA Layer for sustainably low costs. +[Alt-DA Mode](/chain-operators/guides/features/alt-da) enables seamless integration of any DA Layer, regardless of their commitment type, into the OP Stack. After a DA Server is built for a DA Layer, any chain operator can launch an OP Stack chain using that DA Layer for sustainably low costs. ## Build your DA server @@ -54,7 +54,7 @@ Our suggestion is for every DA Layer to build and maintain their own DA Server, ## Run Alt-DA -Follow our guide on [how to operate an Alt-DA Mode chain](/operators/chain-operators/features/alt-da-mode), except instead of using the S3 DA server, use the DA server that you built. +Follow our guide on [how to operate an Alt-DA Mode chain](/chain-operators/reference/features/alt-da), except instead of using the S3 DA server, use the DA server that you built. ## Next steps diff --git a/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx b/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx index e22ebcf62..e0a086da4 100644 --- a/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx +++ b/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx @@ -32,8 +32,8 @@ Permissioned games previously relied on a single trusted validator, this is typi This migration involves several key components: -* Configuring security-critical dispute [monitoring services](/operators/chain-operators/tools/chain-monitoring) -* Deploying and configuring smart contracts using [op-deployer](/operators/chain-operators/tools/op-deployer) +* Configuring security-critical dispute [monitoring services](/chain-operators/tools/monitoring) +* Deploying and configuring smart contracts using [op-deployer](/chain-operators/tools/op-deployer) * Testing the new system before activation * Setting the respected game type to permissionless fault proofs, specifically using the [`FaultDisputeGame`](https://github.com/ethereum-optimism/optimism/blob/6e563de4a847c54ddd4e6d2e38bc21e8f6067680/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol) @@ -43,7 +43,7 @@ Before beginning this transition, your chain should: * Be running a standard OP Stack implementation * Use contracts version [**v2.0.0**](https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv2.0.0). -* Be operating with the required infrastructure services including [`op-challenger`](/stack/fault-proofs/challenger) and [`op-dispute-mon`](/operators/chain-operators/tools/chain-monitoring#dispute-mon). +* Be operating with the required infrastructure services including [`op-challenger`](/concepts/architecture/fault-proofs/op-challenger) and [`op-dispute-mon`](/operators/chain-operators/tools/chain-monitoring#dispute-mon). ## Migration steps @@ -97,7 +97,7 @@ make op-challenger ### Update network configuration Configure `op-challenger` to load your chain configuration. -Even if your chain is not included in the [superchain-registry](/superchain/superchain-registry), you can specify a custom configuration: +Even if your chain is not included in the [superchain-registry](/chain-operators/reference/superchain-registry), you can specify a custom configuration: ```bash # For chains in the registry @@ -186,7 +186,7 @@ This migration requires actions by privileged roles in your system: * The **ProxyAdmin Owner** has the authority to upgrade proxy contracts. * The **Guardian** has emergency powers like pausing withdrawals and changing the respected game type. -For detailed information about privileged roles and their security implications, refer to the [privileged roles documentation](/superchain/privileged-roles). +For detailed information about privileged roles and their security implications, refer to the [privileged roles documentation](/chain-operators/reference/privileged-roles). ### Adding the PermissionlessDisputeGame to a chain @@ -202,7 +202,7 @@ This method will: 2. Setup the `DelayedWethProxy` for the new game 3. Reinitialize the `AnchorStateRegistry` to add the new game type. -See a high‐level implementation from this [docs](/operators/chain-operators/tutorials/dispute-games). +See a high‐level implementation from this [docs](/chain-operators/tutorials/deploy-dispute-games). ## 3. Testing off-chain agents @@ -381,7 +381,7 @@ OP_PROPOSER_GAME_TYPE=0 ## Next steps -* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). -* Deploy new dispute games with OPCM via [this tutorial](/operators/chain-operators/tutorials/dispute-games). +* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). +* Deploy new dispute games with OPCM via [this tutorial](/chain-operators/tutorials/deploy-dispute-games). * Generate an absolute prestate using the [absolute prestate guide](/operators/chain-operators/tutorials/absolute-prestate). -* Understand fault proofs in the [Fault proofs explainer](/stack/fault-proofs/explainer). +* Understand fault proofs in the [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer). diff --git a/pages/operators/node-operators.mdx b/pages/operators/node-operators.mdx index d50c923c3..b949710aa 100644 --- a/pages/operators/node-operators.mdx +++ b/pages/operators/node-operators.mdx @@ -25,19 +25,19 @@ import { Card, Cards } from 'nextra/components' Documentation covering Architecture, Configuration, Json Rpc, Management, Network Upgrades, Releases, Rollup Node, Tutorials in the Node Operators section of the OP Stack ecosystem. - + - + - + - + - + - + - + - + diff --git a/pages/operators/node-operators/architecture.mdx b/pages/operators/node-operators/architecture.mdx index 64d943929..d75e6f051 100644 --- a/pages/operators/node-operators/architecture.mdx +++ b/pages/operators/node-operators/architecture.mdx @@ -51,6 +51,6 @@ Legacy Geth is **not** required and is typically only necessary if you want to m ## Next steps -* To get your node up and running, start with the [run a node from docker](/operators/node-operators/tutorials/node-from-docker) or [build a node from source](/operators/node-operators/tutorials/node-from-source) tutorial. +* To get your node up and running, start with the [run a node from docker](/node-operators/tutorials/docker-node) or [build a node from source](/node-operators/tutorials/source-node) tutorial. * If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](./management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. * If you run into any problems, please visit the [Node Troubleshooting Guide](./management/troubleshooting) for help. diff --git a/pages/operators/node-operators/configuration.mdx b/pages/operators/node-operators/configuration.mdx index ae6236992..fe4a8d038 100644 --- a/pages/operators/node-operators/configuration.mdx +++ b/pages/operators/node-operators/configuration.mdx @@ -27,9 +27,9 @@ import { Card, Cards } from 'nextra/components' This section provides information on node base configuration, consensus layer configuration options (OP Node), and execution layer configuration options (OP Geth). You'll find information to help you understand and work with these topics. - + - + - + diff --git a/pages/operators/node-operators/configuration/base-config.mdx b/pages/operators/node-operators/configuration/base-config.mdx index d953c5619..edb13471a 100644 --- a/pages/operators/node-operators/configuration/base-config.mdx +++ b/pages/operators/node-operators/configuration/base-config.mdx @@ -42,7 +42,7 @@ Depending on the network you're running, initialization is done one of three way 1. **With Network Flags:** This initializes the genesis information and chain configuration from the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry). 2. **With a Genesis File:** This is for deployments that are not migrated from a legacy network (i.e. OP Sepolia). In this case, you'll use a genesis file and initialize the data directory via `geth init`. -3. **With a Data Directory:** This is used for networks that are migrated from a legacy network. This currently **only** includes OP Mainnet. In this case, you'll download a preconfigured data directory and extract it. No further initialization is necessary in this case, because the data directory contains the network's genesis information. This method can be bypassed if you utilize [snap sync](/operators/node-operators/management/snap-sync). +3. **With a Data Directory:** This is used for networks that are migrated from a legacy network. This currently **only** includes OP Mainnet. In this case, you'll download a preconfigured data directory and extract it. No further initialization is necessary in this case, because the data directory contains the network's genesis information. This method can be bypassed if you utilize [snap sync](/node-operators/guides/management/snap-sync). Regardless of how `op-geth` is initialized, you'll need to ensure that you have sufficient disk space available to store the network's data. As of this writing, the OP Mainnet data directory is \~1.6TB for a full node and \~5TB for an archival node. @@ -151,7 +151,7 @@ Consult [Geth's documentation](https://geth.ethereum.org/docs/) for more informa `op-node` is a standalone, statically linked binary. It stores no state, and requires no initialization. It consumes configuration parameters either via the command line or environment variables. For some networks, the Rollup Node also requires a configuration file (called `rollup.json` or the "rollup config") that configures network-specific genesis parameters. For official networks like OP Sepolia and OP Mainnet, the genesis config is hardcoded in the `op-node` software and can be specified via a `--network` flag. Following the [Ecotone upgrade](/operators/node-operators/network-upgrades#ecotone) -node operators must set an L1 beacon value to retrieve [blobs](/operators/node-operators/management/blobs) +node operators must set an L1 beacon value to retrieve [blobs](/chain-operators/guides/management/blobs) from a Beacon node. @@ -229,6 +229,6 @@ The term *historical execution* refers to RPC methods that need to execute trans If you do not need these RPC methods for historical data, then you do not need to run Legacy Geth at all. ## Next steps -* See the [op-node configuration](/operators/node-operators/configuration/consensus-config) guide for additional configuration options for `op-node` and the Consensus-Layer. -* Similarly, visit the [op-geth configuration](/operators/node-operators/configuration/execution-config) guide for additional configuration options for `op-geth` and Execution-Layer. +* See the [op-node configuration](/node-operators/guides/configuration/consensus) guide for additional configuration options for `op-node` and the Consensus-Layer. +* Similarly, visit the [op-geth configuration](/node-operators/guides/configuration/execution) guide for additional configuration options for `op-geth` and Execution-Layer. * If you run into any problems, please reach out to our [developer support forum](https://github.com/ethereum-optimism/developers/discussions) for help. diff --git a/pages/operators/node-operators/json-rpc.mdx b/pages/operators/node-operators/json-rpc.mdx index 3b7308ee6..6c4f58110 100644 --- a/pages/operators/node-operators/json-rpc.mdx +++ b/pages/operators/node-operators/json-rpc.mdx @@ -28,7 +28,7 @@ There are several OP Mainnet components with an RPC API, which are reviewed in t Use [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice) instead of `rollup_gasPrices` for the L2 gas price. For the L1 gas price, you can call the [`GasPriceOracle`'s `l1BaseFee` function](https://explorer.optimism.io/address/0x420000000000000000000000000000000000000F#readProxyContract#F11). - If you want to estimate the cost of a transaction, you can [use the SDK](/app-developers/tutorials/transactions/sdk-estimate-costs). + If you want to estimate the cost of a transaction, you can [use the SDK](/app-developers/tutorials/transactions/cost-estimation). ## op-node diff --git a/pages/operators/node-operators/management.mdx b/pages/operators/node-operators/management.mdx index 293b7f1a5..b94a19475 100644 --- a/pages/operators/node-operators/management.mdx +++ b/pages/operators/node-operators/management.mdx @@ -25,15 +25,15 @@ import { Card, Cards } from 'nextra/components' This section provides information on using blobs, node metrics and monitoring, snap sync for node operators, node snapshots, and troubleshooting. Users will find APIs, references, and guides to help understand and work with these topics. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/operators/node-operators/management/blobs.mdx b/pages/operators/node-operators/management/blobs.mdx index 42cfd532a..2384dcf64 100644 --- a/pages/operators/node-operators/management/blobs.mdx +++ b/pages/operators/node-operators/management/blobs.mdx @@ -36,7 +36,7 @@ These steps are necessary for EVERY node operator: ### Update to the latest release -See the [Software Releases](/operators/node-operators/releases) page for the minimum release version. +See the [Software Releases](/node-operators/reference/releases) page for the minimum release version. ### Configure the Ecotone activation date diff --git a/pages/operators/node-operators/management/snap-sync.mdx b/pages/operators/node-operators/management/snap-sync.mdx index 05c6a954b..d8dc1ac01 100644 --- a/pages/operators/node-operators/management/snap-sync.mdx +++ b/pages/operators/node-operators/management/snap-sync.mdx @@ -117,5 +117,5 @@ To enable execution layer sync for these clients, set the following flags on `op ## Next steps * See the [Node Configuration](/operators/node-operators/configuration/base-config#configuration) guide for additional explanation or customization. -* To enable snap sync for your chain, see [Using Snap Sync for Chain Operators](/operators/chain-operators/management/snap-sync). +* To enable snap sync for your chain, see [Using Snap Sync for Chain Operators](/chain-operators/guides/management/snap-sync). * If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/node-operators/network-upgrades.mdx b/pages/operators/node-operators/network-upgrades.mdx index a262de2c4..7e56c70cf 100644 --- a/pages/operators/node-operators/network-upgrades.mdx +++ b/pages/operators/node-operators/network-upgrades.mdx @@ -86,5 +86,5 @@ then the software is deployed on production networks. ## More information -* To check for the latest node software, see the [Software Releases](/operators/node-operators/releases). +* To check for the latest node software, see the [Software Releases](/node-operators/reference/releases). * For more information on the governance process see the [governance documentation](https://community.optimism.io/docs/governance/?utm_source=op-docs\&utm_medium=docs). diff --git a/pages/operators/node-operators/rollup-node.mdx b/pages/operators/node-operators/rollup-node.mdx index 9bc58e2be..96d12a8c8 100644 --- a/pages/operators/node-operators/rollup-node.mdx +++ b/pages/operators/node-operators/rollup-node.mdx @@ -33,19 +33,19 @@ Before building your node, you will learn fundamental aspects of OP Stack rollup These are the two fundamental components of an OP Stack rollup node: - * **Node Architecture**: OP Stack rollup nodes use the rollup node and execution client and can also support legacy geth for pre-bedrock historical execution requests. For more details, see the [Node Architecture](/operators/node-operators/architecture) guide. + * **Node Architecture**: OP Stack rollup nodes use the rollup node and execution client and can also support legacy geth for pre-bedrock historical execution requests. For more details, see the [Node Architecture](/node-operators/reference/architecture/overview) guide. * **Network Upgrades**: Network upgrades for OP Stack rollup nodes are generally [activated by timestamps](/operators/node-operators/network-upgrades#activations). Failing to upgrade your node before the timestamp causes a chain divergence, requiring you to resync your node to reconcile the chain. Follow the established [Node Upgrade Process](/operators/node-operators/network-upgrades#upgrade-process) to avoid chain divergence. - If you are building an archive node on OP Mainnet, then you'll need a [node snapshot](/operators/node-operators/management/snapshots). This is **not required** for nodes using [snap sync](/operators/node-operators/management/snap-sync). + If you are building an archive node on OP Mainnet, then you'll need a [node snapshot](/node-operators/guides/management/snapshots). This is **not required** for nodes using [snap sync](/node-operators/guides/management/snap-sync). {

Build Your OP Stack Node

} Now, you are ready to build your OP Stack rollup node. You have two options for this: - * **Option 1:** Follow the [Running a Node with Docker](/operators/node-operators/tutorials/node-from-docker) tutorial, which gets your OP Stack rollup node up and running without having to build it from source. - * **Option 2:** Follow the [Building a Node from Source](/operators/node-operators/tutorials/node-from-source) tutorial, if you need to use a specific architecture or want to inspect the source code of your OP Stack rollup node. + * **Option 1:** Follow the [Running a Node with Docker](/node-operators/tutorials/docker-node) tutorial, which gets your OP Stack rollup node up and running without having to build it from source. + * **Option 2:** Follow the [Building a Node from Source](/node-operators/tutorials/source-node) tutorial, if you need to use a specific architecture or want to inspect the source code of your OP Stack rollup node.
## Configure your node @@ -61,11 +61,11 @@ OP Stack rollup nodes can be configured for individual needs. The following step {

Enable Snap Sync

} - * Enable [snap sync](/operators/node-operators/management/snap-sync) for your node to significantly improve the experience and speed of syncing an OP Stack node. + * Enable [snap sync](/node-operators/guides/management/snap-sync) for your node to significantly improve the experience and speed of syncing an OP Stack node. This is an **optional** feature but highly recommended for node providers. - Additional configuration options exist for [`op-geth`](/operators/node-operators/configuration/execution-config) and [`op-node`](/operators/node-operators/configuration/consensus-config), respectively. + Additional configuration options exist for [`op-geth`](/node-operators/guides/configuration/execution) and [`op-node`](/node-operators/guides/configuration/consensus), respectively.
@@ -79,11 +79,11 @@ Now, you will run your node and set your node debugging log level for more granu You will now run your node from source for your Superchain network. Here are your options. - The tutorial [Building a Node from Source](/operators/node-operators/tutorials/node-from-source) is a **pre-requisite** to running your node from source and must be completed first. + The tutorial [Building a Node from Source](/node-operators/tutorials/source-node) is a **pre-requisite** to running your node from source and must be completed first. - * **Option 1:** Follow the [Running an OP Sepolia Node from Source](/operators/node-operators/tutorials/run-node-from-source) tutorial. - * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/operators/node-operators/tutorials/run-node-from-source) tutorial, if you plan to run a full node or archive node. + * **Option 1:** Follow the [Running an OP Sepolia Node from Source](/node-operators/tutorials/run-from-source) tutorial. + * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/node-operators/tutorials/run-from-source) tutorial, if you plan to run a full node or archive node. {

Update Node Log Level

} @@ -99,7 +99,7 @@ It is important to regularly monitor your node, and you can optionally configure {

Enable the Metrics Port

} - * Enable the [metrics port](/operators/node-operators/management/metrics) for your node by passing the `--metrics.enabled` flag to `op-node`. + * Enable the [metrics port](/node-operators/guides/monitoring/metrics) for your node by passing the `--metrics.enabled` flag to `op-node`. * Optionally, you can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively. {

Setup Prometheus & Grafana

} @@ -116,7 +116,7 @@ It is important to regularly monitor your node, and you can optionally configure ## Follow node updates * It's important to keep your node software up to date. Software updates can also include important bug fixes and patches that can help keep your node stable. -* Refer to the [Software Releases](/operators/node-operators/releases) page for a detailed look at the latest releases of various rollup node and execution client implementations. +* Refer to the [Software Releases](/node-operators/reference/releases) page for a detailed look at the latest releases of various rollup node and execution client implementations. * Notifications are also posted to the Optimism Upgrade Announcement Channels on [**Discord**](https://discord.com/channels/667044843901681675/754090866435424270) and [**Telegram**](https://t.me/+LtAJL1Mt1PYyNjBh). * You can also stay up to date in the [Superchain Developer Discord](https://guild.xyz/superchain-devs). @@ -136,5 +136,5 @@ It is important to regularly monitor your node, and you can optionally configure ## Next steps -* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/operators/node-operators/management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. -* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/node-operators/management/troubleshooting) for help. +* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/node-operators/guides/monitoring/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/node-operators/guides/troubleshooting) for help. diff --git a/pages/operators/node-operators/tutorials.mdx b/pages/operators/node-operators/tutorials.mdx index 91364ac09..4ab0363d0 100644 --- a/pages/operators/node-operators/tutorials.mdx +++ b/pages/operators/node-operators/tutorials.mdx @@ -27,10 +27,10 @@ import { Card, Cards } from 'nextra/components' This section provides information on how to run a node on a Superchain network. It covers running a node with Docker, building a Superchain node from source, and running a Superchain node from source. - + - + - + diff --git a/pages/operators/node-operators/tutorials/node-from-docker.mdx b/pages/operators/node-operators/tutorials/node-from-docker.mdx index b17efcac6..e16edd4da 100644 --- a/pages/operators/node-operators/tutorials/node-from-docker.mdx +++ b/pages/operators/node-operators/tutorials/node-from-docker.mdx @@ -25,7 +25,7 @@ import { Callout, Steps } from 'nextra/components' Using [Docker](https://docs.docker.com/engine/install/) is an easy way to run an OP Mainnet node. This tutorial will walk you through the process of using [`simple-optimism-node`](https://github.com/smartcontracts/simple-optimism-node) to run an OP Mainnet or OP Sepolia node using Docker. `simple-optimism-node` also provides useful tools like a monitoring dashboard and health checking software. -Although less flexible than [running a node from source](/operators/node-operators/tutorials/node-from-source) or building your own Docker setup, this is a great way to quickly get started with OP Mainnet. +Although less flexible than [running a node from source](/node-operators/tutorials/source-node) or building your own Docker setup, this is a great way to quickly get started with OP Mainnet. ## What's included diff --git a/pages/operators/node-operators/tutorials/node-from-source.mdx b/pages/operators/node-operators/tutorials/node-from-source.mdx index 0caf296f6..716436257 100644 --- a/pages/operators/node-operators/tutorials/node-from-source.mdx +++ b/pages/operators/node-operators/tutorials/node-from-source.mdx @@ -164,4 +164,4 @@ make ## Next steps * Click here to [Run a Superchain node from source code](run-node-from-source) -* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/chain-operators/management/troubleshooting) for help. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/chain-operators/guides/troubleshooting) for help. diff --git a/pages/operators/node-operators/tutorials/run-node-from-source.mdx b/pages/operators/node-operators/tutorials/run-node-from-source.mdx index 07e9f9def..c97d4daeb 100644 --- a/pages/operators/node-operators/tutorials/run-node-from-source.mdx +++ b/pages/operators/node-operators/tutorials/run-node-from-source.mdx @@ -55,7 +55,7 @@ Based on these trends, node operators should plan for future storage needs and c ## Superchain nodes -All nodes in the Superchain ecosystem can be run from `op-node` and `op-geth` binaries if they're included in the [Superchain Registry](/superchain/superchain-registry). You can specify the type of node you want to run by configuring the `--network` flag on `op-node` and the `--op-network` flag on `op-geth`. +All nodes in the Superchain ecosystem can be run from `op-node` and `op-geth` binaries if they're included in the [Superchain Registry](/chain-operators/reference/superchain-registry). You can specify the type of node you want to run by configuring the `--network` flag on `op-node` and the `--op-network` flag on `op-geth`. ### Assess blob archiver @@ -107,7 +107,7 @@ You can still start `op-geth` without yet running `op-node`, but the `op-geth` i Use the following command to start `op-geth` in a default configuration. The JSON-RPC API will become available on port 8545. - Refer to the `op-geth` [configuration documentation](/operators/node-operators/configuration/execution-config) for more detailed information about available options. + Refer to the `op-geth` [configuration documentation](/node-operators/guides/configuration/execution) for more detailed information about available options. ```bash ./build/bin/geth \ @@ -156,7 +156,7 @@ Once you've started `op-geth`, you can start `op-node`. {

Start op-node

} Use the following command to start `op-node` in a default configuration. - Refer to the `op-node` [configuration documentation](/operators/node-operators/configuration/consensus-config) for more detailed information about available options. + Refer to the `op-node` [configuration documentation](/node-operators/guides/configuration/consensus) for more detailed information about available options. The `op-node` RPC should not be exposed publicly. If left exposed, it could @@ -164,7 +164,7 @@ Once you've started `op-geth`, you can start `op-node`. - Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/operators/node-operators/management/snap-sync) + Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/node-operators/guides/management/snap-sync) and remove the need to initialize the node with a data directory. @@ -410,5 +410,5 @@ If you've chosen to run a Legacy Geth node alongside your OP Mainnet node, you'l ## Next steps -* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/operators/node-operators/management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. -* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/node-operators/management/troubleshooting) for help. +* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/node-operators/guides/monitoring/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/node-operators/guides/troubleshooting) for help. diff --git a/pages/stack/beta-features.mdx b/pages/stack/beta-features.mdx index 1189d1b04..3a68ad0d2 100644 --- a/pages/stack/beta-features.mdx +++ b/pages/stack/beta-features.mdx @@ -62,7 +62,7 @@ Feedback from beta users helps improve and refine these features. Here's how to Explore our current beta features below. Each feature includes links to detailed documentation for setup, usage, and feedback guidelines. - } /> + } /> {' '} diff --git a/pages/stack/beta-features/alt-da-mode.mdx b/pages/stack/beta-features/alt-da-mode.mdx index 554a1dbef..1468de256 100644 --- a/pages/stack/beta-features/alt-da-mode.mdx +++ b/pages/stack/beta-features/alt-da-mode.mdx @@ -55,7 +55,7 @@ Alt-DA Mode will always have more trust assumptions than simply posting data to ## Next steps -* Ready to get started? Read our guide on how to [deploy your Alt-DA Mode chain](/operators/chain-operators/features/alt-da-mode). +* Ready to get started? Read our guide on how to [deploy your Alt-DA Mode chain](/chain-operators/reference/features/alt-da). * For more info about how Alt-DA Mode works under the hood, [check out the specs](https://specs.optimism.io/experimental/alt-da.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/components.mdx b/pages/stack/components.mdx index dbbc6a3fb..ade2bcaf4 100644 --- a/pages/stack/components.mdx +++ b/pages/stack/components.mdx @@ -99,7 +99,7 @@ Once a transaction is published and finalized on the corresponding Data Availabi An Attestation-based Fault Proof mechanism uses an optimistic protocol to establish a view of an OP Stack chain. In optimistic settlement mechanisms generally, **Proposer** entities can propose what they believe to be the current valid state of the OP Stack chain. If these proposals are not invalidated within a certain period of time (the "challenge period"), then the proposals are assumed by the mechanism to be correct. In the Attestation Proof mechanism in particular, a proposal can be invalidated if some threshold of pre-defined parties provide attestations to a valid state that is different than the state in the proposal. This places a trust assumption on the honesty of at least a threshold number of the pre-defined participants. -* [Specifications](https://specs.optimism.io/protocol/withdrawals.html?utm_source=op-docs&utm_medium=docs) (called [withdrawal transactions](/app-developers/bridging/messaging)) +* [Specifications](https://specs.optimism.io/protocol/withdrawals.html?utm_source=op-docs&utm_medium=docs) (called [withdrawal transactions](/app-developers/guides/bridging/messaging)) * [Source code](https://github.com/ethereum-optimism/optimism/tree/v1.1.4/packages/contracts-bedrock/src) #### Fault Proof Optimistic Settlement diff --git a/pages/stack/differences.mdx b/pages/stack/differences.mdx index e6dcc95cf..f21f8882c 100644 --- a/pages/stack/differences.mdx +++ b/pages/stack/differences.mdx @@ -30,11 +30,11 @@ However, there are some minor differences between the behavior of Ethereum and O ### Bridging - Deposit Transactions -Deposit transactions don't exist on L1s, and are how transactions on an L2 can be initiated from the L1. Importantly, this is how bridge applications can get L1 ETH or tokens into an L2 OP Stack chain. You can read more on deposit transactions [here](/stack/transactions/deposit-flow). +Deposit transactions don't exist on L1s, and are how transactions on an L2 can be initiated from the L1. Importantly, this is how bridge applications can get L1 ETH or tokens into an L2 OP Stack chain. You can read more on deposit transactions [here](/concepts/transactions/deposits). ### Bridging - Withdrawal Transactions and Fault Proofs -Withdrawal transactions are how the state of the L2 rollup can be proven to the L1. Often this involves users withdrawing tokens or ETH to the L1. Fault proofs are the mechanism by which withdrawal transactions are currently proven to the L1. You can read more about fault proofs [here](/stack/fault-proofs/explainer). +Withdrawal transactions are how the state of the L2 rollup can be proven to the L1. Often this involves users withdrawing tokens or ETH to the L1. Fault proofs are the mechanism by which withdrawal transactions are currently proven to the L1. You can read more about fault proofs [here](/concepts/architecture/fault-proofs/explainer). ## Opcodes @@ -78,7 +78,7 @@ In all other cases, the transaction sender address is set according to the same ### Transaction fees Transactions on OP Stack chains must pay for an [L1 data fee](/stack/transactions/fees#the-l1-data-fee) on top of the standard [execution gas fee](/stack/transactions/fees#execution-gas-fee) you would expect on Ethereum. -Refer to the guide on [OP Stack Transaction Fees](/stack/transactions/fees) for more information. +Refer to the guide on [OP Stack Transaction Fees](/concepts/transactions/fees) for more information. You can use the [JS library viem](https://viem.sh/op-stack) to estimate the entire transaction gas costs, including the L1 Data Fee. diff --git a/pages/stack/fact-sheet.mdx b/pages/stack/fact-sheet.mdx index 79b367bfa..b06e37049 100644 --- a/pages/stack/fact-sheet.mdx +++ b/pages/stack/fact-sheet.mdx @@ -19,7 +19,7 @@ is_imported_content: 'false' Get an overview of the capabilities associated with an OP Stack chain. -While the OP Stack allows for full customization, chains in the Superchain adhere to a [standard set of technical and governance parameters](/superchain/blockspace-charter), facilitating Superchain interoperability, network security, and ease of upgrading your chain. +While the OP Stack allows for full customization, chains in the Superchain adhere to a [standard set of technical and governance parameters](/governance/blockspace-charter), facilitating Superchain interoperability, network security, and ease of upgrading your chain. # Technical stack diff --git a/pages/stack/fault-proofs.mdx b/pages/stack/fault-proofs.mdx index 420d72704..23338a364 100644 --- a/pages/stack/fault-proofs.mdx +++ b/pages/stack/fault-proofs.mdx @@ -25,15 +25,15 @@ import { Card, Cards } from 'nextra/components' Documentation covering Cannon, Challenger, Explainer, Fp Components, Fp Security, Mips in the Fault Proofs section of the OP Stack ecosystem. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/stack/fault-proofs/cannon.mdx b/pages/stack/fault-proofs/cannon.mdx index 6bf8878b1..e7407d12e 100644 --- a/pages/stack/fault-proofs/cannon.mdx +++ b/pages/stack/fault-proofs/cannon.mdx @@ -47,7 +47,7 @@ single L2 block state transition that they disagree on. ### OP-Challenger \<> Cannon -Once an active fault dispute game reaches a depth below attacking / defending L2 block state transitions, [OP-Challenger](/stack/fault-proofs/challenger) will run +Once an active fault dispute game reaches a depth below attacking / defending L2 block state transitions, [OP-Challenger](/concepts/architecture/fault-proofs/op-challenger) will run Cannon to begin processing MIPS instructions within the FPVM. As part of processing MIPS instructions, Cannon will generate state witness hashes, which are the commitment to the results of the MIPS instructions' computation within the FPVM. Now, in the bisection game, OP-Challenger will provide the generated hashes until a single MIPS instruction is identified as the root disagreement between participants in the active dispute. Cannon will then diff --git a/pages/stack/fault-proofs/challenger.mdx b/pages/stack/fault-proofs/challenger.mdx index 06f6e7d1a..6cd200ed1 100644 --- a/pages/stack/fault-proofs/challenger.mdx +++ b/pages/stack/fault-proofs/challenger.mdx @@ -26,7 +26,7 @@ import Image from 'next/image' # OP-Challenger explainer -The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/stack/fault-proofs/cannon)). +The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/concepts/architecture/fault-proofs/cannon)). Specifically, `op-challenger` performs the following actions: @@ -101,7 +101,7 @@ The `FaultDisputeGame` does not put a time cap on resolution - because of the li ## Next steps -* Ready to get started? Read our guide on how to [configure `op-challenger` on your OP Stack chain](/operators/chain-operators/tools/op-challenger). +* Ready to get started? Read our guide on how to [configure `op-challenger` on your OP Stack chain](/chain-operators/tools/op-challenger). * For more info about how `op-challenger` works under the hood, [check out the specs](https://specs.optimism.io/fault-proof/stage-one/honest-challenger-fdg.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/fault-proofs/explainer.mdx b/pages/stack/fault-proofs/explainer.mdx index 5960e3c11..117453283 100644 --- a/pages/stack/fault-proofs/explainer.mdx +++ b/pages/stack/fault-proofs/explainer.mdx @@ -53,16 +53,16 @@ See the permissionless fault proofs diagram below for more details: ## Permissionless challenges Because anyone can submit a proposal, it's important that invalid proposals can be challenged. -In [Optimistic Rollups like OP Stack Chains](/stack/rollup/overview) there is a \~1 week challenge period during which users can challenge a proposal if they believe it to be incorrect. +In [Optimistic Rollups like OP Stack Chains](/concepts/architecture/rollup/overview) there is a \~1 week challenge period during which users can challenge a proposal if they believe it to be incorrect. With the Fault Proofs upgrade to the OP Stack, challenges become permissionless and can be submitted by anyone. Any user can run a node for the OP Stack chain in question and use the `op-challenger` tool to participate in the dispute process. ## Modular design and multi-layer security -The OP Stack Fault Proof System is [modular in design](/stack/fault-proofs/fp-components#system-design--modularity) and lays the groundwork for achieving a "multi-proof" system. This allows the OP Stack to support multiple proof systems alongside the initial [Cannon](/stack/fault-proofs/cannon) proof system. +The OP Stack Fault Proof System is [modular in design](/stack/fault-proofs/fp-components#system-design--modularity) and lays the groundwork for achieving a "multi-proof" system. This allows the OP Stack to support multiple proof systems alongside the initial [Cannon](/concepts/architecture/fault-proofs/cannon) proof system. With multiple proof systems in place, the OP Stack can be more resilient to potential attacks and bugs in any one proof system. -Additionally, the following [security safeguards](/stack/fault-proofs/fp-security) have been built around the game, as follows: +Additionally, the following [security safeguards](/concepts/security/fault-proofs) have been built around the game, as follows: * An off chain monitoring system has been set up to monitor all proposed roots and ensure they align with the correct state. See [`op-dispute-mon`](https://github.com/ethereum-optimism/optimism/blob/develop/op-dispute-mon/README.md?plain=1) for more details. * After a root is finalized through a game, an additional delay called the "airgap window" has been added before withdrawals can occur. During this period, the `GUARDIAN` role can reject the root. @@ -71,7 +71,7 @@ Additionally, the following [security safeguards](/stack/fault-proofs/fp-securit ## Next steps * Ready to get started? Review the [FP Components](fp-components) to learn how the different components work together to enhance decentralization in the Optimism ecosystem. -* See the [Fault Proof Mainnet Security](/stack/fault-proofs/fp-security) to understand changes to `OptimismPortal` and `FaultDisputeGame` contracts. +* See the [Fault Proof Mainnet Security](/concepts/security/fault-proofs) to understand changes to `OptimismPortal` and `FaultDisputeGame` contracts. * For more info about how the FP system works under the hood, [check out the specs](https://specs.optimism.io/fault-proof/index.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/features/send-raw-transaction-conditional.mdx b/pages/stack/features/send-raw-transaction-conditional.mdx index e07487c90..4dec2187c 100644 --- a/pages/stack/features/send-raw-transaction-conditional.mdx +++ b/pages/stack/features/send-raw-transaction-conditional.mdx @@ -74,5 +74,5 @@ This feature can be enabled with the addition of a flag to op-geth. * `--rollup.sequencertxconditionalcostratelimit` (default: 5000) an integer flag that sets the rate limit for cost observable per second. - It is not advised to publicly expose this sequencer endpoint due to DoS concerns. This supplemental proxy, [op-txproxy](/operators/chain-operators/tools/op-txproxy), should be used to apply additional constraints on this endpoint prior to passing through to the sequencer. + It is not advised to publicly expose this sequencer endpoint due to DoS concerns. This supplemental proxy, [op-txproxy](/chain-operators/tools/op-txproxy), should be used to apply additional constraints on this endpoint prior to passing through to the sequencer. diff --git a/pages/stack/getting-started.mdx b/pages/stack/getting-started.mdx index d9a93dda7..17068adb2 100644 --- a/pages/stack/getting-started.mdx +++ b/pages/stack/getting-started.mdx @@ -30,7 +30,7 @@ import { Callout } from 'nextra/components' The OP Stack consists of the many different software components managed and maintained by the Optimism Collective that, together, form the backbone of Optimism. The OP Stack is built as a public good for the Ethereum and Optimism ecosystems. -To understand how to operate an OP Stack chain, including roll-up and chain deployment basics, visit [Chain Operator guide](/operators/chain-operators/self-hosted). Check out these guides to get an overview of everything you need to know to properly support OP mainnet within your [exchange](/app-developers/get-started) and [wallet](/app-developers/get-started). +To understand how to operate an OP Stack chain, including roll-up and chain deployment basics, visit [Chain Operator guide](/operators/chain-operators/self-hosted). Check out these guides to get an overview of everything you need to know to properly support OP mainnet within your [exchange](/app-developers/quickstarts/first-app) and [wallet](/app-developers/quickstarts/first-app). ## The OP Stack powers Optimism @@ -79,7 +79,7 @@ At the end of the day, the OP Stack becomes what Optimism needs. Ready to dive into the world of the OP Stack? -* If you're interested in understanding the OP Stack in more depth, start with the [Design Principles](/stack/design-principles). +* If you're interested in understanding the OP Stack in more depth, start with the [Design Principles](/concepts/stack/design-principles). * If you're excited to join the Superchain, launch your first [Superchain-ready L2](/operators/chain-operators/self-hosted) or dive directly into the OP Stack codebase to learn more. The OP Stack is the next frontier for Ethereum. You're already here, so what are you waiting for? diff --git a/pages/stack/opcm.mdx b/pages/stack/opcm.mdx index 4d9734315..17dade500 100644 --- a/pages/stack/opcm.mdx +++ b/pages/stack/opcm.mdx @@ -24,7 +24,7 @@ import { Callout, Tabs, Steps } from 'nextra/components' The OP Contracts Manager is a contract that deploys the L1 contracts for an OP Stack chain in a single transaction. It provides a minimal set of user-configurable parameters to ensure that the resulting chain meets the standard configuration requirements. Additionally, as of [Upgrade 13](https://gov.optimism.io/t/upgrade-proposal-13-opcm-and-incident-response-improvements/9739), instances of OPCM can upgrade existing OP Stack chains. -The version deployed is always a governance-approved contract release. The set of governance approved contract releases can be found on the Optimism Monorepo releases page, and is the set of releases named `op-contracts/vX.Y.Z`. It deploys the [Fault Proof System](/stack/fault-proofs/explainer), using the [PermissionedDisputeGame](/stack/smart-contracts/smart-contracts#permissioneddisputegame). +The version deployed is always a governance-approved contract release. The set of governance approved contract releases can be found on the Optimism Monorepo releases page, and is the set of releases named `op-contracts/vX.Y.Z`. It deploys the [Fault Proof System](/concepts/architecture/fault-proofs/explainer), using the [PermissionedDisputeGame](/stack/smart-contracts/smart-contracts#permissioneddisputegame). ## Purpose diff --git a/pages/stack/research/block-time-research.mdx b/pages/stack/research/block-time-research.mdx index 85de6b079..c8259e774 100644 --- a/pages/stack/research/block-time-research.mdx +++ b/pages/stack/research/block-time-research.mdx @@ -73,7 +73,7 @@ As a result, we can learn that nodes can build the latest blocks of Base Mainnet ### Verifier -* Sync from genesis: If OP Chains' block time drops to one second, verifiers may need longer to sync the chain from the genesis with L1 derivation. However, we expect it won't be a notable issue for verifiers as OP Stack supports the [engine sync](/operators/node-operators/management/snap-sync). +* Sync from genesis: If OP Chains' block time drops to one second, verifiers may need longer to sync the chain from the genesis with L1 derivation. However, we expect it won't be a notable issue for verifiers as OP Stack supports the [engine sync](/node-operators/guides/management/snap-sync). * Following the tip: The research suggests that verifiers are less likely to have a problem following the tip because nodes could build a block under one second at the highest gas range, especially since most verifiers are full nodes. ### Sequencer diff --git a/pages/stack/rollup.mdx b/pages/stack/rollup.mdx index 8052236f2..0aede4a38 100644 --- a/pages/stack/rollup.mdx +++ b/pages/stack/rollup.mdx @@ -26,9 +26,9 @@ import { Card, Cards } from 'nextra/components' The big idea that makes Optimism possible is the Optimistic Rollup. We'll go through a brief explainer of *how* Optimistic Rollups work at a high l... - + - + - + diff --git a/pages/stack/rollup/overview.mdx b/pages/stack/rollup/overview.mdx index 8841e0081..7569ccfe0 100644 --- a/pages/stack/rollup/overview.mdx +++ b/pages/stack/rollup/overview.mdx @@ -35,11 +35,11 @@ Specifically, Optimistic Rollups leverage the consensus mechanism (like PoW or P ## Block storage In Bedrock, L2 blocks are saved to the Ethereum blockchain using a non-contract address ([`0xff00..0010` on Ethereum](https://etherscan.io/address/0xff00000000000000000000000000000000000010)) to minimize the L1 gas expense. -As these blocks are submitted as transactions using EIP-4844 [blobs](/operators/chain-operators/management/blobs), there is no way to modify or censor them after the "transaction" is included in a block that has enough attestations. +As these blocks are submitted as transactions using EIP-4844 [blobs](/chain-operators/guides/management/blobs), there is no way to modify or censor them after the "transaction" is included in a block that has enough attestations. This is the way that OP Mainnet inherits the availability and integrity guarantees of Ethereum. Blocks are written to L1 in [a compressed format](https://specs.optimism.io/protocol/derivation.html?utm_source=op-docs&utm_medium=docs#batch-submission-wire-format) to reduce costs. -This is important because writing to L1 is [the major cost of OP Mainnet transactions](/stack/transactions/fees). +This is important because writing to L1 is [the major cost of OP Mainnet transactions](/concepts/transactions/fees). ## Block production @@ -85,7 +85,7 @@ This makes it possible to transfer ETH or tokens, including ERC20 tokens, betwee The exact mechanism by which this communication occurs differs depending on the direction in which messages are being sent. OP Mainnet uses this functionality in the Standard bridge to allow users to deposit tokens from Ethereum to OP Mainnet and also to allow withdrawals of the same tokens from OP Mainnet back to Ethereum. -See the [developer documentation and examples](/app-developers/bridging/standard-bridge) for details on the inner workings of the Standard bridge. +See the [developer documentation and examples](/app-developers/guides/bridging/standard-bridge) for details on the inner workings of the Standard bridge. ### Moving from Ethereum to OP Mainnet @@ -124,5 +124,5 @@ The ordering of transactions and the state of OP Mainnet is unchanged by a fault ## Next steps -* If you want to learn more about rollup protocol, check out the guides on [deposit flow](/stack/transactions/deposit-flow), [withdrawal flow](/stack/transactions/withdrawal-flow), or [transaction flow](/stack/transactions/transaction-flow). -* To learn about operating your own L2 rollup, see the guide on [starting a self-hosted chain](/operators/chain-operators/self-hosted) or go directly to the tutorial on [creating your own L2 rollup](/operators/chain-operators/tutorials/create-l2-rollup). +* If you want to learn more about rollup protocol, check out the guides on [deposit flow](/concepts/transactions/deposits), [withdrawal flow](/concepts/transactions/withdrawals), or [transaction flow](/concepts/transactions/flow). +* To learn about operating your own L2 rollup, see the guide on [starting a self-hosted chain](/operators/chain-operators/self-hosted) or go directly to the tutorial on [creating your own L2 rollup](/chain-operators/tutorials/create-rollup). diff --git a/pages/stack/security.mdx b/pages/stack/security.mdx index 9b4aef542..27db386ee 100644 --- a/pages/stack/security.mdx +++ b/pages/stack/security.mdx @@ -25,9 +25,9 @@ import { Card, Cards } from 'nextra/components' Documentation covering Faq, Pause in the Security section of the OP Stack ecosystem. - + - + diff --git a/pages/stack/security/faq-sec-model.mdx b/pages/stack/security/faq-sec-model.mdx index e7370de22..ccca39b24 100644 --- a/pages/stack/security/faq-sec-model.mdx +++ b/pages/stack/security/faq-sec-model.mdx @@ -53,7 +53,7 @@ Withdrawals are proven against proposals about the state of the chain that are p Proposals can be submitted to the `DisputeGameFactory` contract by any user and submissions do not require any special permissions. Each submitted proposal creates a [`FaultDisputeGame`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol) contract that allows any other user to challenge the validity of a proposal by participating in a "fault proof" process. -A more detailed explanation of the fault proof game can be found in the [Fault Proofs Explainer](/stack/fault-proofs/explainer). +A more detailed explanation of the fault proof game can be found in the [Fault Proofs Explainer](/concepts/architecture/fault-proofs/explainer). Although the fault proof game is permissionless, the Optimism Security Council acting as the [Guardian](/superchain/privileged-roles#guardian) role provides a backstop in case of a failure in the fault proof game. diff --git a/pages/stack/security/faq.mdx b/pages/stack/security/faq.mdx index a3af376f9..1102a8288 100644 --- a/pages/stack/security/faq.mdx +++ b/pages/stack/security/faq.mdx @@ -47,7 +47,7 @@ As with anything, modify the OP Stack at your own risk. There is no guarantee th ### Can I use fault proofs? -**Yes!** On June 10, 2024, Fault Proofs were officially added to the OP Stack and were activated on OP Mainnet. Please refer to the [documentation on fault proofs](/stack/fault-proofs/explainer) for more information. +**Yes!** On June 10, 2024, Fault Proofs were officially added to the OP Stack and were activated on OP Mainnet. Please refer to the [documentation on fault proofs](/concepts/architecture/fault-proofs/explainer) for more information. Fault proofs are a key milestone and top priority for the OP Stack. In the meantime, the OP Stack can be shipped with several other excellent security options for systems that want to improve security before fault proofs are available in production. @@ -55,7 +55,7 @@ Fault proofs are a key milestone and top priority for the OP Stack. In the meant One of the easiest ways to help secure the OP Stack is to look for bugs and vulnerabilities. [OP Mainnet, a user of the OP Stack, has one of the biggest bug bounties (ever)](https://immunefi.com/bounty/optimism/). You can earn up to $2,000,042 by finding critical bugs in the OP Mainnet codebase (and by extension the OP Stack). -Don't forget that the OP Stack is a decentralized development stack. Anyone can start to contribute to the OP Stack by building software that follows [the stack's design principles](/stack/design-principles). You can always help make the OP Stack more secure by building components, like alternative client or proof implementations, that users of the OP Stack can take advantage of. +Don't forget that the OP Stack is a decentralized development stack. Anyone can start to contribute to the OP Stack by building software that follows [the stack's design principles](/concepts/stack/design-principles). You can always help make the OP Stack more secure by building components, like alternative client or proof implementations, that users of the OP Stack can take advantage of. ### Where do I report bugs? diff --git a/pages/stack/security/pause.mdx b/pages/stack/security/pause.mdx index 0680b7e32..0f60a999d 100644 --- a/pages/stack/security/pause.mdx +++ b/pages/stack/security/pause.mdx @@ -55,4 +55,4 @@ To change the `GUARDIAN` address, the `SuperchainConfig` proxy contract must be While this functionality is available for the OP Stack protocol, it does not cover the security of centralized exchanges and third party bridges. If you operate a centralized exchange or third party bridge, you should monitor this contract and pause withdrawals from the Superchain if you see that it has been paused. -If you'd like to learn more about the privileged roles in the OP Stack, see the [privileged roles](/superchain/privileged-roles) documentation. +If you'd like to learn more about the privileged roles in the OP Stack, see the [privileged roles](/chain-operators/reference/privileged-roles) documentation. diff --git a/pages/stack/smart-contracts/op-deployer-upgrade.mdx b/pages/stack/smart-contracts/op-deployer-upgrade.mdx index 10184f4d0..68c373096 100644 --- a/pages/stack/smart-contracts/op-deployer-upgrade.mdx +++ b/pages/stack/smart-contracts/op-deployer-upgrade.mdx @@ -18,7 +18,7 @@ import { Steps } from 'nextra/components' # Upgrade L1 contracts using op-deployer -[`op-deployer`](/operators/chain-operators/tools/op-deployer) simplifies the process of deploying and upgrading the OP Stack. Using the `upgrade` command, you can upgrade a chain from one version to the next. +[`op-deployer`](/chain-operators/tools/op-deployer) simplifies the process of deploying and upgrading the OP Stack. Using the `upgrade` command, you can upgrade a chain from one version to the next. It consists of several subcommands, one for each upgrade version. Think of it like a database migration: each upgrade command upgrades a chain from exactly one previous version to the next. A chain that is several versions behind can be upgraded to the latest version by running multiple upgrade commands in sequence. diff --git a/pages/stack/smart-contracts/smart-contracts.mdx b/pages/stack/smart-contracts/smart-contracts.mdx index 5355cea71..1b6bbb233 100644 --- a/pages/stack/smart-contracts/smart-contracts.mdx +++ b/pages/stack/smart-contracts/smart-contracts.mdx @@ -24,7 +24,7 @@ import { Callout } from 'nextra/components' # Overview -This guide provides an overview of the functionality of the smart contract components. You can also find [contract addresses](/superchain/addresses) on OP Mainnet. +This guide provides an overview of the functionality of the smart contract components. You can also find [contract addresses](/reference/addresses) on OP Mainnet. ## Layer 1 contracts diff --git a/pages/stack/transactions.mdx b/pages/stack/transactions.mdx index 9d99f94fc..801b4e6bf 100644 --- a/pages/stack/transactions.mdx +++ b/pages/stack/transactions.mdx @@ -29,18 +29,18 @@ Documentation covering Cross Domain, Deposit Flow, Fees, Forced Transaction, Tra - + - + - + - + - + - + - + diff --git a/pages/stack/transactions/fees.mdx b/pages/stack/transactions/fees.mdx index aa867a7fd..89d16456b 100644 --- a/pages/stack/transactions/fees.mdx +++ b/pages/stack/transactions/fees.mdx @@ -128,7 +128,7 @@ the L1 Data Fee are generally quite small and should not impact the average tran The L1 Data Fee formula changed with the Ecotone upgrade. - Refer to the [Network upgrade overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + Refer to the [Network upgrade overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. Prior to the Ecotone upgrade, the L1 Data Fee is calculated based on the following parameters: @@ -162,7 +162,7 @@ l1_data_fee = tx_total_gas * ethereum_base_fee The L1 Data Fee formula changed with the Ecotone upgrade. - Refer to the [Network Upgrade Overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + Refer to the [Network Upgrade Overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. The pricing function changes with Ecotone upgrade because of the introduction of the option to @@ -203,13 +203,13 @@ Recall that base\_fee\_scalar is set to dynamic\_overhead and blob\_base\_fee\_s following the upgrade. Because the old overhead parameter becomes ignored, new L1 data prices will be (slightly, since overhead is typically very small) lower than before the fork. Chain operators will likely want to retune the parameters appropriately after the fork, particularly if -they plan on [enabling blobs](/operators/chain-operators/management/blobs). +they plan on [enabling blobs](/chain-operators/guides/management/blobs). Chain operators can use the [Ecotone fee parameter calculator](https://docs.google.com/spreadsheets/d/12VIiXHaVECG2RUunDSVJpn67IQp9NHFJqUsma2PndpE/edit#gid=186414307) to get a better estimate of scalar values to use for your chain. #### Fjord - The L1 Data Fee formula changed with the Fjord upgrade. Refer to the [Network Upgrade Overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + The L1 Data Fee formula changed with the Fjord upgrade. Refer to the [Network Upgrade Overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. The pricing function changes with the Fjord upgrade because of the FastLZ compression estimator, which more accurately charges for L1 data usage on a per-transaction basis. @@ -244,7 +244,7 @@ The new cost function takes into account the compression ratio, so chain operato The Operator fee is introduced with the [Isthmus upgrade](/notices/upgrade-14#operator-fee) and provides OP Stack chains with more flexible pricing models. - Refer to the [Network upgrade overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps. + Refer to the [Network upgrade overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps. The Operator fee is a new fee component introduced with the Isthmus upgrade that enables more customizable fee structures for OP Stack chains. This fee is integrated directly into the EVM alongside the standard gas fee and L1 data fee, allowing chain operators to implement additional revenue models or cover specific operational costs. @@ -315,5 +315,5 @@ This system ensures effective fee management, maintaining the security and opera ## Next steps -* Read the [differences between Ethereum and OP Stack Chains](/stack/differences) guide. +* Read the [differences between Ethereum and OP Stack Chains](/concepts/stack/differences) guide. * Read the [L2 to L1 Transactions](/app-developers/bridging/messaging#for-l1-to-l2-transactions) guide. diff --git a/pages/stack/transactions/transaction-finality.mdx b/pages/stack/transactions/transaction-finality.mdx index a82785f4c..653c14d6e 100644 --- a/pages/stack/transactions/transaction-finality.mdx +++ b/pages/stack/transactions/transaction-finality.mdx @@ -77,7 +77,7 @@ This misconception often arises due to the OP Stack's Standard Bridge, which inc Another misconception related to the belief that [finalization takes 7 days](#misconception-transactions-take-7-days-to-finalize) is that **Fault Proof challenges** created in response to withdrawals in the Standard Bridge can reorganize the OP Stack chain. **This is incorrect.** OP Stack transactions are not reorganized in response to Fault Proof challenges. -The [Standard Bridge](/app-developers/bridging/standard-bridge) is a bridge application that is included by default with any OP Stack chain and connects the chain to its "parent" blockchain (usually Ethereum). It offers a high level of security for ETH and ERC-20 tokens moved through the bridge. +The [Standard Bridge](/app-developers/guides/bridging/standard-bridge) is a bridge application that is included by default with any OP Stack chain and connects the chain to its "parent" blockchain (usually Ethereum). It offers a high level of security for ETH and ERC-20 tokens moved through the bridge. When using the Standard Bridge, users who send ETH or ERC-20 tokens to Ethereum must first burn those tokens on the OP Stack chain and then create a **withdrawal claim** on Ethereum. diff --git a/pages/stack/transactions/withdrawal-flow.mdx b/pages/stack/transactions/withdrawal-flow.mdx index 162f1cb52..ef18e990b 100644 --- a/pages/stack/transactions/withdrawal-flow.mdx +++ b/pages/stack/transactions/withdrawal-flow.mdx @@ -33,7 +33,7 @@ Withdrawals require the user to submit three transactions: 3. **Withdrawal finalizing transaction**, which the user submits on L1 after the fault challenge period has passed, to actually run the transaction on L1. - You can see an example of how to implement this process [in the bridging tutorials](/app-developers/tutorials/bridging/cross-dom-bridge-erc20). + You can see an example of how to implement this process [in the bridging tutorials](/app-developers/tutorials/bridging/cross-domain-erc20). ## Withdrawal initiating transaction diff --git a/pages/superchain/blockspace-charter.mdx b/pages/superchain/blockspace-charter.mdx index 8a75ae8d7..68530d5f7 100644 --- a/pages/superchain/blockspace-charter.mdx +++ b/pages/superchain/blockspace-charter.mdx @@ -22,7 +22,7 @@ Blockspace Charters provide the essential technical and governance framework for These documents establish standards to ensure security, transparency, and long-term sustainability. This guide offers an overview of each charter, explains how chains can achieve compliance to be considered Standard Chains, and how the charters tie into the Superchain Registry. -This doc mostly covers the charters, but references the Superchain Registry as they are all deeply connected. Read more about the Superchain Registry [here](/superchain/superchain-registry). +This doc mostly covers the charters, but references the Superchain Registry as they are all deeply connected. Read more about the Superchain Registry [here](/chain-operators/reference/superchain-registry). ## Summary of charters @@ -120,4 +120,4 @@ The Superchain Registry serves as the source of truth for who's in the Superchai * **Validates version and configuration:** The registry validates that chains align with governance-approved standards in the form of the Standard Rollup Charter. * **Indicates adherence to the Standard Rollup Charter:** Once the registry validates that a chain meets the standard criteria, it promotes it to "Standard" by setting its `superchain_level` value to `2`. -By integrating with the Standard Rollup Charter, the registry offers an automated and transparent validation system. This ensures chains can independently demonstrate compliance. For additional details, refer to the [Superchain Registry documentation](/superchain/superchain-registry). +By integrating with the Standard Rollup Charter, the registry offers an automated and transparent validation system. This ensures chains can independently demonstrate compliance. For additional details, refer to the [Superchain Registry documentation](/chain-operators/reference/superchain-registry). diff --git a/pages/superchain/networks.mdx b/pages/superchain/networks.mdx index 97647a700..1bc93cf57 100644 --- a/pages/superchain/networks.mdx +++ b/pages/superchain/networks.mdx @@ -23,7 +23,7 @@ This reference guide provides a listing of the different OP Stack networks and p The public RPC URLs provided below are rate limited and do not support websocket connections. - If you are experiencing rate limiting issues or need websocket functionality, consider [running your own node](/operators/node-operators/rollup-node) or signing up for a [third-party RPC provider](/app-developers/tools/connect/rpc-providers). + If you are experiencing rate limiting issues or need websocket functionality, consider [running your own node](/node-operators/reference/architecture/rollup-node) or signing up for a [third-party RPC provider](/app-developers/reference/rpc). ## OP Mainnet diff --git a/pages/superchain/privileged-roles.mdx b/pages/superchain/privileged-roles.mdx index d06a96be0..cb69312c2 100644 --- a/pages/superchain/privileged-roles.mdx +++ b/pages/superchain/privileged-roles.mdx @@ -91,7 +91,7 @@ The System Config Owner is an address that can be used to change the values with ### Addresses -The System Config owner is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). +The System Config owner is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). ## Batcher @@ -112,7 +112,7 @@ OP Stack chains nodes will look for transactions from this address to find new b ### Addresses -The batcher address is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). +The batcher address is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). ## Proposer @@ -140,13 +140,13 @@ The Guardian role is responsible for changing the respected dispute game type if ### Addresses -The proposer address is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). +The proposer address is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). ## Challenger ### Description -The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role. It is important to note that this is different from the [`op-challenger`](/stack/fault-proofs/challenger) services that challenges invalid output roots. +The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role. It is important to note that this is different from the [`op-challenger`](/concepts/architecture/fault-proofs/op-challenger) services that challenges invalid output roots. ### Capabilities diff --git a/pages/superchain/standard-configuration.mdx b/pages/superchain/standard-configuration.mdx index e169ae770..37de854ed 100644 --- a/pages/superchain/standard-configuration.mdx +++ b/pages/superchain/standard-configuration.mdx @@ -23,7 +23,7 @@ import { Callout } from 'nextra/components' The standard configuration within the OP Stack ensures that chains deployed in the Superchain ecosystem adhere to a consistent set of technical and governance parameters. This standardization is critical for Superchain interoperability, network security, and ease of upgrading your chain. -This guide provides an in-depth explanation of what defines a standard configuration, how the [op-deployer](/operators/chain-operators/tools/op-deployer) aids standardization, and why adhering to these standards is essential. +This guide provides an in-depth explanation of what defines a standard configuration, how the [op-deployer](/chain-operators/tools/op-deployer) aids standardization, and why adhering to these standards is essential. ## What is a Standard chain? @@ -45,7 +45,7 @@ Chains that deviate from these principles, such as introducing unsupported featu ## Role of op-deployer in standardization -The [op-deployer](/operators/chain-operators/tools/op-deployer) is a powerful tool designed to automate and streamline the deployment of standard configuration-compliant chains. +The [op-deployer](/chain-operators/tools/op-deployer) is a powerful tool designed to automate and streamline the deployment of standard configuration-compliant chains. Key features include: * **Default values:** @@ -89,11 +89,11 @@ Certain configurations are explicitly not part of the standard setup. For exampl * **Modified system contracts:** Any alterations to core system contracts break standardization and aren't supported in the official OP Stack specification. -For a detailed list of standard configurations, refer to the [Standard rollup configuration page](/superchain/blockspace-charter). +For a detailed list of standard configurations, refer to the [Standard rollup configuration page](/governance/blockspace-charter). ## Superchain Registry -The [Superchain Registry](/superchain/superchain-registry) is the authoritative index of all chains within the Superchain ecosystem. It ensures: +The [Superchain Registry](/chain-operators/reference/superchain-registry) is the authoritative index of all chains within the Superchain ecosystem. It ensures: * **Transparency:** All registered chains are publicly listed with their configurations. @@ -110,10 +110,10 @@ The [Superchain Registry](/superchain/superchain-registry) is the authoritative Familiarize yourself with the [OP Stack specifications](https://specs.optimism.io/protocol/configurability.html?utm_source=op-docs&utm_medium=docs) and the Blockspace Charter. 2. **Use op-deployer:** - Leverage [op-deployer](/operators/chain-operators/tools/op-deployer) to ensure your chain aligns with standard configurations. + Leverage [op-deployer](/chain-operators/tools/op-deployer) to ensure your chain aligns with standard configurations. 3. **Verify deployment with op-validator:** - Use [op-validator](/operators/chain-operators/tools/op-validator) to verify your chain's deployment. + Use [op-validator](/chain-operators/tools/op-validator) to verify your chain's deployment. 4. **Seek guidance:** Consult the [developer support](https://github.com/ethereum-optimism/developers/discussions) team for clarifications on standardization. @@ -124,5 +124,5 @@ The [Superchain Registry](/superchain/superchain-registry) is the authoritative ## References * [OP Stack Specifications](https://specs.optimism.io/protocol/configurability.html?utm_source=op-docs&utm_medium=docs) -* [Blockspace Charter](/superchain/blockspace-charter) +* [Blockspace Charter](/governance/blockspace-charter) * [Superchain Registry](https://github.com/ethereum-optimism/superchain-registry) diff --git a/pages/superchain/superchain-registry.mdx b/pages/superchain/superchain-registry.mdx index ce1df41f8..5f8b1ee29 100644 --- a/pages/superchain/superchain-registry.mdx +++ b/pages/superchain/superchain-registry.mdx @@ -32,10 +32,10 @@ An OP Stack Standard Rollup follows the Standard Rollup Charter. This configuration targets the Optimism Collective's highest bar for security, uptime, and decentralization. -You can find more details in the [Standard Rollup Charter documentation](/superchain/blockspace-charter). +You can find more details in the [Standard Rollup Charter documentation](/governance/blockspace-charter). - We **strongly** recommend using the [op-deployer](/operators/chain-operators/tools/op-deployer) to deploy L1 contracts and generate the L2 genesis file that meets the configuration requirements outlined in the [Standard Rollup Charter](/superchain/blockspace-charter). + We **strongly** recommend using the [op-deployer](/chain-operators/tools/op-deployer) to deploy L1 contracts and generate the L2 genesis file that meets the configuration requirements outlined in the [Standard Rollup Charter](/governance/blockspace-charter). ## Joining the Registry From 1daece2bf2ffaea3d6a90be2d5de16a37a880bca Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 15 Sep 2025 08:58:55 -0700 Subject: [PATCH 3/6] custom gas token doc --- pages/stack/features/custom-gas-tokens.mdx | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 pages/stack/features/custom-gas-tokens.mdx diff --git a/pages/stack/features/custom-gas-tokens.mdx b/pages/stack/features/custom-gas-tokens.mdx new file mode 100644 index 000000000..812561614 --- /dev/null +++ b/pages/stack/features/custom-gas-tokens.mdx @@ -0,0 +1,97 @@ +--- +title: Custom gas tokens +description: Learn about custom gass tokens +lang: en-US +content_type: notice +topic: custom-gas-tokens +personas: + - chain-operator +categories: + - security + - protocol + - infrastructure + - interoperability +is_imported_content: 'false' +--- + +# Custom Gas Token: Your Guide to Using Native Assets for Gas + +Welcome! This guide explains how Custom Gas Token (CGT) works and what it means for you as a user or developer working with OP Stack chains. + +## What is Custom Gas Token? + +Think of Custom Gas Token as a way for blockchain networks to use their own special currency instead of ETH to pay for transaction fees. It's like a store that accepts its own gift cards instead of cash – you can still buy what you need, but you use a different payment method. + +Instead of paying gas fees with ETH, you'll pay with the network's native token. This opens up exciting possibilities for different types of blockchain economics and features. + +## How it works + +### The basics + +When a network enables Custom Gas Token, you can no longer use ETH to pay for transactions. Instead, the network's own token becomes the currency for gas fees. This change allows networks to create unique ways to distribute and manage their tokens, opening up new economic possibilities. + +### Key components you should know about + +**Native Asset Liquidity** +This is like a big vault that holds the network's native tokens. Think of it as the main supply storage. + +**Liquidity Controller** +This acts like a smart manager that controls who can access tokens from the vault. It ensures only authorized systems can mint (create) or burn (destroy) tokens. + +**Wrapped Native Asset (WNA)** +Just like WETH wraps ETH, WNA wraps the native token so it can work with applications that expect ERC-20 tokens. + +## What this means for you + +### As a regular user + +Getting native tokens depends on the specific network you're using. You might exchange other tokens for native tokens through a converter, bridge tokens from another blockchain, or receive them directly from the network. + +Once you have native tokens, using them is straightforward. They work just like ETH – they automatically get deducted when you make transactions. However, since each network handles native tokens differently, you'll want to check the network's documentation to understand how to move tokens in and out. + +### As a developer + +There are some key differences when working with CGT-enabled chains compared to ETH-based chains. Standard ETH deposit and withdrawal functions are disabled, so you'll need to integrate with the network's specific token management system. Native token acquisition methods also vary by implementation. + +The good news is that much stays the same. Transaction structure and gas calculation work similarly to what you're used to. Smart contracts deploy and function normally, and most development tools work without changes. + +## Benefits of Custom Gas Token + +Custom Gas Token opens up new possibilities for both networks and users. Networks can create unique economic models, use existing tokens as native assets, implement custom supply management, and enable novel bridging mechanisms. This flexibility allows for innovation in how blockchain economics work. + +For users, the main advantages include paying gas with tokens you already hold, participating in network-specific economics, and accessing unique features tied to the native token. This can make the user experience more integrated and potentially more cost-effective depending on the token economics. + +## Things to keep in mind + +### Flexibility comes with variety + +Since each CGT-enabled network can implement token management differently, it's important to read each network's specific documentation. You'll want to understand whether the native token comes from an existing ERC-20, a new token, or other mechanisms. If you're moving tokens between networks, make sure you understand and verify the security of the bridging mechanism being used. + +### Security considerations + +Only authorized systems can manage the token supply, with the network's governance controlling who gets minting permissions. This makes smart contract audits especially important for token management contracts. The security model is designed to prevent unauthorized token creation or destruction. + +## Getting started + +Getting started with a Custom Gas Token network involves a few straightforward steps. First, choose an OP Stack network that uses Custom Gas Token. Next, follow the network's specific process to acquire native tokens. Once you have tokens, you can start transacting using them just like you'd use ETH for gas. Finally, explore any unique features that the network offers tied to their native tokens. + +## Common scenarios + +### Scenario 1: L1 ERC-20 as native token +If the network uses an existing L1 token, you'll bridge your L1 tokens to the L2 network where they become your gas currency. You can then use these bridged tokens for all transactions on the network. + +### Scenario 2: L2-native token +If the network created its own token, you'll need to acquire tokens through the network's specific distribution method. These tokens often serve dual purposes, functioning both for utility or governance and as the gas payment method. Many of these networks also offer an ERC-20 version for use in DeFi applications. + +### Scenario 3: No existing token dependency +Some networks create entirely new economic models where tokens might be earned through network participation. These networks often have unique supply schedules and economics that differ significantly from traditional models. + +## Need help? + +If you need assistance, start by checking your specific network's documentation for detailed instructions. Look for network-specific developer guides and examples if you're building applications. You can also join the network's community channels for support from other users and developers. + +Remember, while the core concept is consistent across CGT networks, implementation details vary. Always consult your specific network's documentation for the most accurate and up-to-date information. + +--- + +*This technology enables exciting new possibilities for blockchain economics while maintaining the security and functionality you expect from OP Stack networks.* \ No newline at end of file From 7ad4f7c5876d91a1dc207dd71afeb1cdcbbe5a4c Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Mon, 15 Sep 2025 08:59:12 -0700 Subject: [PATCH 4/6] Auto-fix: Update breadcrumbs, spelling dictionary and other automated fixes --- pages/stack/features/custom-gas-tokens.mdx | 7 +- words.txt | 239 +++++++++++---------- 2 files changed, 125 insertions(+), 121 deletions(-) diff --git a/pages/stack/features/custom-gas-tokens.mdx b/pages/stack/features/custom-gas-tokens.mdx index 812561614..4d807492c 100644 --- a/pages/stack/features/custom-gas-tokens.mdx +++ b/pages/stack/features/custom-gas-tokens.mdx @@ -78,12 +78,15 @@ Getting started with a Custom Gas Token network involves a few straightforward s ## Common scenarios ### Scenario 1: L1 ERC-20 as native token + If the network uses an existing L1 token, you'll bridge your L1 tokens to the L2 network where they become your gas currency. You can then use these bridged tokens for all transactions on the network. ### Scenario 2: L2-native token + If the network created its own token, you'll need to acquire tokens through the network's specific distribution method. These tokens often serve dual purposes, functioning both for utility or governance and as the gas payment method. Many of these networks also offer an ERC-20 version for use in DeFi applications. ### Scenario 3: No existing token dependency + Some networks create entirely new economic models where tokens might be earned through network participation. These networks often have unique supply schedules and economics that differ significantly from traditional models. ## Need help? @@ -92,6 +95,6 @@ If you need assistance, start by checking your specific network's documentation Remember, while the core concept is consistent across CGT networks, implementation details vary. Always consult your specific network's documentation for the most accurate and up-to-date information. ---- +*** -*This technology enables exciting new possibilities for blockchain economics while maintaining the security and functionality you expect from OP Stack networks.* \ No newline at end of file +*This technology enables exciting new possibilities for blockchain economics while maintaining the security and functionality you expect from OP Stack networks.* diff --git a/words.txt b/words.txt index 55af6d53a..303445646 100644 --- a/words.txt +++ b/words.txt @@ -1,7 +1,7 @@ -accountqueue ACCOUNTQUEUE -accountslots +accountqueue ACCOUNTSLOTS +accountslots ACDC ADDI ADDIU @@ -9,58 +9,58 @@ ADDU airgap Allnodes allocs -alphanet Alphanet -alphanets +alphanet Alphanets +alphanets altda ANDI Ankr Apeworx Arweave authrpc -autorelay Autorelay +autorelay autorelayer basefee bcde -betanet Betanet -betanets +betanet Betanets +betanets BGEZ BGTZ Biconomy BLEZ -blobpool BLOBPOOL +blobpool blobspace Blockdaemon blockhash blocklists -blocklogs BLOCKLOGS -blockprofilerate +blocklogs BLOCKPROFILERATE +blockprofilerate Blockscout -blockspace Blockspace +blockspace blocktime -blocktimes Blocktimes -bloomfilter +blocktimes BLOOMFILTER +bloomfilter BLTZ Bootcamp bootnode -bootnodes -Bootnodes BOOTNODES +Bootnodes +bootnodes bottlenecked -brotli Brotli -callouts +brotli Callouts +callouts CCIP cdef Celestia @@ -73,71 +73,71 @@ chaosnet Chugsplash Clabby codebases -collateralized Collateralized +collateralized compr Comprensive -computependingblock COMPUTEPENDINGBLOCK +computependingblock confs corsdomain counterfactually -crosschain Crosschain +crosschain Crossmint daserver -datacap DATACAP -datadir +datacap DATADIR +datadir Defi Defillama's delegatecall -devnet Devnet -devnets +devnet Devnets +devnets devs direnv -disabletxpoolgossip DISABLETXPOOLGOSSIP -discv +disabletxpoolgossip Discv +discv DIVU Drand dripcheck Drippie Eigen EIPs -enabledeprecatedpersonal ENABLEDEPRECATEDPERSONAL +enabledeprecatedpersonal enginekind -erigon Erigon -etherbase +erigon ETHERBASE +etherbase Ethernity Ethernow -ethstats ETHSTATS -evmtimeout +ethstats EVMTIMEOUT +evmtimeout executability exfiltrate -exitwhensynced EXITWHENSYNCED +exitwhensynced extensibly -extradata EXTRADATA +extradata Farcaster Faultproof -fdlimit FDLIMIT +fdlimit flashblock flashblock's -flashblocks -Flashblocks FLASHBLOCKS +Flashblocks +flashblocks Flashbots forkable forkchoice @@ -145,51 +145,52 @@ FPVM FPVMs Fraxtal Funct -gascap GASCAP +gascap gaslessly -gcmode +gass GCMODE +gcmode Gelato gifs -globalqueue GLOBALQUEUE -globalslots +globalqueue GLOBALSLOTS +globalslots gokzg growthepie hardfork hardforks -healthcheck HEALTHCHECK +healthcheck healthchecks -historicalrpc HISTORICALRPC -historicalrpctimeout +historicalrpc HISTORICALRPCTIMEOUT -holesky -Holesky +historicalrpctimeout HOLESKY +Holesky +holesky IERC -ignoreprice IGNOREPRICE +ignoreprice Immunefi -inator Inator -influxdbv +inator INFLUXDBV +influxdbv initcode -ipcdisable IPCDISABLE +ipcdisable ipcfile -ipcpath IPCPATH +ipcpath IPFS JALR -journalremotes JOURNALREMOTES -jspath +journalremotes JSPATH +jspath jwtsecret Keccak leveldb @@ -198,34 +199,34 @@ Lisk logfile logfmt Mainnets -maxage MAXAGE -maxbackups +maxage MAXBACKUPS -maxpeers +maxbackups MAXPEERS -maxpendpeers +maxpeers MAXPENDPEERS -maxprice +maxpendpeers MAXPRICE -memprofilerate +maxprice MEMPROFILERATE -merkle +memprofilerate Merkle +merkle MFHI MFLO Mgas Minato -minfreedisk MINFREEDISK -minsuggestedpriorityfee +minfreedisk MINSUGGESTEDPRIORITYFEE +minsuggestedpriorityfee Mintable Mintplex MIPSEVM Mitigations -monitorism Monitorism +monitorism Moralis Mordor MOVN @@ -234,146 +235,146 @@ MTHI MTLO MULT multiaddr -multichain Multichain +multichain multiclient multisigs MULTU Nethermind -netrestrict NETRESTRICT -networkid +netrestrict NETWORKID -newpayload +networkid NEWPAYLOAD +newpayload nextra -nocompaction NOCOMPACTION -nodekey +nocompaction NODEKEY -nodekeyhex +nodekey NODEKEYHEX +nodekeyhex nodename Nodies -nodiscover NODISCOVER -nolocals +nodiscover NOLOCALS -noprefetch +nolocals NOPREFETCH -nopruning +noprefetch NOPRUNING -nosyncserve +nopruning NOSYNCSERVE +nosyncserve Numba NVME -offchain Offchain +offchain onlyreqtostatic opchaina opchainb -opcm OPCM +opcm Openfort oplabs opnode's outfile outperformance pcscdpath -pectra Pectra +pectra Pectra's -peerstore Peerstore +peerstore peerstores -permissioned Permissioned +permissioned permissioning -permissionless Permissionless +permissionless permissionlessly Perps Peta Pimlico POAP POAPs -pprof PPROF -precommitments +pprof Precommitments +precommitments preconfigured predeploy -predeployed Predeployed -predeploys +predeployed Predeploys +predeploys prefunded -preimage Preimage -preimages +preimage PREIMAGES +preimages preinstall -preinstalls Preinstalls -prestate +preinstalls Prestate +prestate prestates PREVRANDAO -pricebump PRICEBUMP -pricelimit +pricebump PRICELIMIT +pricelimit productionize productionized Protip -proxied Proxied -proxyd +proxied Proxyd +proxyd Pyth Pyth's QRNG -quicknode Quicknode +quicknode quickstarts rebalancing reemit Reemitting -regenesis Regenesis +regenesis Reimagine -rejournal REJOURNAL -remotedb +rejournal REMOTEDB +remotedb Reown Reown's replayability replayor reposts reproven -requiredblocks REQUIREDBLOCKS +requiredblocks rollouts -rollups Rollups +rollups Routescan rpckind -rpcprefix RPCPREFIX +rpcprefix rpcs RPGF -runbooks Runbooks +runbooks RWAs safedb Schnorr -sepolia -Sepolia SEPOLIA +Sepolia +sepolia seqnr -sequencerhttp SEQUENCERHTTP +sequencerhttp serv signup SLLV @@ -382,8 +383,8 @@ SLTIU SLTU smartcard snapshotlog -snapsync Snapsync +snapsync solady Solana Soneium @@ -391,8 +392,8 @@ soyboy Spearbit SRAV SRLV -stablecoins Stablecoins +stablecoins statefulset structs subcomponents @@ -401,21 +402,21 @@ subheaders subsecond SUBU Sunnyside -superchain -Superchain SUPERCHAIN -superchainerc +Superchain +superchain Superchain's +superchainerc Superlend Superloans Superscan Superseed -supersim Supersim -syncmode +supersim SYNCMODE -synctarget +syncmode SYNCTARGET +synctarget syscalls SYSCON thirdweb @@ -429,8 +430,8 @@ Twei txfeecap txmgr txns -txpool TXPOOL +txpool txproxy txproxyd uncensorable @@ -440,21 +441,21 @@ Unichain Unprotect unsubmitted UPNP -verkle VERKLE -vhosts +verkle VHOSTS -viem +vhosts Viem -viem's +viem Viem's -vmdebug +viem's VMDEBUG -vmodule +vmdebug VMODULE +vmodule xlarge XORI ZKPs ZKVM -zora Zora +zora From 1049c18a779911b260bf9b4ed3ce18f26a0a38c9 Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Fri, 19 Sep 2025 09:09:23 -0700 Subject: [PATCH 5/6] Fixes --- pages/stack/features/custom-gas-tokens.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/stack/features/custom-gas-tokens.mdx b/pages/stack/features/custom-gas-tokens.mdx index 4d807492c..fefaddb5e 100644 --- a/pages/stack/features/custom-gas-tokens.mdx +++ b/pages/stack/features/custom-gas-tokens.mdx @@ -16,7 +16,7 @@ is_imported_content: 'false' # Custom Gas Token: Your Guide to Using Native Assets for Gas -Welcome! This guide explains how Custom Gas Token (CGT) works and what it means for you as a user or developer working with OP Stack chains. +This guide explains how Custom Gas Token (CGT) works and what it means for you as a user or developer working with OP Stack chains. ## What is Custom Gas Token? From e2ecdbc14b2d29d29ddaecd62a99669ef60bb264 Mon Sep 17 00:00:00 2001 From: Bradley Camacho <42678939+bradleycamacho@users.noreply.github.com> Date: Wed, 24 Sep 2025 10:43:42 -0700 Subject: [PATCH 6/6] Revert "Merge branch 'New-redirects' into custom-ga--tokens" This reverts commit 9f20c28d7a5809737f42ed312cbd97bfa6bcb810, reversing changes made to 1049c18a779911b260bf9b4ed3ce18f26a0a38c9. --- pages/app-developers/bridging.mdx | 8 +- pages/app-developers/bridging/basics.mdx | 8 +- .../app-developers/bridging/custom-bridge.mdx | 4 +- pages/app-developers/bridging/messaging.mdx | 4 +- .../bridging/standard-bridge.mdx | 12 +- pages/app-developers/building-apps.mdx | 10 +- pages/app-developers/testing-apps.mdx | 6 +- pages/app-developers/tools.mdx | 26 +- pages/app-developers/tools/build.mdx | 18 +- .../tools/build/account-abstraction.mdx | 2 +- .../tools/build/block-explorers.mdx | 2 +- .../tools/build/ecosystem-overview.mdx | 2 +- pages/app-developers/tools/build/oracles.mdx | 2 +- pages/app-developers/tools/connect.mdx | 4 +- .../tools/connect/rpc-providers.mdx | 4 +- pages/app-developers/tools/supersim.mdx | 6 +- pages/app-developers/transactions.mdx | 10 +- .../app-developers/transactions/estimates.mdx | 2 +- pages/app-developers/tutorials.mdx | 42 +-- pages/app-developers/tutorials/bridging.mdx | 10 +- .../bridging/cross-dom-bridge-erc20.mdx | 8 +- .../bridging/cross-dom-bridge-eth.mdx | 6 +- .../tutorials/bridging/cross-dom-solidity.mdx | 6 +- pages/app-developers/tutorials/interop.mdx | 12 +- pages/app-developers/tutorials/supersim.mdx | 24 +- .../tutorials/supersim/chain-env.mdx | 6 +- .../tutorials/supersim/chain-env/chain-a.mdx | 2 +- .../tutorials/supersim/chain-env/chain-b.mdx | 2 +- .../supersim/chain-env/included-contracts.mdx | 4 +- .../supersim/deposit-transactions.mdx | 6 +- .../tutorials/supersim/getting-started.mdx | 4 +- .../supersim/getting-started/first-steps.mdx | 4 +- .../supersim/getting-started/installation.mdx | 2 +- .../tutorials/supersim/reference.mdx | 4 +- .../tutorials/supersim/reference/fork.mdx | 4 +- .../tutorials/supersim/reference/vanilla.mdx | 6 +- .../app-developers/tutorials/transactions.mdx | 6 +- .../transactions/sdk-estimate-costs.mdx | 4 +- .../tutorials/transactions/sdk-trace-txns.mdx | 4 +- pages/connect/contribute.mdx | 2 +- pages/connect/contribute/docs-contribute.mdx | 4 +- pages/connect/contribute/stack-contribute.mdx | 4 +- pages/connect/contribute/style-guide.mdx | 30 +- pages/connect/resources.mdx | 2 +- pages/index.mdx | 26 +- pages/interop/compatible-tokens.mdx | 10 +- pages/interop/estimate-costs.mdx | 8 +- pages/interop/explainer.mdx | 12 +- pages/interop/get-started.mdx | 16 +- pages/interop/interop-security.mdx | 6 +- pages/interop/message-expiration.mdx | 14 +- pages/interop/message-passing.mdx | 8 +- pages/interop/op-supervisor.mdx | 4 +- pages/interop/predeploy.mdx | 6 +- pages/interop/reading-logs.mdx | 10 +- pages/interop/reorg.mdx | 2 +- pages/interop/starter-kit.mdx | 4 +- pages/interop/superchain-erc20.mdx | 8 +- pages/interop/superchain-eth-bridge.mdx | 10 +- pages/interop/tools.mdx | 4 +- pages/interop/tools/devnet.mdx | 6 +- pages/interop/tutorials.mdx | 16 +- .../tutorials/bridge-crosschain-eth.mdx | 14 +- .../tutorials/custom-superchain-erc20.mdx | 20 +- .../tutorials/deploy-superchain-erc20.mdx | 14 +- pages/interop/tutorials/event-contests.mdx | 2 +- pages/interop/tutorials/event-reads.mdx | 2 +- pages/interop/tutorials/message-passing.mdx | 12 +- .../message-passing/manual-relay.mdx | 8 +- .../tutorials/transfer-superchainERC20.mdx | 4 +- .../custom-bridge.mdx | 20 +- pages/interop/tutorials/verify-messages.mdx | 2 +- .../notices/custom-gas-tokens-deprecation.mdx | 69 ----- pages/notices/pectra-changes.mdx | 2 +- pages/notices/pectra-fees.mdx | 6 +- .../superchain-withdrawal-pause-test.mdx | 2 +- pages/notices/upgrade-13.mdx | 2 +- pages/notices/upgrade-14.mdx | 2 +- pages/notices/upgrade-15.mdx | 2 +- pages/operators/chain-operators.mdx | 12 +- .../chain-operators/architecture.mdx | 15 +- .../chain-operators/configuration.mdx | 8 +- .../chain-operators/configuration/batcher.mdx | 6 +- .../configuration/overview.mdx | 8 +- .../configuration/proposer.mdx | 4 +- .../chain-operators/configuration/rollup.mdx | 2 +- pages/operators/chain-operators/deploy.mdx | 4 +- .../chain-operators/deploy/overview.mdx | 4 +- .../deploy/proposer-setup-guide.mdx | 12 +- .../chain-operators/deploy/sequencer-node.mdx | 10 +- .../deploy/smart-contracts.mdx | 2 +- .../chain-operators/deploy/spin-batcher.mdx | 12 +- .../deploy/validate-deployment.mdx | 10 +- pages/operators/chain-operators/features.mdx | 10 +- .../chain-operators/features/alt-da-mode.mdx | 2 +- .../operators/chain-operators/management.mdx | 12 +- .../management/best-practices.mdx | 2 +- .../management/key-management.mdx | 4 +- .../chain-operators/management/operations.mdx | 2 +- .../chain-operators/management/snap-sync.mdx | 2 +- .../management/troubleshooting.mdx | 2 +- .../operators/chain-operators/self-hosted.mdx | 36 +-- pages/operators/chain-operators/tools.mdx | 23 +- .../tools/chain-monitoring.mdx | 4 +- .../chain-operators/tools/op-challenger.mdx | 234 -------------- .../chain-operators/tools/op-deployer.mdx | 2 +- .../chain-operators/tools/proxyd.mdx | 4 +- pages/operators/chain-operators/tutorials.mdx | 18 +- .../tutorials/absolute-prestate.mdx | 10 +- .../tutorials/chain-dev-net.mdx | 4 +- .../tutorials/create-l2-rollup.mdx | 6 +- .../tutorials/dispute-games.mdx | 10 +- .../tutorials/integrating-da-layer.mdx | 4 +- .../tutorials/migrating-permissionless.mdx | 18 +- pages/operators/node-operators.mdx | 16 +- .../operators/node-operators/architecture.mdx | 16 +- .../node-operators/configuration.mdx | 6 +- .../configuration/base-config.mdx | 59 +++- pages/operators/node-operators/json-rpc.mdx | 2 +- pages/operators/node-operators/management.mdx | 12 +- .../node-operators/management/blobs.mdx | 2 +- .../node-operators/management/snap-sync.mdx | 2 +- .../node-operators/network-upgrades.mdx | 2 +- .../operators/node-operators/rollup-node.mdx | 48 +-- pages/operators/node-operators/tutorials.mdx | 6 +- .../tutorials/node-from-docker.mdx | 2 +- .../tutorials/node-from-source.mdx | 2 +- .../tutorials/run-node-from-source.mdx | 292 ++++++++++++------ pages/stack/beta-features.mdx | 2 +- pages/stack/beta-features/alt-da-mode.mdx | 2 +- pages/stack/components.mdx | 2 +- pages/stack/differences.mdx | 6 +- pages/stack/fact-sheet.mdx | 2 +- pages/stack/fault-proofs.mdx | 12 +- pages/stack/fault-proofs/cannon.mdx | 2 +- pages/stack/fault-proofs/challenger.mdx | 4 +- pages/stack/fault-proofs/explainer.mdx | 8 +- .../send-raw-transaction-conditional.mdx | 2 +- pages/stack/getting-started.mdx | 4 +- pages/stack/opcm.mdx | 2 +- pages/stack/research/block-time-research.mdx | 2 +- pages/stack/rollup.mdx | 6 +- pages/stack/rollup/overview.mdx | 10 +- pages/stack/security.mdx | 4 +- pages/stack/security/faq-sec-model.mdx | 2 +- pages/stack/security/faq.mdx | 4 +- pages/stack/security/pause.mdx | 2 +- .../smart-contracts/op-deployer-upgrade.mdx | 2 +- .../stack/smart-contracts/smart-contracts.mdx | 2 +- pages/stack/transactions.mdx | 14 +- pages/stack/transactions/fees.mdx | 12 +- .../transactions/transaction-finality.mdx | 2 +- pages/stack/transactions/withdrawal-flow.mdx | 2 +- pages/superchain/blockspace-charter.mdx | 4 +- pages/superchain/networks.mdx | 2 +- pages/superchain/privileged-roles.mdx | 8 +- pages/superchain/standard-configuration.mdx | 14 +- pages/superchain/superchain-registry.mdx | 4 +- public/_redirects | 205 ------------ 159 files changed, 832 insertions(+), 1193 deletions(-) delete mode 100644 pages/notices/custom-gas-tokens-deprecation.mdx delete mode 100644 pages/operators/chain-operators/tools/op-challenger.mdx diff --git a/pages/app-developers/bridging.mdx b/pages/app-developers/bridging.mdx index ad15c06aa..4720e5250 100644 --- a/pages/app-developers/bridging.mdx +++ b/pages/app-developers/bridging.mdx @@ -28,8 +28,8 @@ Contracts on one chain can trigger contract functions on the other chain, which The Standard Token Bridge for OP Mainnet even uses this same message-passing infrastructure under the hood. - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/bridging/basics.mdx b/pages/app-developers/bridging/basics.mdx index b8011f4a3..12ac5f3a8 100644 --- a/pages/app-developers/bridging/basics.mdx +++ b/pages/app-developers/bridging/basics.mdx @@ -39,7 +39,7 @@ All of this is easily accessible with a simple, clean API. Ready to start bridging? Check out these tutorials to get up to speed fast. -* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) -* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-domain-eth) -* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-token-bridge) -* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token) +* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) diff --git a/pages/app-developers/bridging/custom-bridge.mdx b/pages/app-developers/bridging/custom-bridge.mdx index da14da1b2..7c8d21493 100644 --- a/pages/app-developers/bridging/custom-bridge.mdx +++ b/pages/app-developers/bridging/custom-bridge.mdx @@ -25,7 +25,7 @@ This guide provides important information you should be aware of when building a Custom bridges can bring a significant amount of complexity and risk to any project. Before you commit to a custom bridge, be sure that the [Standard Bridge](./standard-bridge) definitely does not support your use case. - [Building a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) is often sufficient for projects that need more flexibility. + [Building a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) is often sufficient for projects that need more flexibility. ## Guidelines @@ -41,7 +41,7 @@ You can read more about the design of the Standard Bridge in the guide on [Using ## The Superchain Token List -The [Superchain Token List](/app-developers/reference/tokens/tokenlist) exists to help users and developers find the right bridged representations of tokens native to another blockchain. +The [Superchain Token List](/superchain/tokenlist) exists to help users and developers find the right bridged representations of tokens native to another blockchain. Once you've built and tested your custom bridge, make sure to register any tokens meant to flow through this bridge by [making a pull request against the Superchain Token List repository](https://github.com/ethereum-optimism/ethereum-optimism.github.io#adding-a-token-to-the-list). You **must** deploy your bridge to OP Sepolia before it can be added to the Superchain Token List. diff --git a/pages/app-developers/bridging/messaging.mdx b/pages/app-developers/bridging/messaging.mdx index e0f8a220c..e96057054 100644 --- a/pages/app-developers/bridging/messaging.mdx +++ b/pages/app-developers/bridging/messaging.mdx @@ -25,7 +25,7 @@ This page explains how bridging works, how to use it, and what to watch out for. This is a high-level overview of the bridging process. - For a step-by-step tutorial on how to send data between L1 and L2, check out the [Solidity tutorial](/app-developers/tutorials/bridging/cross-domain-contracts). + For a step-by-step tutorial on how to send data between L1 and L2, check out the [Solidity tutorial](/app-developers/tutorials/bridging/cross-dom-solidity). ## Understanding contract calls @@ -130,7 +130,7 @@ contract MyContract { ``` - You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/reference/addresses) page. + You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/superchain/addresses) page. ## Communication speed diff --git a/pages/app-developers/bridging/standard-bridge.mdx b/pages/app-developers/bridging/standard-bridge.mdx index fa65f9ec2..0f5a934cc 100644 --- a/pages/app-developers/bridging/standard-bridge.mdx +++ b/pages/app-developers/bridging/standard-bridge.mdx @@ -206,19 +206,19 @@ Users simply need to trigger and send ETH to the [`bridgeETH`](https://github.co Users can also deposit ETH from Ethereum to OP Mainnet by sending a basic ETH transfer from an EOA to the `L1StandardBridgeProxy`. This works because the `L1StandardBridgeProxy` contains a [`receive`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L119-L121) function. - You can find the mainnet and testnet addresses on the [Contract Addresses](/reference/addresses) page. + You can find the mainnet and testnet addresses on the [Contract Addresses](/superchain/addresses) page. ## Tutorials -* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) -* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-domain-eth) -* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-token-bridge) -* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/custom-token-bridge) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token) +* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) ## Superchain Token List -The [Superchain Token List](/app-developers/reference/tokens/tokenlist) exists to help users discover the right bridged token addresses for any given native token. +The [Superchain Token List](/superchain/tokenlist) exists to help users discover the right bridged token addresses for any given native token. Consider checking this list to make sure that you're not using the wrong bridged representation of a token when bridging a native token. Developers who are creating their own bridged tokens should consider [adding their token](https://github.com/ethereum-optimism/ethereum-optimism.github.io#adding-a-token-to-the-list) to the Superchain Token List. diff --git a/pages/app-developers/building-apps.mdx b/pages/app-developers/building-apps.mdx index 59f153102..a0a309661 100644 --- a/pages/app-developers/building-apps.mdx +++ b/pages/app-developers/building-apps.mdx @@ -21,11 +21,11 @@ import { Steps } from 'nextra/components' This guide explains the basics of OP Stack development. OP Stack chains are [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306), meaning they run a slightly modified version of the same `geth` you run on mainnet. Therefore, the differences between OP Stack development and Ethereum development are minor. -But a few differences [do exist](/concepts/stack/differences). +But a few differences [do exist](/stack/differences). ## OP Stack chains endpoint URLs -To access any Ethereum type network you need an endpoint. [These providers](/app-developers/reference/rpc) support our networks. +To access any Ethereum type network you need an endpoint. [These providers](/app-developers/tools/connect/rpc-providers) support our networks. ### Network choice @@ -42,7 +42,7 @@ You can verify your development stack configuration by interacting with it. As you can see in the different development stacks below, the way you deploy contracts and interact with them on OP Stack chains is almost identical to the way you do it with L1 Ethereum. The most visible difference is that you have to specify a different endpoint (of course). -For more detail, see the guide on [Differences between Ethereum and OP Stack Chains](/concepts/stack/differences). +For more detail, see the guide on [Differences between Ethereum and OP Stack Chains](/stack/differences). * [Apeworx](https://www.apeworx.io/) * [Brownie](https://eth-brownie.readthedocs.io/en/stable/install.html) @@ -61,14 +61,14 @@ Not only is it faster, but such EVMs often have extra features, such as the [abi ### Debug before deploying -After you are done with that development, debug your decentralized application using either a [development network](/chain-operators/tutorials/development-network) or a [Sepolia test network](/reference/networks). +After you are done with that development, debug your decentralized application using either a [development network](/operators/chain-operators/tutorials/chain-dev-net) or a [Sepolia test network](/superchain/networks). This lets you debug parts that are OP Stack chains specific such as calls to bridges to transfer ETH or tokens between layers. Only when you have a version that works well on a test network should you deploy to the production network, where every transaction has a cost. ### Contract source verification -You don't have to upload your source code to [block explorers](/app-developers/tools/infrastructure/explorers), but it is a good idea. +You don't have to upload your source code to [block explorers](/app-developers/tools/build/block-explorers), but it is a good idea. On the test network, it lets you issue queries and transactions from the explorer's user interface. On the production network, it lets users know exactly what your contract does, which is conducive to trust. diff --git a/pages/app-developers/testing-apps.mdx b/pages/app-developers/testing-apps.mdx index e8423a410..cc5346324 100644 --- a/pages/app-developers/testing-apps.mdx +++ b/pages/app-developers/testing-apps.mdx @@ -25,13 +25,13 @@ Most Ethereum development stacks include features that make testing easier, whic Therefore, it is a good idea to run the majority of tests, which do not rely on OP Stack-specific features, in the development stack. It is a lot faster. -It is a best practice to design and run thorough tests across an OP test network, either in your [local multichain development environment](/app-developers/tools/development/supersim), our [devnets](/developers/testing/public-devnets), or on [the test network](/superchain/networks#op-sepolia), depending on your use case. Alternatively, with [Tenderly Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism)you can run tests with complete integration with existing protocols, access to unlimited faucets, continuous state sync, and access to development tools such as Debugger and Simulator UI. +It is a best practice to design and run thorough tests across an OP test network, either in your [local multichain development environment](/app-developers/tools/supersim), our [devnets](/stack/public-devnets), or on [the test network](/superchain/networks#op-sepolia), depending on your use case. Alternatively, with [Tenderly Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism)you can run tests with complete integration with existing protocols, access to unlimited faucets, continuous state sync, and access to development tools such as Debugger and Simulator UI. Running proper testing is key to identifying fringe cases where the equivalence between OP Stack chains and Ethereum breaks down (or where Ethereum mainnet itself and the development stack may be non-equivalent in a production environment). ## Multilayer integration tests Some apps need OP Stack-specific features that aren't available as part of the development stack. -For example, if your decentralized application relies on [inter-domain communication](/app-developers/guides/bridging/messaging), the effort of developing a stub to let you debug it in a development stack is probably greater than the hassle of having the automated test go to [a local multichain development environment](/app-developers/tools/development/supersim) each time. +For example, if your decentralized application relies on [inter-domain communication](/app-developers/bridging/messaging), the effort of developing a stub to let you debug it in a development stack is probably greater than the hassle of having the automated test go to [a local multichain development environment](/app-developers/tools/supersim) each time. ## Testing and Staging with Tenderly @@ -48,6 +48,6 @@ Tenderly [Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campai In many cases a decentralized application requires the services of other contracts. For example, [Perpetual v. 2](https://docs.perp.com/docs/guides/integration-guide) cannot function without [Uniswap v. 3](https://uniswap.org/blog/uniswap-v3). -* If that is the case, you can use [mainnet forking](/app-developers/reference/tools/supersim/fork). It works with OP Stack chains. +* If that is the case, you can use [mainnet forking](/app-developers/tutorials/supersim/reference/fork). It works with OP Stack chains. * Create a Virtual TestNet to get access to third party contracts (e.g. Uniswap) and it's latest or historical state. * Alternatively, you can connect to our [test network](/superchain/networks#op-sepolia) if those contracts are also deployed there (in many cases they are). diff --git a/pages/app-developers/tools.mdx b/pages/app-developers/tools.mdx index e6553c4ed..ec079a27d7 100644 --- a/pages/app-developers/tools.mdx +++ b/pages/app-developers/tools.mdx @@ -19,30 +19,30 @@ import { Card, Cards } from 'nextra/components' Welcome to the app developer tools! -If you are already familiar with [building on the OP Stack](/concepts/stack/overview) and just need the tools to get cracking, you are in the right place! +If you are already familiar with [building on the OP Stack](/stack/getting-started) and just need the tools to get cracking, you are in the right place! ## Connecting - } /> + } /> - } /> + } /> - } /> + } /> ## Building - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> @@ -52,15 +52,15 @@ If you are already familiar with [building on the OP Stack](/concepts/stack/over } /> - } /> + } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> diff --git a/pages/app-developers/tools/build.mdx b/pages/app-developers/tools/build.mdx index c1872114c..6ada1a1c7 100644 --- a/pages/app-developers/tools/build.mdx +++ b/pages/app-developers/tools/build.mdx @@ -23,28 +23,28 @@ This section provides information on account abstraction, block explorers, testn - } /> + } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> } /> } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tools/build/account-abstraction.mdx b/pages/app-developers/tools/build/account-abstraction.mdx index a43abdf6e..0b02511f6 100644 --- a/pages/app-developers/tools/build/account-abstraction.mdx +++ b/pages/app-developers/tools/build/account-abstraction.mdx @@ -34,7 +34,7 @@ import { Callout } from 'nextra/components' The OP Stack includes support for the `eth_sendRawTransactionConditional` RPC method to assist bundlers on shared 4337 mempools. See the [specification](/stack/features/send-raw-transaction-conditional) for how this method is implemented in op-geth. -If used by the chain operator, also see the supplemental [op-txproxy](/chain-operators/tools/op-txproxy) service which may apply additional restrictions prior to reaching the block builder. +If used by the chain operator, also see the supplemental [op-txproxy](/operators/chain-operators/tools/op-txproxy) service which may apply additional restrictions prior to reaching the block builder. As of today, this endpoint is not enabled by default in the stack. The operator must explicitly configure this. diff --git a/pages/app-developers/tools/build/block-explorers.mdx b/pages/app-developers/tools/build/block-explorers.mdx index 3945b365c..50ae7df8c 100644 --- a/pages/app-developers/tools/build/block-explorers.mdx +++ b/pages/app-developers/tools/build/block-explorers.mdx @@ -95,7 +95,7 @@ Tenderly Developer Explorer lets you: ## Access to pre-regenesis history Because of our final regenesis on 11 November 2021, older transactions are not part of the current blockchain and do not appear on [Etherscan](https://explorer.optimism.io/?utm_source=op-docs&utm_medium=docs). -However, you **can** access transaction history between 23 June 2021 and the final regenesis using a number of different tools. For detailed instructions, see [Regenesis History](/node-operators/guides/management/regenesis). +However, you **can** access transaction history between 23 June 2021 and the final regenesis using a number of different tools. For detailed instructions, see [Regenesis History](/operators/node-operators/management/regenesis-history). ## Inclusion criteria diff --git a/pages/app-developers/tools/build/ecosystem-overview.mdx b/pages/app-developers/tools/build/ecosystem-overview.mdx index d660f7b89..b004e2030 100644 --- a/pages/app-developers/tools/build/ecosystem-overview.mdx +++ b/pages/app-developers/tools/build/ecosystem-overview.mdx @@ -24,7 +24,7 @@ The Superchain ecosystem repository was developed to help ease and expedite the ## Getting started -Our initial launch includes a [bridge tutorial](/app-developers/tutorials/bridging/cross-chain-eth) that demonstrates how to bridge ETH and any ERC20 tokens listed in the [Superchain Token List](/app-developers/reference/tokens/tokenlist). This tutorial serves as a reference for anyone looking to build their own bridge, providing a clearer understanding of how to interact with the protocol on both the L1 and L2 sides. +Our initial launch includes a [bridge tutorial](/interop/tutorials/bridge-crosschain-eth) that demonstrates how to bridge ETH and any ERC20 tokens listed in the [Superchain Token List](/superchain/tokenlist). This tutorial serves as a reference for anyone looking to build their own bridge, providing a clearer understanding of how to interact with the protocol on both the L1 and L2 sides. Additionally, we provide a package containing common utilities essential for developers interacting with both L1 and L2. One such package is [viem-optimism](https://github.com/ethereum-optimism/ecosystem/tree/main/packages/viem), which offers utilities for interacting with the OP Stack using the viem library. diff --git a/pages/app-developers/tools/build/oracles.mdx b/pages/app-developers/tools/build/oracles.mdx index dbf94318f..b216761eb 100644 --- a/pages/app-developers/tools/build/oracles.mdx +++ b/pages/app-developers/tools/build/oracles.mdx @@ -56,7 +56,7 @@ Random number generation in blockchain applications ensures that smart contracts ### Gas oracle -OP Mainnet provides a [Gas Price Oracle](https://github.com/ethereum-optimism/optimism/blob/233ede59d16cb01bdd8e7ff662a153a4c3178bdd/packages/contracts/contracts/L2/predeploys/OVM_GasPriceOracle.sol) that provides information about [gas prices and related parameters](/concepts/transactions/fees). +OP Mainnet provides a [Gas Price Oracle](https://github.com/ethereum-optimism/optimism/blob/233ede59d16cb01bdd8e7ff662a153a4c3178bdd/packages/contracts/contracts/L2/predeploys/OVM_GasPriceOracle.sol) that provides information about [gas prices and related parameters](/stack/transactions/fees). It can also calculate the total cost of a transaction for you before you send it. This contract is a predeploy at address `0x420000000000000000000000000000000000000F`: diff --git a/pages/app-developers/tools/connect.mdx b/pages/app-developers/tools/connect.mdx index 53eccfc62..2a1d2b358 100644 --- a/pages/app-developers/tools/connect.mdx +++ b/pages/app-developers/tools/connect.mdx @@ -20,7 +20,7 @@ import { Card, Cards } from 'nextra/components' This section provides information on networks and RPC & node providers. You'll find reference to help you understand and work with these topics. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tools/connect/rpc-providers.mdx b/pages/app-developers/tools/connect/rpc-providers.mdx index 6a91dbb81..449ef2452 100644 --- a/pages/app-developers/tools/connect/rpc-providers.mdx +++ b/pages/app-developers/tools/connect/rpc-providers.mdx @@ -248,10 +248,10 @@ The following providers offer production-grade RPC access to Superchain networks The Superchain RPC Directory is maintained by OP Labs with the following policies: * Providers must submit a docs PR to the [docs](https://github.com/ethereum-optimism/docs/) to be added -* To be listed, providers must support at least one network in the [Superchain](/chain-operators/reference/superchain-registry) +* To be listed, providers must support at least one network in the [Superchain](/superchain/superchain-registry) * Anyone can submit a PR to remove a provider that does not support a listed network ## Next steps -* Want to run your own node? See the [Node operators guide](/node-operators/reference/architecture/rollup-node). +* Want to run your own node? See the [Node operators guide](/operators/node-operators/rollup-node). * Looking for other developer tools? See [developer tools overview](/app-developers/tools) to explore more options! diff --git a/pages/app-developers/tools/supersim.mdx b/pages/app-developers/tools/supersim.mdx index eb3f77649..735f54051 100644 --- a/pages/app-developers/tools/supersim.mdx +++ b/pages/app-developers/tools/supersim.mdx @@ -65,6 +65,6 @@ This diagram illustrates how developers interact with Supersim through the CLI, ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* View more [Supersim tutorials](/app-developers/tutorials/development/supersim) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* View more [Supersim tutorials](/app-developers/tutorials/supersim) diff --git a/pages/app-developers/transactions.mdx b/pages/app-developers/transactions.mdx index c442e5489..e38926b58 100644 --- a/pages/app-developers/transactions.mdx +++ b/pages/app-developers/transactions.mdx @@ -22,9 +22,9 @@ import { Card, Cards } from 'nextra/components' This section provides information on transactions in OP Mainnet, including fee estimation, gas parameters, transaction statuses, and troubleshooting. You'll find guides to help you understand and work with these topics. - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/transactions/estimates.mdx b/pages/app-developers/transactions/estimates.mdx index 83cbd80b9..19b283548 100644 --- a/pages/app-developers/transactions/estimates.mdx +++ b/pages/app-developers/transactions/estimates.mdx @@ -60,7 +60,7 @@ Make sure to check out the guide on [Setting Transaction Gas Parameters on OP Ma The Viem library provides a convenient method for estimating the L1 data fee for a transaction. -Check out the tutorial on [Estimating Transaction Costs on OP Mainnet](/app-developers/tutorials/transactions/cost-estimation) to learn how to use the Viem library to estimate the L1 data fee for your transaction. +Check out the tutorial on [Estimating Transaction Costs on OP Mainnet](/app-developers/tutorials/transactions/sdk-estimate-costs) to learn how to use the Viem library to estimate the L1 data fee for your transaction. Keep reading if you'd like to learn how to estimate the L1 data fee without the Viem library. diff --git a/pages/app-developers/tutorials.mdx b/pages/app-developers/tutorials.mdx index b1afac412..987c1c352 100644 --- a/pages/app-developers/tutorials.mdx +++ b/pages/app-developers/tutorials.mdx @@ -23,41 +23,41 @@ If you're a bit more familiar with the OP Stack and Ethereum, you can try walkin ## Bridging - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> } /> ## Transactions - } /> - } /> - } /> + } /> + } /> + } /> } /> ## Supersim - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> ## Interop - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> You can also [suggest a new tutorial](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=tutorial%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_tutorial.yaml\&title=%5BTUTORIAL%5D+Add+PR+title) if you have something specific in mind. We'd love to grow this list! diff --git a/pages/app-developers/tutorials/bridging.mdx b/pages/app-developers/tutorials/bridging.mdx index 65b7ca4d3..fd57707fc 100644 --- a/pages/app-developers/tutorials/bridging.mdx +++ b/pages/app-developers/tutorials/bridging.mdx @@ -20,9 +20,9 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on bridging. - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx b/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx index 13016797a..4a6932a25 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-bridge-erc20.mdx @@ -25,8 +25,8 @@ This tutorial explains how you can use [@eth-optimism/viem](https://www.npmjs.co The `@eth-optimism/viem` package is an easy way to add bridging functionality to your javascript-based application. It also provides some safety rails to prevent common mistakes that could cause tokens to be made inaccessible. -Behind the scenes, `@eth-optimism/viem` package uses the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts to transfer tokens. -Make sure to check out the [Standard Bridge guide](/app-developers/guides/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. +Behind the scenes, `@eth-optimism/viem` package uses the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts to transfer tokens. +Make sure to check out the [Standard Bridge guide](/app-developers/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. The Standard Bridge **does not** support [**fee on transfer @@ -37,8 +37,8 @@ Make sure to check out the [Standard Bridge guide](/app-developers/guides/bridgi ## Supported networks -The `@eth-optimism/viem` package supports any of the [Superchain networks](/reference/networks). -If you want to use a network that isn't included by default, you can simply [instantiate the package with the appropriate contract addresses](/app-developers/quickstarts/first-app). +The `@eth-optimism/viem` package supports any of the [Superchain networks](/superchain/networks). +If you want to use a network that isn't included by default, you can simply [instantiate the package with the appropriate contract addresses](/app-developers/get-started). ## Dependencies diff --git a/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx b/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx index 2a468764c..df97cccb9 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-bridge-eth.mdx @@ -26,12 +26,12 @@ This tutorial explains how you can use [Viem](https://viem.sh) to bridge ETH fro Viem is a TypeScript interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum. It offers an easy way to add bridging functionality to your JavaScript-based application. -Behind the scenes, Viem uses the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts to transfer ETH and ERC-20 tokens. -Make sure to check out the [Standard Bridge guide](/app-developers/guides/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. +Behind the scenes, Viem uses the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts to transfer ETH and ERC-20 tokens. +Make sure to check out the [Standard Bridge guide](/app-developers/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. ## Supported networks -Viem supports any of the [Superchain networks](/reference/networks). +Viem supports any of the [Superchain networks](/superchain/networks). The OP Stack networks are included in Viem by default. If you want to use a network that isn't included by default, you can add it to Viem's chain configurations. diff --git a/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx b/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx index a0a49b40f..cf3fa29ae 100644 --- a/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx +++ b/pages/app-developers/tutorials/bridging/cross-dom-solidity.mdx @@ -41,7 +41,7 @@ OP Stack uses a smart contract called the `CrossDomainMessenger` to pass message Both chains have a version of this contract (the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger`). Messages sent from Ethereum to OP Stack are automatically relayed behind the scenes. Messages sent from OP Stack to Ethereum must be explicitly relayed with a second transaction on Ethereum. -Read more about message passing in the guide to [Sending Data Between L1 and L2](/app-developers/guides/bridging/messaging). +Read more about message passing in the guide to [Sending Data Between L1 and L2](/app-developers/bridging/messaging). ## Dependencies @@ -271,7 +271,7 @@ Luckily, both `Greeter` contracts are exactly the same so it's easy to see how e ### The Messenger variable The `Greeter` contract has a `MESSENGER` variable that keeps track of the `CrossDomainMessenger` contract on the current chain. -Check out the [Contract Addresses page](/reference/addresses) to see the addresses of the `CrossDomainMessenger` contracts on whichever network you'll be using. +Check out the [Contract Addresses page](/superchain/addresses) to see the addresses of the `CrossDomainMessenger` contracts on whichever network you'll be using. ```solidity file=/public/tutorials/cross-dom-solidity.sol#L14 hash=ce8be857d4b4e1992cd3c16b8f2864b9 ``` @@ -335,7 +335,7 @@ You just learned how you can write Solidity contracts on Sepolia and OP Sepolia You can follow the same pattern to write contracts that can talk to each other on Ethereum and OP Stack. This sort of cross-chain communication is useful for a variety of reasons. -For example, the [Standard Bridge](/app-developers/guides/bridging/standard-bridge) contracts use this same system to bridge ETH and ERC-20 tokens between Ethereum and OP Stack. +For example, the [Standard Bridge](/app-developers/bridging/standard-bridge) contracts use this same system to bridge ETH and ERC-20 tokens between Ethereum and OP Stack. One cool way to take advantage of cross-chain communication is to do most of your heavy lifting on OP Stack and then send a message to Ethereum only when you have important results to share. This way you can take advantage of the low gas costs on OP Stack while still being able to use Ethereum when you need it. diff --git a/pages/app-developers/tutorials/interop.mdx b/pages/app-developers/tutorials/interop.mdx index bc440dcea..5e15bc68b 100644 --- a/pages/app-developers/tutorials/interop.mdx +++ b/pages/app-developers/tutorials/interop.mdx @@ -20,10 +20,10 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on interop. - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/supersim.mdx b/pages/app-developers/tutorials/supersim.mdx index b4a390e22..d48fa17b4 100644 --- a/pages/app-developers/tutorials/supersim.mdx +++ b/pages/app-developers/tutorials/supersim.mdx @@ -17,21 +17,21 @@ This is a collection of guides and tutorials to understanding and working with S ## General - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> ## Tutorials - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/chain-env.mdx b/pages/app-developers/tutorials/supersim/chain-env.mdx index 2e6a7b43f..77d49dc39 100644 --- a/pages/app-developers/tutorials/supersim/chain-env.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env.mdx @@ -21,9 +21,9 @@ import { Card, Cards } from 'nextra/components' These tutorials are for understanding and configuring your chain environment using Supersim. - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx b/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx index 92822bd59..67055f51f 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/chain-a.mdx @@ -101,5 +101,5 @@ This guide provides network details and contract addresses for OPChainA (chainID ## Next steps -* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx b/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx index 8b933a086..2d611269b 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/chain-b.mdx @@ -101,5 +101,5 @@ This guide provides network details and contract addresses for OPChainB (chainID ## Next steps -* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx b/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx index a0346cf55..11bae1c64 100644 --- a/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx +++ b/pages/app-developers/tutorials/supersim/chain-env/included-contracts.mdx @@ -54,5 +54,5 @@ cast send 0x420beeF000000000000000000000000000000001 "mint(address _to, uint256 ## Next steps -* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/reference/tools/supersim/chain-a) and [OPChainB (chainID 902)](/app-developers/reference/tools/supersim/chain-b). -* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/tutorials/supersim/chain-env/chain-a) and [OPChainB (chainID 902)](/app-developers/tutorials/supersim/chain-env/chain-b). +* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/supersim/deposit-transactions.mdx b/pages/app-developers/tutorials/supersim/deposit-transactions.mdx index 9dffcb5b0..50d223cf5 100644 --- a/pages/app-developers/tutorials/supersim/deposit-transactions.mdx +++ b/pages/app-developers/tutorials/supersim/deposit-transactions.mdx @@ -20,7 +20,7 @@ import { Callout, Steps } from 'nextra/components' # Deposit transactions -Supersim supports [deposit transactions](/concepts/transactions/deposits). It uses a very lightweight solution without the `op-node` derivation pipeline by listening directly to the `TransactionDeposited` events on the `OptimismPortal` contract and simply forwarding the transaction to the applicable L2. +Supersim supports [deposit transactions](/stack/transactions/deposit-flow). It uses a very lightweight solution without the `op-node` derivation pipeline by listening directly to the `TransactionDeposited` events on the `OptimismPortal` contract and simply forwarding the transaction to the applicable L2. The execution engine used with Supersim must support the Optimism [deposit transaction type](https://specs.optimism.io/protocol/deposits.html#the-deposited-transaction-type). @@ -106,6 +106,6 @@ We'll run through a sample deposit directly with the `OptimismPortal` using cast ## Next steps -* See the [transaction guides](/app-developers/guides/transactions) for more detailed information. -* Questions about Interop? Check out collection of [interop guides](/concepts/interoperability/overview) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). +* See the [transaction guides](/app-developers/transactions) for more detailed information. +* Questions about Interop? Check out collection of [interop guides](/interop/explainer) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/app-developers/tutorials/supersim/getting-started.mdx b/pages/app-developers/tutorials/supersim/getting-started.mdx index df940edb1..53604732b 100644 --- a/pages/app-developers/tutorials/supersim/getting-started.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started.mdx @@ -21,7 +21,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of guides for installing dependencies and getting started with Supersim. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx b/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx index 340031328..e6c402f16 100644 --- a/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started/first-steps.mdx @@ -128,5 +128,5 @@ With the steps above, you've now successfully completed both an L1 to L2 ETH bri ## Next steps -* Learn how to start Supersim in [vanilla (non-forked) mode](/app-developers/reference/tools/supersim/vanilla) or [forked mode](/app-developers/reference/tools/supersim/fork). -* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. +* Learn how to start Supersim in [vanilla (non-forked) mode](/app-developers/tutorials/supersim/reference/vanilla) or [forked mode](/app-developers/tutorials/supersim/reference/fork). +* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. diff --git a/pages/app-developers/tutorials/supersim/getting-started/installation.mdx b/pages/app-developers/tutorials/supersim/getting-started/installation.mdx index 4516292b7..298686a89 100644 --- a/pages/app-developers/tutorials/supersim/getting-started/installation.mdx +++ b/pages/app-developers/tutorials/supersim/getting-started/installation.mdx @@ -57,4 +57,4 @@ This page provides installation instructions for `supersim`. ## Next steps * Continue to the [First Steps](first-steps) tutorial to try L1 to L2 message passing. -* Explore [Supersim](/app-developers/tutorials/development/supersim) features, particularly in [vanilla mode](/app-developers/reference/tools/supersim/vanilla), which starts 3 chains (L1 and L2). +* Explore [Supersim](/app-developers/tutorials/supersim) features, particularly in [vanilla mode](/app-developers/tutorials/supersim/reference/vanilla), which starts 3 chains (L1 and L2). diff --git a/pages/app-developers/tutorials/supersim/reference.mdx b/pages/app-developers/tutorials/supersim/reference.mdx index c34db4cc8..c31b7a550 100644 --- a/pages/app-developers/tutorials/supersim/reference.mdx +++ b/pages/app-developers/tutorials/supersim/reference.mdx @@ -19,7 +19,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of guides for using the Superchain CLI with Supersim. - } /> + } /> - } /> + } /> diff --git a/pages/app-developers/tutorials/supersim/reference/fork.mdx b/pages/app-developers/tutorials/supersim/reference/fork.mdx index f55366163..f27eb500d 100644 --- a/pages/app-developers/tutorials/supersim/reference/fork.mdx +++ b/pages/app-developers/tutorials/supersim/reference/fork.mdx @@ -156,5 +156,5 @@ supersim fork --chains=op,base,zora --interop.enabled ## Next steps -* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. -* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. +* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/supersim/reference/vanilla.mdx b/pages/app-developers/tutorials/supersim/reference/vanilla.mdx index 43a8751c0..2bf85face 100644 --- a/pages/app-developers/tutorials/supersim/reference/vanilla.mdx +++ b/pages/app-developers/tutorials/supersim/reference/vanilla.mdx @@ -159,6 +159,6 @@ GLOBAL OPTIONS: ## Next steps -* Explore the Supersim [included contracts](/app-developers/reference/tools/supersim/contracts) being used to help replicate the Superchain environment. -* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/reference/tools/supersim/chain-a) and [OPChainB (chainID 902)](/app-developers/reference/tools/supersim/chain-b). -* Learn how to [deposit transactions](/app-developers/tutorials/bridging/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. +* Explore the Supersim [included contracts](/app-developers/tutorials/supersim/chain-env/included-contracts) being used to help replicate the Superchain environment. +* Get network details about the two OP Stack systems spun up in vanilla mode: [OPChainA (chainID 901)](/app-developers/tutorials/supersim/chain-env/chain-a) and [OPChainB (chainID 902)](/app-developers/tutorials/supersim/chain-env/chain-b). +* Learn how to [deposit transactions](/app-developers/tutorials/supersim/deposit-transactions) with Supersim, using a much simpler approach that bypasses the derivation pipeline. diff --git a/pages/app-developers/tutorials/transactions.mdx b/pages/app-developers/tutorials/transactions.mdx index 7e1075350..cc14d04a5 100644 --- a/pages/app-developers/tutorials/transactions.mdx +++ b/pages/app-developers/tutorials/transactions.mdx @@ -21,7 +21,7 @@ import { Card, Cards } from 'nextra/components' This is a collection of app developer tutorials focused on transactions. - } /> - } /> - } /> + } /> + } /> + } /> diff --git a/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx b/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx index 85d60c0e1..44b244094 100644 --- a/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx +++ b/pages/app-developers/tutorials/transactions/sdk-estimate-costs.mdx @@ -24,12 +24,12 @@ You'll learn how to estimate the [execution gas fee](/app-developers/transaction You'll also learn how to estimate the total cost of the transaction all at once. - Check out the full explainer on [OP Stack transaction fees](/app-developers/guides/transactions/fees) for more information on how OP Mainnet charges fees under the hood. + Check out the full explainer on [OP Stack transaction fees](/app-developers/transactions/fees) for more information on how OP Mainnet charges fees under the hood. ## Supported networks -Viem supports any of the [Superchain networks](/reference/networks). +Viem supports any of the [Superchain networks](/superchain/networks). The OP Stack networks are included in Viem by default. If you want to use a network that isn't included by default, you can add it to Viem's chain configurations. diff --git a/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx b/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx index 45c0b3b9a..fd9084bba 100644 --- a/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx +++ b/pages/app-developers/tutorials/transactions/sdk-trace-txns.mdx @@ -20,7 +20,7 @@ import { Callout, Steps } from 'nextra/components' # Tracing deposits and withdrawals -In this tutorial, you'll learn how to use the [viem](https://viem.sh) library to trace a [Standard Bridge](/app-developers/guides/bridging/standard-bridge) deposit or withdrawal between L1 and L2. +In this tutorial, you'll learn how to use the [viem](https://viem.sh) library to trace a [Standard Bridge](/app-developers/bridging/standard-bridge) deposit or withdrawal between L1 and L2. You'll specifically learn how to determine the status of a deposit or withdrawal and how to retrieve the transaction receipt for the executed transaction on L1 (for withdrawals) or L2 (for deposits). ## Dependencies @@ -170,4 +170,4 @@ You can use viem's functions to trace a withdrawal. ## Next steps -* Check out the tutorial on [bridging ERC-20 tokens with the @eth-optimism/viem package](/app-developers/tutorials/bridging/cross-domain-erc20) to learn how to create deposits and withdrawals. +* Check out the tutorial on [bridging ERC-20 tokens with the @eth-optimism/viem package](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) to learn how to create deposits and withdrawals. diff --git a/pages/connect/contribute.mdx b/pages/connect/contribute.mdx index de8888c51..211af4798 100644 --- a/pages/connect/contribute.mdx +++ b/pages/connect/contribute.mdx @@ -25,6 +25,6 @@ Documentation covering Docs Contribute, Stack Contribute, Style Guide in the Con - + diff --git a/pages/connect/contribute/docs-contribute.mdx b/pages/connect/contribute/docs-contribute.mdx index d2974d6e0..7783df705 100644 --- a/pages/connect/contribute/docs-contribute.mdx +++ b/pages/connect/contribute/docs-contribute.mdx @@ -32,9 +32,9 @@ Optimism Docs (docs.optimism.io) is an open-source project, and we welcome your * [Add or update an FAQ item](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=documentation%2Cfaq%2Ccommunity-request\&projects=\&template=suggest_faq_item.yaml\&title=Suggest+an+FAQ+item): add a new FAQ (question+answer set) to an [existing page](/stack/security/faq-sec-model), create a new FAQ page, or update an existing FAQ question/answer set. * [Add or update a troubleshooting item](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=documentation%2Ctroubleshooting%2Ccommunity-request\&projects=\&template=suggest_troubleshooting_item.yaml\&title=Suggest+a+troubleshooting+item): - add a new troubleshooting item (problem+solution set) to an [existing page](/chain-operators/guides/troubleshooting), create a new troubleshooting page, or update an existing troubleshooting problem/solution set. + add a new troubleshooting item (problem+solution set) to an [existing page](/operators/chain-operators/management/troubleshooting), create a new troubleshooting page, or update an existing troubleshooting problem/solution set. * [Add a glossary term](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=glossary%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_glossary_term.yaml\&title=Suggest+a+glossary+term): - help us continue to expand the Optimism [glossary](/reference/glossary). + help us continue to expand the Optimism [glossary](/connect/resources/glossary). * [Add a faucet to the developer community](https://github.com/ethereum-optimism/developers/tree/main/community): add a new faucet to the [Faucets page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/faucets.md) or update an existing faucet. * [Add an oracle to the developer community](https://github.com/ethereum-optimism/developers/tree/main/community): diff --git a/pages/connect/contribute/stack-contribute.mdx b/pages/connect/contribute/stack-contribute.mdx index 11c805ccc..1e9b88387 100644 --- a/pages/connect/contribute/stack-contribute.mdx +++ b/pages/connect/contribute/stack-contribute.mdx @@ -19,7 +19,7 @@ import { Callout } from 'nextra/components' # Contribute to the OP Stack -The OP Stack is a collaborative, decentralized development stack that only gets more powerful as more people contribute. Code for the OP Stack should follow the stack's [design principles](/concepts/stack/design-principles), which means it should be entirely open source and accessible for people to hack on, contribute to, and extend. +The OP Stack is a collaborative, decentralized development stack that only gets more powerful as more people contribute. Code for the OP Stack should follow the stack's [design principles](/stack/design-principles), which means it should be entirely open source and accessible for people to hack on, contribute to, and extend. The Optimism Collective wins when it works together. ♥️✨ Whether you're a budding chain operator, app developer, node operator, bounty hunter, content creator, or anything in between, the OP Stack always has something for you to contribute to. @@ -27,7 +27,7 @@ Every contribution makes a difference — no contribution is too small. If you'r ## Component contributions -The OP Stack is a decentralized development stack and is constantly evolving as new layers and modules are developed. Anyone can contribute components that can be considered part of the OP Stack as long as those components fit the stack's [design principles and goals](/concepts/stack/design-principles). +The OP Stack is a decentralized development stack and is constantly evolving as new layers and modules are developed. Anyone can contribute components that can be considered part of the OP Stack as long as those components fit the stack's [design principles and goals](/stack/design-principles). To start contributing components to the stack, check out some of these [useful ideas](https://github.com/ethereum-optimism/ecosystem-contributions) and get to building! And don't forget that projects can also receive grants from the Collective via [RetroPGF](https://community.optimism.io/docs/citizen-house/how-retro-funding-works/?utm_source=op-docs&utm_medium=docs). ## Codebase contributions diff --git a/pages/connect/contribute/style-guide.mdx b/pages/connect/contribute/style-guide.mdx index 340d955b6..b9046d0d8 100644 --- a/pages/connect/contribute/style-guide.mdx +++ b/pages/connect/contribute/style-guide.mdx @@ -21,7 +21,7 @@ import { Callout } from 'nextra/components' # Docs style guide -This Style Guide aims to assist Optimists in writing technical content with a consistent voice, tone, and style. See the [glossary](/reference/glossary) for an alphabetical listing of commonly used words, terms, and concepts used throughout the technical docs and across the OP Collective. +This Style Guide aims to assist Optimists in writing technical content with a consistent voice, tone, and style. See the [glossary](/connect/resources/glossary) for an alphabetical listing of commonly used words, terms, and concepts used throughout the technical docs and across the OP Collective. This doc doesn't cover all questions or use-cases. Our guide is based on the [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/). Please reference their guide for any use-case or situation we do not cover here. @@ -97,7 +97,7 @@ See below for when to use title or sentence case. * Use sentence case for body content and short phrases, even when the content is a link. Sentence case means you only capitalize the first letter of the sentence.
- **Example:** If you're trying to figure out how to do something specific as a node operator, you might search our collection of [tutorials](/node-operators/reference/architecture/rollup-node) or [suggest a new one](https://github.com/ethereum-optimism/docs/issues). + **Example:** If you're trying to figure out how to do something specific as a node operator, you might search our collection of [tutorials](/operators/node-operators/rollup-node) or [suggest a new one](https://github.com/ethereum-optimism/docs/issues). * Use lowercase in code snippets by default, unless the code block uses capitalization (e.g., for the name of a function or variable) and you are referring to the function or variable elsewhere within the technical documentation.
**Examples**: Run `git add` or Import `useState` @@ -305,7 +305,7 @@ Developers trust that we will lead them to sites or pages related to their readi * Use anchor links, whenever possible, to guide users to a specific page and location in the technical documentation. This reduces cognitive load and improves overall usability. -* To link to an anchor, such as an H3 tag within a page, you need to append it to the page name preceded by `#`, like this **example**: `[any descriptive text](/app-developers/tutorials/tokens/deploy-superchain-erc20)`. +* To link to an anchor, such as an H3 tag within a page, you need to append it to the page name preceded by `#`, like this **example**: `[any descriptive text](/interop/tutorials/deploy-superchain-erc20)`. ### Linking across pages @@ -315,32 +315,32 @@ Developers trust that we will lead them to sites or pages related to their readi * Use the exact title of the page when linking to it in a sentence, whenever possible, and display it in title case. The link should use default styling with no other formatting (bold, italics, quotations). - **Example**: Be sure to check out the [OP Stack Getting Started Guide](/concepts/stack/overview) to get up to speed. + **Example**: Be sure to check out the [OP Stack Getting Started Guide](/stack/getting-started) to get up to speed. * Use sentence case when linking to an article without using the exact article title. This causes minimal disruption to the flow of the sentence. The link should use default styling. - **Example**: For something more advanced, we recommend reading through our page on [sending data between L1 and L2](/app-developers/guides/bridging/messaging). + **Example**: For something more advanced, we recommend reading through our page on [sending data between L1 and L2](/app-developers/bridging/messaging). * Use `detailed instructions` link format to refer users to another article with detailed instructions that are important for completing the current task. - **Example**: For detailed instructions, see [Article Title](/app-developers/guides/bridging/standard-bridge). + **Example**: For detailed instructions, see [Article Title](/app-developers/bridging/standard-bridge). * Use the `more information` link format to guide users to a suggested reading that the user may find helpful because it is related to the task/topic, but not essential for completing the current task. - **Example**: For more information, see [Article Title](/app-developers/guides/bridging/standard-bridge). + **Example**: For more information, see [Article Title](/app-developers/bridging/standard-bridge). ## Content types Content types help manage technical content by defining the purpose and common structure for each file type. All content types used in these technical docs have attributes or properties, as defined below. -| Document type | Purpose | Examples | -| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | -| Overviews or Explainers | General introduction to a product or feature, provides a happy-path for readers | [Superchain Explainer](/superchain/superchain-explainer) | -| Guides | Explain what things are and how they work | [Standard Bridge Guide](/app-developers/guides/bridging/standard-bridge) | -| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-domain-erc20) | -| FAQs | Address frequently asked questions | [FAQ: OP Mainnet Security Model](/stack/security/faq-sec-model) | -| Troubleshooting | List common troubleshooting scenarios and solutions | [Troubleshooting: Run a Node](/node-operators/guides/troubleshooting) | -| Reference | Provide deep, theoretical knowledge of the internal workings of a system, such as API endpoints and specifications | [Node and RPC Providers](/app-developers/reference/rpc) | +| Document type | Purpose | Examples | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | +| Overviews or Explainers | General introduction to a product or feature, provides a happy-path for readers | [Superchain Explainer](/superchain/superchain-explainer) | +| Guides | Explain what things are and how they work | [Standard Bridge Guide](/app-developers/bridging/standard-bridge) | +| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20) | +| FAQs | Address frequently asked questions | [FAQ: OP Mainnet Security Model](/stack/security/faq-sec-model) | +| Troubleshooting | List common troubleshooting scenarios and solutions | [Troubleshooting: Run a Node](/operators/node-operators/management/troubleshooting) | +| Reference | Provide deep, theoretical knowledge of the internal workings of a system, such as API endpoints and specifications | [Node and RPC Providers](/app-developers/tools/connect/rpc-providers) | ### Overviews (or Explainers) diff --git a/pages/connect/resources.mdx b/pages/connect/resources.mdx index f3cc4ba3b..f79157f85 100644 --- a/pages/connect/resources.mdx +++ b/pages/connect/resources.mdx @@ -24,5 +24,5 @@ import { Card, Cards } from 'nextra/components' Documentation covering Glossary in the Resources section of the OP Stack ecosystem. - + diff --git a/pages/index.mdx b/pages/index.mdx index 5ac875fdc..80dcf7ef9 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -28,20 +28,20 @@ import { Cards, Card } from 'nextra/components' # Welcome to the Optimism Docs -Welcome to the Optimism Docs, the unified home of the [Optimism Collective's](/connect/resources/glossary#optimism-collective) technical documentation and information about the [OP Stack](/concepts/stack/overview). +Build with the OP Stack. Explore Optimism docs for tutorials, examples, and resources to build your chain or deploy apps. Information about the Optimism Collective's governance, community, and mission can be found on the [Optimism Community Hub](https://community.optimism.io/docs/governance/?utm_source=op-docs&utm_medium=docs). ## Grow your app with Superchain interoperability! Superchain interoperability is the next major scalability improvement to the OP Stack which enables a network of chains, the Superchain, to feel like a single blockchain. Superchain interoperability unlocks 1-block latency, trust minimized cross-chain composability and enables ETH and ERC-20 tokens to move securely between chains via native minting and burning as well as smart contracts to compose with data across multiple chains. -Superchain interop is in active development. [Learn how you can leverage Superchain interoperability to tap into Superchain network effects](/app-developers/guides/interoperability/getting-started). +Superchain interop is in active development. [Learn how you can leverage Superchain interoperability to tap into Superchain network effects](/interop/get-started). - } /> - } /> - } /> + } /> + } /> + } /> ## Builder guides @@ -49,13 +49,13 @@ Superchain interop is in active development. [Learn how you can leverage Superch Whether you're a developer building an app on OP Mainnet, a node operator running an OP Mainnet node, or a chain operator launching your own OP Stack chain, you'll find everything you need to get started right here. - } /> + } /> } /> - } /> + } /> - } /> + } /> ## Featured tools @@ -65,15 +65,15 @@ Check out these amazing tools, so you can get building with Optimism. } /> - } /> + } /> } /> } /> - } /> + } /> - } /> + } /> @@ -84,9 +84,9 @@ The Superchain is a network of OP Stack chains that share a bridging protocol, g We've got you covered with these detailed guides to help you learn all about Optimism's tech stack. - } /> + } /> } /> - } /> + } /> diff --git a/pages/interop/compatible-tokens.mdx b/pages/interop/compatible-tokens.mdx index ef6c3635a..c5c1fecba 100644 --- a/pages/interop/compatible-tokens.mdx +++ b/pages/interop/compatible-tokens.mdx @@ -33,7 +33,7 @@ Please note that the OP Stack interoperability upgrade, required for crosschain # Superchain interop compatible tokens Superchain interop enables **trust-minimized, 1-block latency cross-chain composability** on the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster). -The recommended approach for giving tokens Superchain interop capabilities is using [SuperchainERC20](/concepts/interoperability/superchain-erc20), but there are other options depending on your needs. +The recommended approach for giving tokens Superchain interop capabilities is using [SuperchainERC20](/interop/superchain-erc20), but there are other options depending on your needs. ## How to enable cross-chain token interoperability @@ -56,7 +56,7 @@ If a 3rd party interop solution is providing faster-than-Ethereum L1 finality (1 ## SuperchainERC20 -`SuperchainERC20` is a simple and trust-minimized way to enable token interoperability within the Superchain. You can learn more about `SuperchainERC20` [here](/concepts/interoperability/superchain-erc20). +`SuperchainERC20` is a simple and trust-minimized way to enable token interoperability within the Superchain. You can learn more about `SuperchainERC20` [here](/interop/superchain-erc20). * **Security:** Fault Proofs secure Superchain interop end to end. No third-party dependencies to enable token interoperability. * **Latency:** 1-block latency within the Superchain interop cluster. @@ -143,6 +143,6 @@ NTT is a token standard used to send, receive, and compose tokens across chains ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* [Learn more about SuperchainERC20](/concepts/interoperability/superchain-erc20) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* [Learn more about SuperchainERC20](/interop/superchain-erc20) diff --git a/pages/interop/estimate-costs.mdx b/pages/interop/estimate-costs.mdx index 91dea550a..39aa11a6b 100644 --- a/pages/interop/estimate-costs.mdx +++ b/pages/interop/estimate-costs.mdx @@ -30,7 +30,7 @@ Unless OP Stack transaction costs increase significantly, interop costs should n To see the current cost of gas, go to a [block explorer](https://optimism.blockscout.com/) and look at a recent transaction.
-There are several factors that determine the cost of an [interop transaction](/app-developers/guides/interoperability/message-passing): +There are several factors that determine the cost of an [interop transaction](/interop/message-passing): * How you pass the message. You can either use [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) directly, or use the cross domain messenger, [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol), which uses `CrossL2Inbox` internally. @@ -113,7 +113,7 @@ At the time of writing, each gas unit costs approximately `$3×10^-9`, so it wou ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/interop/message-passing) * Watch [this video](https://www.youtube.com/watch?v=FKc5RgjtGes), which gives an overview of Superchain interoperability. diff --git a/pages/interop/explainer.mdx b/pages/interop/explainer.mdx index 64707d036..28c2c08bb 100644 --- a/pages/interop/explainer.mdx +++ b/pages/interop/explainer.mdx @@ -44,7 +44,7 @@ Superchain interoperability provides the following benefits: ## Superchain interoperability architecture A pre-interop OP Stack node consists of two pieces of software: a consensus client (e.g. op-node) and an execution client, which is responsible for processing user transactions and constructing blocks (e.g. op-geth). -Superchain interoperability among OP Stack chains is enabled via a new service called [*OP Supervisor*](/chain-operators/reference/components/op-supervisor). +Superchain interoperability among OP Stack chains is enabled via a new service called [*OP Supervisor*](/interop/op-supervisor). Every node operator is expected to run this service in addition to the [rollup node](/operators/node-operators/architecture#rollup-node) and [execution client](/operators/node-operators/architecture#execution-client). ```mermaid @@ -222,7 +222,7 @@ flowchart LR A <--> C <--> E <--> B <--> D <--> A ``` -Each blockchain in the Superchain interop cluster shares the same security model to mitigate the weakest-link scenario. As outlined in the [Standard Rollup Charter](/governance/blockspace-charter), these chains share the same L1 `ProxyAdmin` Owner. Any changes to the Superchain interop cluster must follow the standard Protocol Upgrade vote procedure—the established governance process for Superchain modifications. +Each blockchain in the Superchain interop cluster shares the same security model to mitigate the weakest-link scenario. As outlined in the [Standard Rollup Charter](/superchain/blockspace-charter), these chains share the same L1 `ProxyAdmin` Owner. Any changes to the Superchain interop cluster must follow the standard Protocol Upgrade vote procedure—the established governance process for Superchain modifications. The Superchain interop cluster will be rolled out iteratively, but to see a list of eligible chains that could join the cluster visit the [Superchain Index](https://www.superchain.eco/superchain-index) and look at chains that have a `Standard` charter. @@ -232,14 +232,14 @@ The Superchain interop cluster will be rolled out iteratively, but to see a list Superchain interop includes both the protocol layer message passing asset interoperability for ETH and SuperchainERC20 tokens. * **Message passing protocol:** the initial + finalizing/executing [message-cross-chain-message] that fire events to be consumed by the chains in the [dependency set](https://specs.optimism.io/interop/dependency-set.html) -* ****: the [SuperchainERC20 superchain-erc20] turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/concepts/interoperability/superchain-erc20) +* ****: the [SuperchainERC20 superchain-erc20] turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/interop/superchain-erc20) This means ETH and ERC-20s can seamlessly and securely move across L2s, and intent-based protocols (i.e., bridges) can build better experiences on top of the message passing protocol. */} ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/interop/message-passing) * Watch [this video](https://www.youtube.com/watch?v=FKc5RgjtGes), which gives an overview of Superchain interoperability. diff --git a/pages/interop/get-started.mdx b/pages/interop/get-started.mdx index 5dff38d69..f9a44183e 100644 --- a/pages/interop/get-started.mdx +++ b/pages/interop/get-started.mdx @@ -30,12 +30,12 @@ Reimagine your app with Superchain Interop to deliver the unified UX your users Choose your development environment to build, test, and quickly iterate on your apps. -| Environment | Purpose | Getting Started | -| --------------------- | ----------------------------------------- | ---------------------------------------------------------------------- | -| **Local development** | Rapid iteration and testing with Supersim | [Setup Supersim guide](/app-developers/tutorials/development/supersim) | -| **Interop devnet** | Large-scale testing on testnets | [Network specs](/app-developers/tools/testing/devnet) | +| Environment | Purpose | Getting Started | +| --------------------- | ----------------------------------------- | ---------------------------------------------------------- | +| **Local development** | Rapid iteration and testing with Supersim | [Setup Supersim guide](/app-developers/tutorials/supersim) | +| **Interop devnet** | Large-scale testing on testnets | [Network specs](/interop/tools/devnet) | -For complete network details including RPC endpoints, chain IDs, contract addresses, and bridging instructions, see the [Superchain Interop Devnet Documentation](/app-developers/tools/testing/devnet). +For complete network details including RPC endpoints, chain IDs, contract addresses, and bridging instructions, see the [Superchain Interop Devnet Documentation](/interop/tools/devnet). ## Deploy your app to devnet in minutes @@ -51,16 +51,16 @@ The SuperchainERC20 Starter Kit allows you to focus on what to deploy, not how t | [Supersim](tools/supersim) | Local multi-chain testing environment for smart contracts. | | [Super CLI](https://github.com/ethereum-optimism/super-cli) | Command-line tool for seamless multichain app deployment and testing. | | [Superchain Relayer](https://github.com/ethereum-optimism/superchain-relayer) | UI for monitoring and managing cross-chain transactions. | -| [Interop Docs](/concepts/interoperability/overview) | Comprehensive Interop information in the Optimism Docs. | +| [Interop Docs](/interop/explainer) | Comprehensive Interop information in the Optimism Docs. | | [Superchain Dev Console](https://console.optimism.io/?utm_source=op-docs\&utm_medium=docs) | Comprensive tool to build, launch, and grow your app on the Superchain. | | [Developer Support GitHub](https://github.com/ethereum-optimism/developers/discussions) | Quick and easy developer support. | ## Handy step-by-step guides - } /> + } /> - } /> + } /> } /> diff --git a/pages/interop/interop-security.mdx b/pages/interop/interop-security.mdx index 937e2c2bd..e1dfac811 100644 --- a/pages/interop/interop-security.mdx +++ b/pages/interop/interop-security.mdx @@ -168,7 +168,7 @@ The protocol enforces the fact that all executing messages are valid. It does th */} -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs) -* View more [interop tutorials](/app-developers/tutorials/interoperability) +* View more [interop tutorials](/interop/tutorials) diff --git a/pages/interop/message-expiration.mdx b/pages/interop/message-expiration.mdx index 44881e34c..ed5cc1ac5 100644 --- a/pages/interop/message-expiration.mdx +++ b/pages/interop/message-expiration.mdx @@ -22,19 +22,19 @@ is_imported_content: 'false' # Message expiration -[Messages](/app-developers/guides/interoperability/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced. +[Messages](/interop/message-passing) referenced between OP Stack chains have a limited validity period called the expiry window. Once this window elapses, the referenced message becomes invalid and can no longer be referenced. -For messages using [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, enabling the message to be relayed. +For messages using [`L2ToL2CrossDomainMessenger`](/interop/message-passing), if a message expires before being referenced, developers can reemit the message on the source chain. This triggers a fresh `SentMessage` event, enabling the message to be relayed. ## The expiry window -The expiry window is an offchain constant, defined by [OP-Supervisor](/chain-operators/reference/components/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be referenced within 7 days (604,800 seconds) of the log being created. +The expiry window is an offchain constant, defined by [OP-Supervisor](/interop/op-supervisor), that defines how long a cross-chain message or event emitted remains valid. For any chain in the [Superchain interop cluster](/interop/explainer#superchain-interop-cluster), messages must be referenced within 7 days (604,800 seconds) of the log being created. After this period, a message can no longer be referenced unless the event is remitted. ## Reemitting an expired message -The `resendMessage` function on the [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing) contract allows developers to reemit a message that was sent but not yet relayed. +The `resendMessage` function on the [`L2ToL2CrossDomainMessenger`](/interop/message-passing) contract allows developers to reemit a message that was sent but not yet relayed. This emits a new `SentMessage` log with the same content as the original message, enabling offchain relayers to pick it up again. @@ -48,6 +48,6 @@ Note: Re-emitting an already relayed message will have no effect on the destinat ## Next steps -* [Build a revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing) -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing) +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain diff --git a/pages/interop/message-passing.mdx b/pages/interop/message-passing.mdx index 0319474f2..7b51dbedf 100644 --- a/pages/interop/message-passing.mdx +++ b/pages/interop/message-passing.mdx @@ -29,7 +29,7 @@ import { InteropCallout } from '@/components/WipCallout' This is an explanation of how interop works. - You can find a step by step tutorial [here](/app-developers/tutorials/interoperability/message-passing). + You can find a step by step tutorial [here](/interop/tutorials/message-passing). The low-level [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract handles basic message execution. It verifies whether an initiating message exists but does not check the message's destination, processing status, or other attributes. @@ -121,6 +121,6 @@ sequenceDiagram ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing). -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain. +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing). +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain. diff --git a/pages/interop/op-supervisor.mdx b/pages/interop/op-supervisor.mdx index 47e3cd3e6..515830534 100644 --- a/pages/interop/op-supervisor.mdx +++ b/pages/interop/op-supervisor.mdx @@ -91,7 +91,7 @@ For a full listing of API names, see the [source code](https://github.com/ethere ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain * Learn [how ETH can move across chains](https://docs.optimism.io/interop/superchain-eth-bridge) * For more info about how Superchain interoperability works under the hood, [check out the specs](https://specs.optimism.io/interop/overview.html?utm_source=op-docs&utm_medium=docs). diff --git a/pages/interop/predeploy.mdx b/pages/interop/predeploy.mdx index 5d95aa8bf..fdcbcb596 100644 --- a/pages/interop/predeploy.mdx +++ b/pages/interop/predeploy.mdx @@ -82,6 +82,6 @@ The `SuperchainTokenBridge` is an abstraction on top of the `L2ToL2CrossDomainMe ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* Learn [how messages get from one chain to another chain](/app-developers/guides/interoperability/message-passing) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* Learn [how messages get from one chain to another chain](/interop/message-passing) diff --git a/pages/interop/reading-logs.mdx b/pages/interop/reading-logs.mdx index 088c99b80..abfdfe851 100644 --- a/pages/interop/reading-logs.mdx +++ b/pages/interop/reading-logs.mdx @@ -56,7 +56,7 @@ The process works through the [`CrossL2Inbox`](https://github.com/ethereum-optim ## Example: cross-chain attestation verification Let's walk through a conceptual example of verifying an Ethereum Attestation Service (EAS) attestation across chains. -EAS is a [predeploy](/app-developers/reference/contracts/interop/predeploys) in the OP Stack for making attestations on or off-chain about anything. +EAS is a [predeploy](/interop/predeploy) in the OP Stack for making attestations on or off-chain about anything. ### Source chain: creating an attestation @@ -111,7 +111,7 @@ sequenceDiagram 3. The attestation verifier calls `validateMessage()` on the `CrossL2Inbox` contract, passing the attestation identifier and a hash of the event data. -4. The [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract interacts with the [`OP-Supervisor`](/chain-operators/reference/components/op-supervisor) service to check if the specified log exists on the source chain. +4. The [`CrossL2Inbox`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/CrossL2Inbox.sol) contract interacts with the [`OP-Supervisor`](/interop/op-supervisor) service to check if the specified log exists on the source chain. 5. The `OP-Supervisor` confirms the validity of the log to the `CrossL2Inbox` contract. @@ -223,6 +223,6 @@ This diagram compares the two approaches for cross-chain communication: ## Next steps -* [Build a revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Learn how to [pass messages between blockchains](/app-developers/tutorials/interoperability/message-passing) -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain +* [Build a revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Learn how to [pass messages between blockchains](/interop/tutorials/message-passing) +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain diff --git a/pages/interop/reorg.mdx b/pages/interop/reorg.mdx index cbfb6d40d..ba94642d2 100644 --- a/pages/interop/reorg.mdx +++ b/pages/interop/reorg.mdx @@ -188,6 +188,6 @@ At worst, some unsafe blocks need to be recalculated (if one fork is chosen over ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain. +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain. * Deploy a [SuperchainERC20](./tutorials/deploy-superchain-erc20) to the Superchain. * View more [interop tutorials](./tutorials). diff --git a/pages/interop/starter-kit.mdx b/pages/interop/starter-kit.mdx index bdd3251ce..5db0eddeb 100644 --- a/pages/interop/starter-kit.mdx +++ b/pages/interop/starter-kit.mdx @@ -160,7 +160,7 @@ For best security practices `SuperchainERC20Bridge` should be the only contract ## Next Steps -* Test your token deployment on multiple chains using [Supersim](/app-developers/tools/development/supersim) and run simple [end-to-end integration tests](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-e2e-tests). +* Test your token deployment on multiple chains using [Supersim](/app-developers/tools/supersim) and run simple [end-to-end integration tests](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-e2e-tests). * For specific use cases, check out our guides for [bridging a SuperchainERC20 token to another chain](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#-example-how-to-bridge-a-superchainerc20-token-to-another-chain) or [modifying an existing ERC20 contract to be interoperable](https://github.com/ethereum-optimism/superchainerc20-starter/blob/main/README.md#updating-an-erc20-contract-to-be-interoperable). -* Questions about Interop? Check out our collection of [interop guides](/concepts/interoperability/overview) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). +* Questions about Interop? Check out our collection of [interop guides](/interop/explainer) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). diff --git a/pages/interop/superchain-erc20.mdx b/pages/interop/superchain-erc20.mdx index 17f57663b..d40513e31 100644 --- a/pages/interop/superchain-erc20.mdx +++ b/pages/interop/superchain-erc20.mdx @@ -124,7 +124,7 @@ Setting this up in advance ensures tokens will benefit from interop when it beco Add this after the tutorial is written - For detailed, step-by-step instructions on implementing SuperchainERC20, refer to [Deploy assets using SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20). + For detailed, step-by-step instructions on implementing SuperchainERC20, refer to [Deploy assets using SuperchainERC20](/interop/tutorials/deploy-superchain-erc20). */} @@ -140,6 +140,6 @@ Setting this up in advance ensures tokens will benefit from interop when it beco ## Next steps -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain. -* Learn about [other token standards that can benefit from Superchain interop](/app-developers/reference/tokens/compatibility). -* Learn how to [modify an existing ERC20 contract](/app-developers/tutorials/tokens/custom-superchain-erc20) to make it interoperable within the Superchain. +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain. +* Learn about [other token standards that can benefit from Superchain interop](/interop/compatible-tokens). +* Learn how to [modify an existing ERC20 contract](/interop/tutorials/custom-superchain-erc20) to make it interoperable within the Superchain. diff --git a/pages/interop/superchain-eth-bridge.mdx b/pages/interop/superchain-eth-bridge.mdx index c18861cdb..4ef057ab2 100644 --- a/pages/interop/superchain-eth-bridge.mdx +++ b/pages/interop/superchain-eth-bridge.mdx @@ -38,7 +38,7 @@ InteroperableETH enables seamless ETH transfers across Superchain blockchains. I * [`SuperchainETHBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol): A bridge contract that facilitates ETH transfers between Superchain blockchains. * [`ETHLiquidity`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/ETHLiquidity.sol): A liquidity provider for ETH transfers. `SuperchainETHBridge` uses this contract as a liquidity repository to ensure ETH availability on the destination chain. -* [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol): A messaging contract that [facilitates cross-chain communication](/app-developers/guides/interoperability/message-passing). +* [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol): A messaging contract that [facilitates cross-chain communication](/interop/message-passing). Superchain ETH Bridge deposits ETH into the `ETHLiquidity` contract on the source chain and withdraws an equivalent amount on the destination chain. This mechanism improves capital efficiency and eliminates liquidity fragmentation and poor user experiences caused by asset wrapping or reliance on liquidity pools. @@ -97,7 +97,7 @@ sequenceDiagram 2. `SuperchainETHBridge` transfers the specified ETH amount to `ETHLiquidity`, removing it from circulation on the source chain. -3. `SuperchainETHBridge` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) message to `SuperchainETHBridge` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/app-developers/guides/interoperability/message-passing). +3. `SuperchainETHBridge` on the source chain sends a [`relayETH`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) message to `SuperchainETHBridge` on the destination chain using the [`L2ToL2CrossDomainMessenger`](/interop/message-passing). #### Executing message @@ -162,6 +162,6 @@ Here is an example of how this works. ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain. -* Learn about [SuperchainERC20](/concepts/interoperability/superchain-erc20). -* Practice [transferring ETH across chains using Superchain interop](/app-developers/tutorials/bridging/cross-chain-eth). +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain. +* Learn about [SuperchainERC20](/interop/superchain-erc20). +* Practice [transferring ETH across chains using Superchain interop](/interop/tutorials/bridge-crosschain-eth). diff --git a/pages/interop/tools.mdx b/pages/interop/tools.mdx index 4da5559fc..d69c99caf 100644 --- a/pages/interop/tools.mdx +++ b/pages/interop/tools.mdx @@ -22,8 +22,8 @@ import { Card, Cards } from 'nextra/components' Documentation covering Interop devnet, Supersim in the Interop section of the OP Stack ecosystem. - } /> + } /> - } /> + } /> diff --git a/pages/interop/tools/devnet.mdx b/pages/interop/tools/devnet.mdx index 1b4c50651..3c6f4a28e 100644 --- a/pages/interop/tools/devnet.mdx +++ b/pages/interop/tools/devnet.mdx @@ -85,6 +85,6 @@ The Superchain interop devnet is a temporary public network of two OP Stack Sepo ## Next steps -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* View more [interop tutorials](/app-developers/tutorials/interoperability) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* View more [interop tutorials](/interop/tutorials) diff --git a/pages/interop/tutorials.mdx b/pages/interop/tutorials.mdx index 976b9a873..6537a9bfd 100644 --- a/pages/interop/tutorials.mdx +++ b/pages/interop/tutorials.mdx @@ -22,20 +22,20 @@ import { Card, Cards } from 'nextra/components' Documentation covering Interop related tutorials. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/interop/tutorials/bridge-crosschain-eth.mdx b/pages/interop/tutorials/bridge-crosschain-eth.mdx index 1e7909b9e..0c9e9cd69 100644 --- a/pages/interop/tutorials/bridge-crosschain-eth.mdx +++ b/pages/interop/tutorials/bridge-crosschain-eth.mdx @@ -30,14 +30,14 @@ import { AutorelayCallout } from '@/components/AutorelayCallout' This tutorial provides step-by-step instructions for how to send ETH from one chain in the Superchain interop cluster to another. For a conceptual overview, - see the [interoperable ETH explainer](/concepts/interoperability/superchain-eth). + see the [interoperable ETH explainer](/interop/superchain-eth-bridge). ## Overview Crosschain ETH transfers in the Superchain are facilitated through the [SuperchainETHBridge](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainETHBridge.sol) contract. This tutorial walks through how to send ETH from one chain to another. -You can do this on [Supersim](/app-developers/tools/development/supersim), [the Interop devnet](/app-developers/tools/testing/devnet), or production once it is released. +You can do this on [Supersim](/interop/tools/supersim), [the Interop devnet](/interop/tools/devnet), or production once it is released. ### What you'll build @@ -83,13 +83,13 @@ The tutorial uses these primary tools: ### Configure the network - You can run this tutorial either with [Supersim](/app-developers/tools/development/supersim) running locally, or using the [Interop devnet](/app-developers/tools/testing/devnet). + You can run this tutorial either with [Supersim](/interop/tools/supersim) running locally, or using the [Interop devnet](/interop/tools/devnet). Select the correct tab and follow the directions. - 1. Follow the [Installation Guide](/app-developers/tutorials/development/supersim/installation) to install Supersim for running blockchains with Interop. + 1. Follow the [Installation Guide](/app-developers/tutorials/supersim/getting-started/installation) to install Supersim for running blockchains with Interop. 1. Start Supersim. @@ -285,7 +285,7 @@ The tutorial uses these primary tools: ## Next steps -* Check out the [SuperchainETHBridge guide](/concepts/interoperability/superchain-eth) for more information. -* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. -* Review the [Superchain interop explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. +* Check out the [SuperchainETHBridge guide](/interop/superchain-eth-bridge) for more information. +* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. +* Review the [Superchain interop explainer](/interop/explainer) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/custom-superchain-erc20.mdx b/pages/interop/tutorials/custom-superchain-erc20.mdx index 6dfdb34b6..994f47df4 100644 --- a/pages/interop/tutorials/custom-superchain-erc20.mdx +++ b/pages/interop/tutorials/custom-superchain-erc20.mdx @@ -29,10 +29,10 @@ import { Callout, Steps, Tabs } from 'nextra/components' ## Overview -This guide explains how to upgrade an ERC20 to a [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) that can then teleport across the Superchain interop cluster quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract. For more information on how it works, [see the explainer](/concepts/interoperability/superchain-erc20). +This guide explains how to upgrade an ERC20 to a [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) that can then teleport across the Superchain interop cluster quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract. For more information on how it works, [see the explainer](/interop/superchain-erc20). To ensure fungibility across chains, `SuperchainERC20` assets must have the same contract address on all chains. This requirement abstracts away the complexity of cross-chain validation. Achieving this requires deterministic deployment methods. There are [many ways to do this](https://github.com/Arachnid/deterministic-deployment-proxy). -Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit). +Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit).
About this tutorial @@ -45,7 +45,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/t * Understanding of smart contract development * Familiarity with blockchain concepts - * Familiarity with [standard SuperchainERC20 deployments](/app-developers/tutorials/tokens/deploy-superchain-erc20). + * Familiarity with [standard SuperchainERC20 deployments](/interop/tutorials/deploy-superchain-erc20). **Development environment** @@ -55,7 +55,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/t ### What you'll do -* Use the [SuperchainERC20 starter kit](/app-developers/quickstarts/token-starter-kit) to deploy tokens with your custom code. +* Use the [SuperchainERC20 starter kit](/app-developers/starter-kit) to deploy tokens with your custom code. ## Step by step @@ -99,7 +99,7 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/t - The [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) is already set up for [Supersim](/app-developers/tools/development/supersim). + The [SuperchainERC20 Starter Kit](/app-developers/starter-kit) is already set up for [Supersim](/interop/tools/supersim). All you need to do is start it. ```sh @@ -108,8 +108,8 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/t - The [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) is already set up for [Supersim](/app-developers/tools/development/supersim). - If you want to use it with a different set of blockchains, for example the [Devnets](/app-developers/tools/testing/devnet), follow these steps. + The [SuperchainERC20 Starter Kit](/app-developers/starter-kit) is already set up for [Supersim](/interop/tools/supersim). + If you want to use it with a different set of blockchains, for example the [Devnets](/interop/tools/devnet), follow these steps. 1. Edit `packages/contracts/foundry.toml` to add the RPC endpoints (add the bottom two rows). @@ -249,10 +249,10 @@ Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/t ``` -For more details [see the explainer](/concepts/interoperability/superchain-erc20). +For more details [see the explainer](/interop/superchain-erc20). ## Next steps -* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. +* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. * If you'd like a guided walkthrough, check out our [tutorial video](https://x.com/i/status/1866095114374045969) instead. -* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. +* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/deploy-superchain-erc20.mdx b/pages/interop/tutorials/deploy-superchain-erc20.mdx index d9d20052b..e7d031631 100644 --- a/pages/interop/tutorials/deploy-superchain-erc20.mdx +++ b/pages/interop/tutorials/deploy-superchain-erc20.mdx @@ -34,7 +34,7 @@ import { Steps } from 'nextra/components' This guide explains how to issue new assets with the [`SuperchainERC20`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainERC20.sol) contract. Those assets can then be bridged quickly and safely using the [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) contract (once interop is operational). -For more information on how it works, [see the explainer](/concepts/interoperability/superchain-erc20). +For more information on how it works, [see the explainer](/interop/superchain-erc20). Note that bridging assets through the Superchain using `SuperchainTokenBridge` *never* affects the total supply of your asset. The supply remains fixed, bridging only changes the chain on which the asset is located. @@ -43,7 +43,7 @@ The token's total amount across all networks always remains the same, ensuring v To ensure fungibility across chains, `SuperchainERC20` assets *must* have the same contract address on all chains. This requirement abstracts away the complexity of cross-chain validation. Achieving this requires deterministic deployment methods. There are multiple ways to do this. -Here we will use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit). +Here we will use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit).
@@ -73,7 +73,7 @@ The tutorial uses these primary tools: ### What you'll do -* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy an `SuperchainERC20` token on the devnet. +* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy an `SuperchainERC20` token on the devnet. ## Step by step explanation @@ -84,8 +84,8 @@ The tutorial uses these primary tools: ### Prepare for deployment - The Starter Kit already deploys a `SuperchainERC20` token to [Supersim](/app-developers/tools/development/supersim). - Here are the required changes to deploy it to the [Interop devnet](/app-developers/tools/testing/devnet). + The Starter Kit already deploys a `SuperchainERC20` token to [Supersim](/interop/tools/supersim). + Here are the required changes to deploy it to the [Interop devnet](/interop/tools/devnet). 1. Edit `packages/contracts/foundry.toml` to add the RPC endpoints for the devnet (add the bottom two rows). @@ -194,6 +194,6 @@ The tutorial uses these primary tools: ## Next steps * Learn how to [transfer tokens between chains inside the Superchain](transfer-superchainERC20). -* Use the [SuperchainERC20 Starter Kit](/app-developers/quickstarts/token-starter-kit) to deploy your token across the Superchain. +* Use the [SuperchainERC20 Starter Kit](/app-developers/starter-kit) to deploy your token across the Superchain. * Explore the [SuperchainERC20 specifications](https://specs.optimism.io/interop/token-bridging.html?utm_source=op-docs&utm_medium=docs) for in-depth implementation details. -* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. +* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. diff --git a/pages/interop/tutorials/event-contests.mdx b/pages/interop/tutorials/event-contests.mdx index aed534fd8..a408a332a 100644 --- a/pages/interop/tutorials/event-contests.mdx +++ b/pages/interop/tutorials/event-contests.mdx @@ -32,7 +32,7 @@ We showcase cross chain composability through the implementation of contests. Le ## How it works -Unlike [TicTacToe](/app-developers/tutorials/interoperability/event-reads) which is deployed on every participating chain, the contests are deployed on a single L2, behaving like an application-specific OP Stack chain rather than a horizontally scaled app. +Unlike [TicTacToe](/interop/tutorials/event-reads) which is deployed on every participating chain, the contests are deployed on a single L2, behaving like an application-specific OP Stack chain rather than a horizontally scaled app. ### Implement contests diff --git a/pages/interop/tutorials/event-reads.mdx b/pages/interop/tutorials/event-reads.mdx index d8b265ee2..fd00dcf4d 100644 --- a/pages/interop/tutorials/event-reads.mdx +++ b/pages/interop/tutorials/event-reads.mdx @@ -209,4 +209,4 @@ Leveraging superchain interop, we can build new types of horizontally scalable c * As new chains are added to the superchain, this contract can be installed by anyone and immediately playable with no necessary code changes. The frontend simply needs to react the addition of a new chain. * The concept of a "chain" can be completely abstracted away from the user. When connecting their wallet, the frontend can simply pick the chain which the user has funds on with the lowest gas fees. -* Event reading enables a new level of composability for cross-chain interactions. Imagine [contests](/app-developers/tutorials/interoperability/event-contests) contract that resolves based on the outcome of a TicTacToe game via the `GameWon` or `GameLost` event without the need for a trusted oracle, nor permission or native integration with the TicTacToe contract. +* Event reading enables a new level of composability for cross-chain interactions. Imagine [contests](/interop/tutorials/event-contests) contract that resolves based on the outcome of a TicTacToe game via the `GameWon` or `GameLost` event without the need for a trusted oracle, nor permission or native integration with the TicTacToe contract. diff --git a/pages/interop/tutorials/message-passing.mdx b/pages/interop/tutorials/message-passing.mdx index e9c86e22f..128cdfeb9 100644 --- a/pages/interop/tutorials/message-passing.mdx +++ b/pages/interop/tutorials/message-passing.mdx @@ -76,7 +76,7 @@ message passing system that enables different chains to interact with each other This tutorial provides step-by-step instructions for implementing cross-chain messaging. For a conceptual overview, - see the [Message Passing Explainer](/app-developers/guides/interoperability/message-passing). + see the [Message Passing Explainer](/interop/message-passing). In this tutorial, you will learn how to use the [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol) contract to pass messages between interoperable blockchains. @@ -84,7 +84,7 @@ In this tutorial, you will learn how to use the [`L2ToL2CrossDomainMessenger`](h ## Setting up your development environment - ### Follow the [Installation Guide](/app-developers/tutorials/development/supersim/installation) to install: + ### Follow the [Installation Guide](/app-developers/tutorials/supersim/getting-started/installation) to install: * Foundry for smart contract development (required in all cases) * Supersim for local blockchain simulation (optional) @@ -107,13 +107,13 @@ The implementation consists of three main components: ### Setting up test networks - 1. If you are using [Supersim](/app-developers/tools/development/supersim), go to the directory where Supersim is installed and start it with autorelay. + 1. If you are using [Supersim](/interop/tools/supersim), go to the directory where Supersim is installed and start it with autorelay. ```sh ./supersim --interop.autorelay ``` - If you are using [the devnets](/app-developers/tools/testing/devnet), just skip this step. + If you are using [the devnets](/interop/tools/devnet), just skip this step. @@ -409,6 +409,6 @@ In this section we change `Greeter.sol` to emit a separate event in it receives ## Next steps -* Review the [Superchain Interop Explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. -* Read the [Message Passing Explainer](/app-developers/guides/interoperability/message-passing) to understand what happens "under the hood". +* Review the [Superchain Interop Explainer](/interop/explainer) for answers to common questions about interoperability. +* Read the [Message Passing Explainer](/interop/message-passing) to understand what happens "under the hood". * Write a revolutionary app that uses multiple blockchains within the Superchain. diff --git a/pages/interop/tutorials/message-passing/manual-relay.mdx b/pages/interop/tutorials/message-passing/manual-relay.mdx index ea48c69e4..09e8735ce 100644 --- a/pages/interop/tutorials/message-passing/manual-relay.mdx +++ b/pages/interop/tutorials/message-passing/manual-relay.mdx @@ -72,7 +72,7 @@ These steps are necessary to run the tutorial, regardless of whether you are usi This exercise needs to be done on Supersim. You cannot use the devnets because you cannot disable autorelay on them. - 1. Follow the [installation guide](/app-developers/tutorials/development/supersim/installation). + 1. Follow the [installation guide](/app-developers/tutorials/supersim/getting-started/installation). 2. Run Supersim *without* `--interop.relay`. @@ -82,7 +82,7 @@ These steps are necessary to run the tutorial, regardless of whether you are usi ### Create the state for relaying messages - The results of this step are similar to what the [message passing tutorial](/app-developers/tutorials/interoperability/message-passing) would produce if you did not have autorelay on. + The results of this step are similar to what the [message passing tutorial](/interop/tutorials/message-passing) would produce if you did not have autorelay on. Execute this script. @@ -348,6 +348,6 @@ Here is the detailed explanation: ## Next steps -* Review the [Superchain interop explainer](/concepts/interoperability/overview) for answers to common questions about interoperability. -* Read the [message passing explainer](/app-developers/guides/interoperability/message-passing) to understand what happens "under the hood". +* Review the [Superchain interop explainer](/interop/explainer) for answers to common questions about interoperability. +* Read the [message passing explainer](/interop/message-passing) to understand what happens "under the hood". * Write a revolutionary app that uses multiple blockchains within the Superchain. diff --git a/pages/interop/tutorials/transfer-superchainERC20.mdx b/pages/interop/tutorials/transfer-superchainERC20.mdx index 30558629e..81c6dd05b 100644 --- a/pages/interop/tutorials/transfer-superchainERC20.mdx +++ b/pages/interop/tutorials/transfer-superchainERC20.mdx @@ -217,5 +217,5 @@ Note that this tutorial provides step-by-step instructions for transferring `Sup ## Next steps * Read the [Superchain Interop Explainer](/interop/explainer#faqs) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). -* Learn [how this works](/concepts/interoperability/superchain-erc20). -* Use [Supersim](/app-developers/tools/development/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. +* Learn [how this works](/interop/superchain-erc20). +* Use [Supersim](/app-developers/tools/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. diff --git a/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx b/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx index 956f6cb82..30f07a954 100644 --- a/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx +++ b/pages/interop/tutorials/upgrade-to-superchain-erc20/custom-bridge.mdx @@ -15,7 +15,7 @@ import { Steps, Callout, Tabs } from 'nextra/components' ## Overview Sometimes the address of an ERC20 contract is not available on a different chain. -This means that the [SuperchainTokenBridge](/concepts/interoperability/superchain-erc20) is not an option. +This means that the [SuperchainTokenBridge](/interop/superchain-erc20) is not an option. However, if the original ERC20 contract is behind a proxy (so we can add [ERC7802](https://eips.ethereum.org/EIPS/eip-7802) support), we can still use interop by writing our own bridge.
@@ -23,12 +23,12 @@ However, if the original ERC20 contract is behind a proxy (so we can add [ERC780 **What you'll learn** - * How to use [interop message passing](/app-developers/tutorials/interoperability/message-passing) to create a custom bridge. + * How to use [interop message passing](/interop/tutorials/message-passing) to create a custom bridge. **Prerequisite knowledge** - * How to [deploy SuperchainERC20 tokens with custom code](/app-developers/tutorials/tokens/custom-superchain-erc20). - * How to [transfer interop messages](/app-developers/tutorials/interoperability/message-passing). + * How to [deploy SuperchainERC20 tokens with custom code](/interop/tutorials/custom-superchain-erc20). + * How to [transfer interop messages](/interop/tutorials/message-passing).
@@ -80,12 +80,12 @@ After that happens, all new calls are sent to the new implementation. ## Instructions -Some steps depend on whether you want to deploy on [Supersim](/app-developers/tools/development/supersim) or on the [development network](/app-developers/tools/testing/devnet). +Some steps depend on whether you want to deploy on [Supersim](/interop/tools/supersim) or on the [development network](/interop/tools/devnet). ### Install and run Supersim - If you are going to use Supersim, [follow these instructions](/app-developers/tutorials/development/supersim/installation) to install and run Supersim. + If you are going to use Supersim, [follow these instructions](/app-developers/tutorials/supersim/getting-started/installation) to install and run Supersim. Make sure to run Supersim with autorelay on. @@ -105,7 +105,7 @@ Some steps depend on whether you want to deploy on [Supersim](/app-developers/to ./setup-for-erc20-upgrade.sh ``` - If you want to deploy to the [development networks](/app-developers/tools/testing/devnet), provide `setup-for-erc20-upgrade.sh` with the private key of an address with ETH on both devnets. + If you want to deploy to the [development networks](/interop/tools/devnet), provide `setup-for-erc20-upgrade.sh` with the private key of an address with ETH on both devnets. ```sh ./setup-for-erc20-upgrade.sh @@ -343,6 +343,6 @@ Some steps depend on whether you want to deploy on [Supersim](/app-developers/to ## Next steps -* Deploy a [SuperchainERC20](/app-developers/tutorials/tokens/deploy-superchain-erc20) to the Superchain -* [Learn more about SuperchainERC20](/concepts/interoperability/superchain-erc20) -* Build a [revolutionary app](/app-developers/quickstarts/first-app) that uses multiple blockchains within the Superchain +* Deploy a [SuperchainERC20](/interop/tutorials/deploy-superchain-erc20) to the Superchain +* [Learn more about SuperchainERC20](/interop/superchain-erc20) +* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain diff --git a/pages/interop/tutorials/verify-messages.mdx b/pages/interop/tutorials/verify-messages.mdx index 1d68ff52a..ccd773307 100644 --- a/pages/interop/tutorials/verify-messages.mdx +++ b/pages/interop/tutorials/verify-messages.mdx @@ -364,5 +364,5 @@ To demonstrate this functionality, this guide uses an [attestation](https://atte ## Next steps * Read the [Superchain Interop Explainer](/interop/explainer#faqs) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes). -* Use [Supersim](/app-developers/tools/development/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. +* Use [Supersim](/app-developers/tools/supersim), a local dev environment that simulates Superchain interop for testing applications against a local version of the Superchain. * Find a cool dapp that only works on a single blockchain and extend it to the entire interop cluster, at least for reading information. diff --git a/pages/notices/custom-gas-tokens-deprecation.mdx b/pages/notices/custom-gas-tokens-deprecation.mdx deleted file mode 100644 index 5d67200f4..000000000 --- a/pages/notices/custom-gas-tokens-deprecation.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Preparing for custom gas tokens deprecation -description: >- - This page outlines the details of the Custom Gas Tokens deprecation and points - towards alternatives -lang: en-US -content_type: guide -topic: custom-gas-tokens-deprecation -personas: - - app-developer - - chain-operator -categories: - - security - - automated-pause -is_imported_content: 'false' ---- - -## Deprecation of Custom Gas Tokens - -The Custom Gas Token beta feature has been deprecated. Beta features give developers access to early versions of highly requested features, allowing us to validate demand through usage data and user feedback. Since May 2024, usage of the custom gas token beta feature has steadily declined as ERC-4337 and robust paymaster services gained traction. - -Based on this trend, the beta feature was deprecated instead of being moved to the OP Stack standard configuration. While the custom gas token code has been removed from the Optimism monorepo, chains can choose to maintain their own OP Stack Fork at their own risk. Future upgrades to the OP Stack will not be compatible with custom gas tokens. Options for existing chains that use custom gas tokens and new chains are discussed below. - -Additionally, advancements in Account Abstraction (AA) tooling now enable gas payments in any token, offering better alternatives for the limited number of chains that require this feature. - - -## Highlights - -* Code removal: The Custom Gas Token code has been removed from the Optimism monorepo in the following PRs [1](https://github.com/ethereum-optimism/optimism/pull/13686), [2](https://github.com/ethereum-optimism/optimism/pull/13921), [3](https://github.com/ethereum-optimism/optimism/pull/1409). -* Use AA Tooling: New chains looking to enable Custom Gas Token functionality should utilize paymasters to enable the same functionality -* End of developer support: OP Labs Developer Support will no longer address CGT-related issues or requests. - -## Options for new chains - -The Optimism ecosystem is focusing on interoperability within the Superchain, with efforts and incentives directed towards [standard configured chains](/chain-operators/reference/standard-configuration). Some options are: - -* All new chains launch with the standard ETH gas token configuration. -* Utilize Account Abstraction tooling to allow users to pay gas fees in alternative tokens instead of relying on Custom Gas Tokens. - * For example, a given chain can maintain ETH as its protocol gas token while using AA tooling to permit payments in their native token. - -There are many account abstractions providers in the space. You should find the correct one for your needs, but we've [compiled a list](/app-developers/tools/build/account-abstraction#account-abstraction-tools) to get you started. - -## Options for existing chains - -For existing chains that utilize Custom Gas Token, there are a few paths forward: - -* You can continue to operate your chain as is and not pull in the latest upgrades to the OP Stack. -* At your own risk, you can start maintaining an OP Stack fork that adds back in the CGT code, upstreaming the latest OP stack upgrades into your fork- which was removed from the Optimism monorepo in the following PRs [1](https://github.com/ethereum-optimism/optimism/pull/13686), [2](https://github.com/ethereum-optimism/optimism/pull/13921), [3](https://github.com/ethereum-optimism/optimism/pull/1409). -* You can launch a new standard configuration chain and coordinate a migration of applications and users from your current Custom Gas Token chain to the new chain. - -## Risks of continued use of Custom Gas Tokens - -For any chain considering CGT post-deprecation, be aware of the following risks: - -* Fee mechanism flaws: Fees are charged as a scalar on blob fees denominated in ETH. This means CGT chains will either drastically overcharge or undercharge users for transaction fees relative to their L1 Data Availability costs. - -* Higher overhead for RaaS providers: Managing CGT chains requires RaaS providers to assume additional risk exposure to the custom gas token asset. - -* Security concerns: The CGT code modifies the L1 `OptimismPortal`, where all native assets are stored, and will not have undergone third-party auditing. - -* Lack of future compatibility: Without official support from core protocol developers, there is no guarantee that future OP Stack upgrades will function properly with CGT-based chains. - -### Need help? - -For further assistance or questions about this migration, feel free to reach out through the following channels: - -* Join us on our [Superchain Dev Discord](https://guild.xyz/superchain-devs). -* For questions, discussions and general support check out the [developer forum](https://github.com/ethereum-optimism/developers/discussions). -* Open an [issue on our GitHub repository](https://github.com/ethereum-optimism/docs/issues) for documentation-related concerns. diff --git a/pages/notices/pectra-changes.mdx b/pages/notices/pectra-changes.mdx index 482de5461..bdf2fd0b1 100644 --- a/pages/notices/pectra-changes.mdx +++ b/pages/notices/pectra-changes.mdx @@ -26,7 +26,7 @@ import { Steps, Callout } from 'nextra/components' You must update your Sepolia nodes to the latest release of op-node and schedule a hardfork activation time to avoid this issue on your network. There are new instructions in the node operator section to help you mitigate this issue. - See this notice page for more information: [Superchain testnets' blob fee bug](/notices/archive/blob-fee-bug). + See this notice page for more information: [Superchain testnets' blob fee bug](/notices/blob-fee-bug). This page outlines breaking changes related to the Ethereum Pectra (Prague-Electra) hard fork for chain operators and node operators on OP Stack chains. The OP Stack is dividing the Pectra upgrade into two parts: diff --git a/pages/notices/pectra-fees.mdx b/pages/notices/pectra-fees.mdx index bc338b458..0f5e51c4d 100644 --- a/pages/notices/pectra-fees.mdx +++ b/pages/notices/pectra-fees.mdx @@ -31,7 +31,7 @@ Chains configured for blob data availability remain entirely unaffected by the P Since the Ecotone upgrade, the Optimism protocol prices L2 transactions using a function that incorporates the L1 base fee as well as the L1 blob base fee. The other inputs are the so-called "Ecotone scalars": operator-controlled parameters stored in the SystemConfig contract which can be used to tune the chain's (approximate) target profit margin for DA. -Please review your [Ecotone scalar chain configuration](/chain-operators/guides/management/blobs). +Please review your [Ecotone scalar chain configuration](/operators/chain-operators/management/blobs). If your chain uses a zero blob base fee scalar, meaning it is configured to price for calldata only, you may need to update the base fee scalar and/or the blob base fee scalar. Otherwise, no action is necessary. @@ -47,13 +47,13 @@ The impact and recommended actions for each of the possible configurations are s ### Chains charging for calldata DA and spending on calldata DA -If your chain uses a zero blob base fee scalar and your batcher is configured to submit using calldata *only*, then you should take the opportunity to check your chain's profit margin according to [this guide](/chain-operators/guides/management/blobs) and make any adjustments to your Ecotone scalars as necessary. This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is as desired. +If your chain uses a zero blob base fee scalar and your batcher is configured to submit using calldata *only*, then you should take the opportunity to check your chain's profit margin according to [this guide](/operators/chain-operators/management/blobs) and make any adjustments to your Ecotone scalars as necessary. This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is as desired. If your profit margin was perfectly tuned before Pectra, then you should scale your base fee scalar by 10/4. ### Chains charging for calldata DA and spending on blob DA -If your chain uses a zero blob base fee scalar and your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/chain-operators/guides/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet. +If your chain uses a zero blob base fee scalar and your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/operators/chain-operators/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet. ### General remarks diff --git a/pages/notices/superchain-withdrawal-pause-test.mdx b/pages/notices/superchain-withdrawal-pause-test.mdx index 827f5f0d3..441103149 100644 --- a/pages/notices/superchain-withdrawal-pause-test.mdx +++ b/pages/notices/superchain-withdrawal-pause-test.mdx @@ -32,6 +32,6 @@ The Optimism Collective will be testing improved incident response features on t 2. Members of the Optimism Collective's security team will ensure that the pause is executed correctly and the incident response improvements worked as intended. 3. Then the `unpause` function will be called to resume normal operations. -To learn more about this functionality, please refer to this [documentation](/concepts/security/pause-system). +To learn more about this functionality, please refer to this [documentation](/stack/security/pause). This functionality is important for the security of the Superchain and should be understood by Chain Operators, users, and especially for centralized exchanges and third-party bridge operators. **Please note that this will not effect any L1-to-L2 deposit transactions or L2 transactions. No action is required from users or operators.** diff --git a/pages/notices/upgrade-13.mdx b/pages/notices/upgrade-13.mdx index 5d7a24765..d09bb5760 100644 --- a/pages/notices/upgrade-13.mdx +++ b/pages/notices/upgrade-13.mdx @@ -47,7 +47,7 @@ For more information on the Upgrade 13 implementation details, please review the ### OP Contracts Manager -The OP Contracts Manager ([OPCM](/chain-operators/reference/opcm)) is a new system for upgrading L1 contracts across the Superchain. Each release will have its own OPCM that can deploy new proxies and upgrade existing OP Chains. +The OP Contracts Manager ([OPCM](/stack/opcm)) is a new system for upgrading L1 contracts across the Superchain. Each release will have its own OPCM that can deploy new proxies and upgrade existing OP Chains. Key changes: diff --git a/pages/notices/upgrade-14.mdx b/pages/notices/upgrade-14.mdx index e80dcf674..0e42e8dc7 100644 --- a/pages/notices/upgrade-14.mdx +++ b/pages/notices/upgrade-14.mdx @@ -42,7 +42,7 @@ Upgrade 14 contains two main components: ### MT-Cannon -MT-Cannon is an upgrade to [Cannon](/concepts/architecture/fault-proofs/cannon), the [fault proof VM](/stack/fault-proofs/fp-components#fault-proof-virtual-machine) that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. +MT-Cannon is an upgrade to [Cannon](/stack/fault-proofs/cannon), the [fault proof VM](/stack/fault-proofs/fp-components#fault-proof-virtual-machine) that supports the MIPS-64 instruction set and multi-threaded programs, removing memory constraints for the fault proof program. Key changes: diff --git a/pages/notices/upgrade-15.mdx b/pages/notices/upgrade-15.mdx index 58cedc0d6..cec3d8073 100644 --- a/pages/notices/upgrade-15.mdx +++ b/pages/notices/upgrade-15.mdx @@ -42,7 +42,7 @@ For more information on the Isthmus implementation details, please review [Isthm Chain operators must upgrade their nodes ahead of the activation times to a release that contains the Isthmus changes and has the activation times for their chains baked in, or set the activation times manually via overrides. The details are outlined in the node operator section below. Additionally, chain operators must update `op-batcher` to [`v1.12.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-batcher%2Fv1.12.0) and must update `op-challenger` to [`v1.4.0`](https://github.com/ethereum-optimism/optimism/releases/tag/op-challenger%2Fv1.4.0). -In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/archive/upgrade-14) are required to utilize this new functionality. +In addition to this, the L1 smart contract upgrades in [upgrade 14](/notices/upgrade-14) are required to utilize this new functionality. ### For permissionless fault proof enabled chains diff --git a/pages/operators/chain-operators.mdx b/pages/operators/chain-operators.mdx index 753afa516..32e9d68a9 100644 --- a/pages/operators/chain-operators.mdx +++ b/pages/operators/chain-operators.mdx @@ -30,17 +30,17 @@ Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Man - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/architecture.mdx b/pages/operators/chain-operators/architecture.mdx index 9a7dc16df..146537c9c 100644 --- a/pages/operators/chain-operators/architecture.mdx +++ b/pages/operators/chain-operators/architecture.mdx @@ -20,7 +20,10 @@ is_imported_content: 'false' import Image from 'next/image' import { Callout } from 'nextra/components' -import {OpProposerDescriptionShort} from '@/content/index.js' +import {OpProposerDescriptionShort} from '@/content/index.js' +import { ChainOperatorsBanner } from '../../../components/ChainOperatorsBanner' + + # Chain architecture @@ -30,7 +33,7 @@ perspective. The OP Stack is built in such a way that it is as similar to Ethereum as possible. Like Ethereum, the OP Stack has execution and consensus clients. The OP Stack also has some privileged roles that produce L2 blocks. If you want a more detailed view of the OP Stack protocol, check out the -[OP Stack section](/concepts/stack/overview) of our documentation. +[OP Stack section](/stack/getting-started) of our documentation. ## Permissioned components @@ -174,11 +177,11 @@ In addition to the core protocol components, the following offchain services are ### op-conductor -The [op-conductor](/chain-operators/tools/op-conductor) RPC can act as a leader-aware rpc proxy for op-batcher (proxies the necessary op-geth / op-node RPC methods if the node is the leader). +The [op-conductor](/operators/chain-operators/tools/op-conductor) RPC can act as a leader-aware rpc proxy for op-batcher (proxies the necessary op-geth / op-node RPC methods if the node is the leader). ### op-challenger -The [op-challenger](/chain-operators/tools/op-challenger) verifies the correctness of the L2 state by challenging invalid state transitions. This ensures the network's security and validity. +The [op-challenger](/operators/chain-operators/deploy/op-challenger) verifies the correctness of the L2 state by challenging invalid state transitions. This ensures the network's security and validity. ### Ethereum L1 nodes @@ -215,7 +218,7 @@ This tool is an RPC request router and proxy. It does the following things: ## Next steps -* Find out how you can support [snap sync](/chain-operators/guides/management/snap-sync) +* Find out how you can support [snap sync](/operators/chain-operators/management/snap-sync) on your chain. -* Find out how you can utilize [blob space](/chain-operators/guides/management/blobs) +* Find out how you can utilize [blob space](/operators/chain-operators/management/blobs) to reduce the transaction fee cost on your chain. diff --git a/pages/operators/chain-operators/configuration.mdx b/pages/operators/chain-operators/configuration.mdx index f204be021..4f043904d 100644 --- a/pages/operators/chain-operators/configuration.mdx +++ b/pages/operators/chain-operators/configuration.mdx @@ -25,11 +25,11 @@ import { ChainOperatorsBanner } from '../../../components/ChainOperatorsBanner' This section provides information on batcher configuration, chain operator configurations, proposer configuration, and rollup deployment configuration. Users will find API references and overviews to help understand and work with these topics. - + - + - + - + diff --git a/pages/operators/chain-operators/configuration/batcher.mdx b/pages/operators/chain-operators/configuration/batcher.mdx index c327d1fe2..f9678ba59 100644 --- a/pages/operators/chain-operators/configuration/batcher.mdx +++ b/pages/operators/chain-operators/configuration/batcher.mdx @@ -25,7 +25,7 @@ options are from the `--help` in [v1.10.0](https://github.com/ethereum-optimism/ ## Batcher policy -The batcher policy defines high-level constraints and responsibilities regarding how L2 data is posted to L1. Below are the [standard guidelines](/chain-operators/reference/standard-configuration) for configuring the batcher within the OP Stack. +The batcher policy defines high-level constraints and responsibilities regarding how L2 data is posted to L1. Below are the [standard guidelines](/superchain/standard-configuration) for configuring the batcher within the OP Stack. | Parameter | Description | Administrator | Requirement | Notes | | -------------------------- | -------------------------------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -89,7 +89,7 @@ The minimum tip cap and base fee are also lifted to 2 gwei because it is uncerta The resubmission timeout is increased to a few minutes to give more time for inclusion before bumping the fees because current transaction pool implementations require a doubling of fees for blob transaction replacements. Multi-blob transactions are particularly useful for medium to high-throughput chains, where enough transaction volume exists to fill up 6 blobs in a reasonable amount of time. -You can use [this calculator](https://docs.google.com/spreadsheets/d/1V3CWpeUzXv5Iopw8lBSS8tWoSzyR4PDDwV9cu2kKOrs/edit?gid=186414307#gid=186414307) for your chain to determine what number of blobs are right for you, and what gas scalar configuration to use. Please also refer to guide on [Using Blobs](/chain-operators/guides/management/blobs) for chain operators. +You can use [this calculator](https://docs.google.com/spreadsheets/d/1V3CWpeUzXv5Iopw8lBSS8tWoSzyR4PDDwV9cu2kKOrs/edit?gid=186414307#gid=186414307) for your chain to determine what number of blobs are right for you, and what gas scalar configuration to use. Please also refer to guide on [Using Blobs](/operators/chain-operators/management/blobs) for chain operators. ### Set your `--batch-type=1` to use span batches @@ -177,7 +177,7 @@ may save gas by increasing the `MAX_CHANNEL_DURATION`. See the [recommendations The batch type. 0 for `SingularBatch` and 1 for `SpanBatch`. The default value is `0` for `SingularBatch`. -See the [span batch feature page](/chain-operators/reference/features/span-batches) to learn more. +See the [span batch feature page](/operators/chain-operators/features/span-batches) to learn more. `--batch-type=` diff --git a/pages/operators/chain-operators/configuration/overview.mdx b/pages/operators/chain-operators/configuration/overview.mdx index 7f0e8c4e6..edfff7fbb 100644 --- a/pages/operators/chain-operators/configuration/overview.mdx +++ b/pages/operators/chain-operators/configuration/overview.mdx @@ -34,7 +34,7 @@ documentation for details on configuring each piece. * Be aware that many of these values cannot be changed after deployment or require a complex process to update. Carefully consider and validate all settings during configuration to avoid issues later. - * [Rollup Configuration Documentation](/chain-operators/guides/configuration/rollup) + * [Rollup Configuration Documentation](/operators/chain-operators/configuration/rollup) {

Batcher Configuration

} @@ -42,21 +42,21 @@ documentation for details on configuring each piece. it available for verifiers. These configurations determine the batcher's behavior. - * [Batcher Configuration Documentation](/chain-operators/guides/configuration/batcher) + * [Batcher Configuration Documentation](/operators/chain-operators/configuration/batcher) {

Proposer Configuration

} The proposer is the service that submits the output roots to the L1. These configurations determine the proposer's behavior. - * [Proposer Configuration Documentation](/chain-operators/guides/configuration/proposer) + * [Proposer Configuration Documentation](/operators/chain-operators/configuration/proposer) {

Node Configuration

} The rollup node has a wide array of configurations for both the consensus and execution clients. - * [Node Configuration Documentation](/node-operators/guides/configuration/base) + * [Node Configuration Documentation](/operators/node-operators/configuration/base-config)
diff --git a/pages/operators/chain-operators/configuration/proposer.mdx b/pages/operators/chain-operators/configuration/proposer.mdx index 06e3f4f71..ce33a2b94 100644 --- a/pages/operators/chain-operators/configuration/proposer.mdx +++ b/pages/operators/chain-operators/configuration/proposer.mdx @@ -24,11 +24,11 @@ import { Tabs } from 'nextra/components' This page lists all configuration options for op-proposer. The op-proposer posts output roots (proposals) to L1, making them available for verifiers. Withdrawals to L1 must reference an output root. If the chain is running permissioned fault proofs, only the [designated proposer](/superchain/privileged-roles#proposer) can submit output roots. -With [permissionless fault proofs](/concepts/architecture/fault-proofs/explainer), anyone can make a proposal. +With [permissionless fault proofs](/stack/fault-proofs/explainer), anyone can make a proposal. ## Proposer policy -The proposer policy defines high-level constraints and responsibilities regarding how L2 output roots are posted to L1. Below are the [standard guidelines](/chain-operators/reference/standard-configuration) for configuring the proposer within the OP Stack. +The proposer policy defines high-level constraints and responsibilities regarding how L2 output roots are posted to L1. Below are the [standard guidelines](/superchain/standard-configuration) for configuring the proposer within the OP Stack. | Parameter | Description | Administrator | Requirement | Notes | | ---------------- | ----------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------- | --------------------------------------------------------------- | diff --git a/pages/operators/chain-operators/configuration/rollup.mdx b/pages/operators/chain-operators/configuration/rollup.mdx index 75834ce58..55e5cce09 100644 --- a/pages/operators/chain-operators/configuration/rollup.mdx +++ b/pages/operators/chain-operators/configuration/rollup.mdx @@ -986,7 +986,7 @@ instead of the older output oracle mechanism. Alt-DA Mode enables seamless integration of various Data Availability (DA) Layers, regardless of their commitment type, into the OP Stack. This allows any chain operator to launch an OP Stack chain using their favorite DA Layer -for sustainably low costs. Learn more [here](/chain-operators/guides/features/alt-da). +for sustainably low costs. Learn more [here](/stack/beta-features/alt-da-mode). *** diff --git a/pages/operators/chain-operators/deploy.mdx b/pages/operators/chain-operators/deploy.mdx index 45f62fdc2..d65df0783 100644 --- a/pages/operators/chain-operators/deploy.mdx +++ b/pages/operators/chain-operators/deploy.mdx @@ -28,9 +28,9 @@ This section provides information on OP Stack genesis creation, deployment overv - + - + diff --git a/pages/operators/chain-operators/deploy/overview.mdx b/pages/operators/chain-operators/deploy/overview.mdx index 7b52f8ee7..551fe743b 100644 --- a/pages/operators/chain-operators/deploy/overview.mdx +++ b/pages/operators/chain-operators/deploy/overview.mdx @@ -116,6 +116,6 @@ process. ## Next steps -* Discover how to [deploy the smart contracts](/chain-operators/guides/deployment/contracts). +* Discover how to [deploy the smart contracts](/operators/chain-operators/deploy/smart-contracts). * Find out how to create your [genesis file](/operators/chain-operators/deploy/genesis). -* Explore some chain operator [best practices](/chain-operators/guides/best-practices). +* Explore some chain operator [best practices](/operators/chain-operators/management/best-practices). diff --git a/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx b/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx index d8725a6b0..6b620580f 100644 --- a/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx +++ b/pages/operators/chain-operators/deploy/proposer-setup-guide.mdx @@ -22,9 +22,9 @@ import { Callout, Steps } from 'nextra/components' After you have [spun up your sequencer](/operators/chain-operators/deploy/sequencer-node), you need to attach a proposer to post your L2 state roots data back onto L1 so we can prove withdrawal validity. The proposer is a critical component that enables trustless L2-to-L1 messaging and creates the authoritative view of L2 state from L1's perspective. -This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the [sequencer guide](/operators/chain-operators/deploy/sequencer-node) first. +This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/operators/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the [sequencer guide](/operators/chain-operators/deploy/sequencer-node) first. -To see configuration info for the proposer, check out the [configuration page](/chain-operators/guides/configuration/proposer). +To see configuration info for the proposer, check out the [configuration page](/operators/chain-operators/configuration/proposer). ## Understanding the proposer's role @@ -259,7 +259,7 @@ Your proposer is now operational! ## Next steps * Learn how to set up the [sequencer node](/operators/chain-operators/deploy/sequencer-node) for your OP Stack chain. -* For detailed parameter documentation, see the [proposer configuration reference](/chain-operators/guides/configuration/proposer). -* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). -* checkout the [migrating to permissionless fault proofs](/chain-operators/tutorials/migrate-permissionless) guide -* For cost optimization resources, check out the [Fee calculation tools](/chain-operators/tools/fee-calculator). +* For detailed parameter documentation, see the [proposer configuration reference](/operators/chain-operators/configuration/proposer). +* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). +* checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide +* For cost optimization resources, check out the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). diff --git a/pages/operators/chain-operators/deploy/sequencer-node.mdx b/pages/operators/chain-operators/deploy/sequencer-node.mdx index bc35af80e..5aa70cd7f 100644 --- a/pages/operators/chain-operators/deploy/sequencer-node.mdx +++ b/pages/operators/chain-operators/deploy/sequencer-node.mdx @@ -21,7 +21,7 @@ import { Callout, Steps } from 'nextra/components' ## Overview -This guide provides step-by-step instructions for spinning up a sequencer node after deploying L1 smart contracts for your OP Stack chain with [`op-deployer`](/chain-operators/tools/op-deployer). +This guide provides step-by-step instructions for spinning up a sequencer node after deploying L1 smart contracts for your OP Stack chain with [`op-deployer`](/operators/chain-operators/tools/op-deployer). A sequencer node consists of two core components: @@ -588,7 +588,7 @@ Your sequencer node is now operational and ready to process transactions. ## Next steps -* Discover how to [deploy chains with op-deployer](/chain-operators/tools/op-deployer) for standardized OP Stack deployments. -* Learn how to configure and deploy the [batcher](/chain-operators/guides/configuration/batcher) to submit transaction data to L1. -* Set up the [proposer](/chain-operators/guides/configuration/proposer) to submit output roots for withdrawals. -* Explore chain operator [best practices](/chain-operators/guides/best-practices) for production deployments. +* Discover how to [deploy chains with op-deployer](/operators/chain-operators/tools/op-deployer) for standardized OP Stack deployments. +* Learn how to configure and deploy the [batcher](/operators/chain-operators/configuration/batcher) to submit transaction data to L1. +* Set up the [proposer](/operators/chain-operators/configuration/proposer) to submit output roots for withdrawals. +* Explore chain operator [best practices](/operators/chain-operators/management/best-practices) for production deployments. diff --git a/pages/operators/chain-operators/deploy/smart-contracts.mdx b/pages/operators/chain-operators/deploy/smart-contracts.mdx index 5285db428..bc3af43be 100644 --- a/pages/operators/chain-operators/deploy/smart-contracts.mdx +++ b/pages/operators/chain-operators/deploy/smart-contracts.mdx @@ -106,4 +106,4 @@ When selecting a contract version, consider: ## Next Steps * Learn how to [create your genesis file](/operators/chain-operators/deploy/genesis). -* See all [configuration options](/chain-operators/guides/configuration/rollup) and example configurations. +* See all [configuration options](/operators/chain-operators/configuration/rollup) and example configurations. diff --git a/pages/operators/chain-operators/deploy/spin-batcher.mdx b/pages/operators/chain-operators/deploy/spin-batcher.mdx index bf84dcad4..92b27e69b 100644 --- a/pages/operators/chain-operators/deploy/spin-batcher.mdx +++ b/pages/operators/chain-operators/deploy/spin-batcher.mdx @@ -22,7 +22,7 @@ import { Callout, Steps } from 'nextra/components' After you have spun up your [sequencer](/operators/chain-operators/deploy/sequencer-node), you need to configure a batcher to submit L2 transaction batches to L1. The batcher is a critical component that ensures L2 transaction data is available on L1 for data availability and enables users to reconstruct the L2 state. -This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the \[sequencer guide]\(add this later) first. +This guide assumes you already have a functioning sequencer and the necessary L1 contracts deployed using [`op-deployer`](/operators/chain-operators/tools/op-deployer). If you haven't set up your sequencer yet, please refer to the [sequencer guide](/operators/chain-operators/deploy/sequencer-node) first. ## Understanding the batcher's role @@ -436,14 +436,14 @@ curl -X POST -H "Content-Type: application/json" \ ``` - For detailed cost analysis and optimization strategies, refer to the [Fee calculation tools](/chain-operators/tools/fee-calculator). + For detailed cost analysis and optimization strategies, refer to the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). ## Next steps -* For detailed parameter documentation, see the [batcher configuration reference](/chain-operators/guides/configuration/batcher). -* For monitoring and metrics setup, check the [chain monitoring guide](/chain-operators/tools/monitoring). -* For cost optimization strategies, refer to the [Fee calculation tools](/chain-operators/tools/fee-calculator). -* Consider setting up the [op-challenger](/chain-operators/tutorials/deploy-dispute-games) for a complete fault proof system. +* For detailed parameter documentation, see the [batcher configuration reference](/operators/chain-operators/configuration/batcher). +* For monitoring and metrics setup, check the [chain monitoring guide](/operators/chain-operators/tools/chain-monitoring). +* For cost optimization strategies, refer to the [Fee calculation tools](/operators/chain-operators/tools/fee-calculator). +* Consider setting up the [op-challenger](/operators/chain-operators/tutorials/dispute-games) for a complete fault proof system. Your batcher is now operational and will continuously submit L2 transaction batches to L1! diff --git a/pages/operators/chain-operators/deploy/validate-deployment.mdx b/pages/operators/chain-operators/deploy/validate-deployment.mdx index a09c0bcea..69ba6002b 100644 --- a/pages/operators/chain-operators/deploy/validate-deployment.mdx +++ b/pages/operators/chain-operators/deploy/validate-deployment.mdx @@ -26,9 +26,9 @@ This guide walks you through using `op-validator` to validate your deployment ag ## Prerequisites -* Complete deployment of L1 smart contracts using [op-deployer](/chain-operators/guides/deployment/contracts). +* Complete deployment of L1 smart contracts using [op-deployer](/operators/chain-operators/deploy/smart-contracts). * Generate [genesis and rollup](/operators/chain-operators/deploy/genesis) files. -* Install [op-validator](/chain-operators/tools/op-validator). +* Install [op-validator](/operators/chain-operators/tools/op-validator). ## Validation process @@ -112,6 +112,6 @@ This guide walks you through using `op-validator` to validate your deployment ag ## Next Steps -* If you plan to join the Superchain, follow the [Standard Rollup Charter](/governance/blockspace-charter). -* Configure [monitoring and maintenance](/chain-operators/tools/monitoring) -* Read the [op-deployer docs](/chain-operators/tools/op-deployer) +* If you plan to join the Superchain, follow the [Standard Rollup Charter](/superchain/blockspace-charter). +* Configure [monitoring and maintenance](/operators/chain-operators/tools/chain-monitoring) +* Read the [op-deployer docs](/operators/chain-operators/tools/op-deployer) diff --git a/pages/operators/chain-operators/features.mdx b/pages/operators/chain-operators/features.mdx index e46cfec27..689d40b4a 100644 --- a/pages/operators/chain-operators/features.mdx +++ b/pages/operators/chain-operators/features.mdx @@ -24,11 +24,13 @@ import { Card, Cards } from 'nextra/components' This section provides information on various features for chain operators. You'll find guides and overviews to help you understand and work with topics such as running an alternative data availability mode chain, implementing the bridged USDC standard on the OP Stack, OP Stack preinstalls, and span batches. - + - + - + - + + + diff --git a/pages/operators/chain-operators/features/alt-da-mode.mdx b/pages/operators/chain-operators/features/alt-da-mode.mdx index 339f83afc..0bf3ff776 100644 --- a/pages/operators/chain-operators/features/alt-da-mode.mdx +++ b/pages/operators/chain-operators/features/alt-da-mode.mdx @@ -24,7 +24,7 @@ import { Callout, Steps } from 'nextra/components' These features may experience stability issues, and we encourage feedback from our early users.
-This guide provides a walkthrough for chain operators who want to run an Alt-DA Mode chain. See the [Alt-DA Mode Explainer](/chain-operators/guides/features/alt-da) for a general overview of this OP Stack configuration. +This guide provides a walkthrough for chain operators who want to run an Alt-DA Mode chain. See the [Alt-DA Mode Explainer](/stack/beta-features/alt-da-mode) for a general overview of this OP Stack configuration. An Alt-DA Mode OP Stack chain enables a chain operator to post and read data to any alternative data availability layer that has built a functioning OP Stack DA Server. diff --git a/pages/operators/chain-operators/management.mdx b/pages/operators/chain-operators/management.mdx index 99f4ba44f..6394ecaf5 100644 --- a/pages/operators/chain-operators/management.mdx +++ b/pages/operators/chain-operators/management.mdx @@ -28,15 +28,15 @@ import { Card, Cards } from 'nextra/components' This section provides information on chain operator best practices, using blobs, managing keys, rollup operations, using snap sync for chain operators, and troubleshooting chain operations. You'll find guides and tutorials to help you understand and work with these topics. - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/management/best-practices.mdx b/pages/operators/chain-operators/management/best-practices.mdx index 598a47ed2..9243d8b4a 100644 --- a/pages/operators/chain-operators/management/best-practices.mdx +++ b/pages/operators/chain-operators/management/best-practices.mdx @@ -92,7 +92,7 @@ GETH_TXPOOL_LIFETIME: "1h" GETH_TXPOOL_NOLOCALS: "true" ``` -For additional information about these flags, check out our [Execution Layer Configuration Options](/node-operators/guides/configuration/execution) doc. +For additional information about these flags, check out our [Execution Layer Configuration Options](/operators/node-operators/configuration/execution-config) doc. ## Write your own runbooks diff --git a/pages/operators/chain-operators/management/key-management.mdx b/pages/operators/chain-operators/management/key-management.mdx index 6d8407e06..4c4f51b86 100644 --- a/pages/operators/chain-operators/management/key-management.mdx +++ b/pages/operators/chain-operators/management/key-management.mdx @@ -20,7 +20,7 @@ import { Callout } from 'nextra/components' # Managing your keys This guide informs chain operators on important key management considerations. -There are certain [privileged roles](/chain-operators/reference/privileged-roles) that +There are certain [privileged roles](/superchain/privileged-roles) that need careful consideration. The privileged roles are categorized as hot wallets or cold wallets. @@ -50,6 +50,6 @@ of community members and avoid a single point of failure. The signers behind a multisig should probably also use a hardware wallet. - Refer to the [privileged roles](/chain-operators/reference/privileged-roles) documentation + Refer to the [privileged roles](/superchain/privileged-roles) documentation for more information about these different addresses and their security concerns. diff --git a/pages/operators/chain-operators/management/operations.mdx b/pages/operators/chain-operators/management/operations.mdx index a722a5d5d..093945d07 100644 --- a/pages/operators/chain-operators/management/operations.mdx +++ b/pages/operators/chain-operators/management/operations.mdx @@ -203,5 +203,5 @@ If you do it this way, you won't have to wait until the transactions are written ## Next steps -* See the [Node Configuration](/node-operators/guides/configuration/base) guide for additional explanation or customization. +* See the [Node Configuration](/operators/node-operators/configuration/base-config) guide for additional explanation or customization. * If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/chain-operators/management/snap-sync.mdx b/pages/operators/chain-operators/management/snap-sync.mdx index 985dd6b19..3f753a8ae 100644 --- a/pages/operators/chain-operators/management/snap-sync.mdx +++ b/pages/operators/chain-operators/management/snap-sync.mdx @@ -26,7 +26,7 @@ Snap sync works by downloading a snapshot of the state from other nodes on the n This means that performing a snap sync is significantly faster than performing a full sync. * Snap sync enables node operators on your network to sync faster. -* Snap sync removes the need for nodes on your post Ecotone network to run a [blob archiver](/chain-operators/guides/management/blobs). +* Snap sync removes the need for nodes on your post Ecotone network to run a [blob archiver](/operators/node-operators/management/blobs). ## Enable snap sync for chains diff --git a/pages/operators/chain-operators/management/troubleshooting.mdx b/pages/operators/chain-operators/management/troubleshooting.mdx index e35618b2e..f635b230f 100644 --- a/pages/operators/chain-operators/management/troubleshooting.mdx +++ b/pages/operators/chain-operators/management/troubleshooting.mdx @@ -55,7 +55,7 @@ WARN [02-16|21:22:02.868] Derivation process temporary error attempts=14 e This error can occur when the data directory for `op-geth` becomes corrupted (for example, as a result of a computer crash). You will need to reinitialize the data directory. -If you are following the tutorial for [Creating Your Own L2 Rollup](/chain-operators/tutorials/create-rollup), make sure to rerun the commands within the [Initialize `op-geth`](/operators/chain-operators/tutorials/create-l2-rollup#initialize-op-geth) section. +If you are following the tutorial for [Creating Your Own L2 Rollup](/operators/chain-operators/tutorials/create-l2-rollup), make sure to rerun the commands within the [Initialize `op-geth`](/operators/chain-operators/tutorials/create-l2-rollup#initialize-op-geth) section. If you are not following the tutorial, make sure to take the following steps: diff --git a/pages/operators/chain-operators/self-hosted.mdx b/pages/operators/chain-operators/self-hosted.mdx index ff4a08d01..39c8fb050 100644 --- a/pages/operators/chain-operators/self-hosted.mdx +++ b/pages/operators/chain-operators/self-hosted.mdx @@ -36,13 +36,13 @@ There are two main steps to get started building your own self-hosted OP Chain: To work with OP Chains, you'll need to understand the fundamental components of OP Chains. * **Chain Architecture**: OP Chains use execution and consensus clients as well as the OP Stack's privileged roles. For more details, see the [Chain Architecture](/operators/chain-operators/architecture) guide. - * **Smart Contracts**: OP Chains use several smart contracts on the L1 - blockchain to manage aspects of the Rollup. Each OP Stack chain has its own - set of [L1 smart contracts](/stack/smart-contracts/smart-contracts), - [L2 predeploy contracts](/stack/smart-contracts/smart-contracts), - and [L2 preinstall contracts](/chain-operators/reference/features/preinstalls) - that are deployed when the chain is created. - * **Preinstalls**: OP Chains come with [preinstalled core contracts](/chain-operators/reference/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack. + * **Smart Contracts**: OP Chains use several smart contracts on the L1 + blockchain to manage aspects of the Rollup. Each OP Stack chain has its own + set of [L1 smart contracts](/stack/smart-contracts/smart-contracts), + [L2 predeploy contracts](/stack/smart-contracts/smart-contracts), + and [L2 preinstall contracts](/operators/chain-operators/features/preinstalls) + that are deployed when the chain is created. + * **Preinstalls**: OP Chains come with [preinstalled core contracts](/operators/chain-operators/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack. You should only use governance approved and audited smart contracts. The monorepo has them tagged with the following pattern `op-contracts/vX.X.X` and you can review the release notes for details on the changes. @@ -51,7 +51,7 @@ There are two main steps to get started building your own self-hosted OP Chain: {

Launch Your OP Stack Testnet Chain

} * Now, you are ready to spin up your testnet chain. - * Just follow the [Creating Your Own L2 Rollup Testnet](/chain-operators/tutorials/create-rollup) tutorial to get started. + * Just follow the [Creating Your Own L2 Rollup Testnet](/operators/chain-operators/tutorials/create-l2-rollup) tutorial to get started.
## Configure your chain @@ -61,14 +61,14 @@ OP Chains can be configured for throughput, cost, and other decentralization tra {

Setup Key Management and Privileged Roles

} - * Configure hot wallets and cold wallets using the guide for [Managing Your Keys](/chain-operators/guides/management/key-management). - * Refer to the [Privileged Roles](/chain-operators/reference/privileged-roles) guide for detailed security information. + * Configure hot wallets and cold wallets using the guide for [Managing Your Keys](/operators/chain-operators/management/key-management). + * Refer to the [Privileged Roles](/superchain/privileged-roles) guide for detailed security information. {

Make Standard Chain Configurations

} - * Configure your [OP Chain parameters](/chain-operators/guides/configuration/overview) based on your particular tradeoffs. You'll need to configure the **rollup**, **batcher**, and **proposer** for optimal performance. - * Update your batcher to [post transaction data within blobs](/chain-operators/guides/management/blobs) instead of call data to maximize your fee savings. - * Enable [snap sync](/chain-operators/guides/management/snap-sync) on your OP Chain to significantly improve the experience and speed of syncing an OP Stack node. + * Configure your [OP Chain parameters](/operators/chain-operators/configuration/overview) based on your particular tradeoffs. You'll need to configure the **rollup**, **batcher**, and **proposer** for optimal performance. + * Update your batcher to [post transaction data within blobs](/operators/chain-operators/management/blobs) instead of call data to maximize your fee savings. + * Enable [snap sync](/operators/chain-operators/management/snap-sync) on your OP Chain to significantly improve the experience and speed of syncing an OP Stack node. {

Set Public RPC Endpoint

} @@ -76,7 +76,7 @@ OP Chains can be configured for throughput, cost, and other decentralization tra {

Enable Analytics for Onchain Data

} - * Enable [analytics tracking for your OP Chain](/node-operators/guides/monitoring/metrics), to immediately generate onchain metrics after mainnet launch. + * Enable [analytics tracking for your OP Chain](/operators/node-operators/management/metrics), to immediately generate onchain metrics after mainnet launch.
## Test your chain @@ -88,15 +88,15 @@ Before launching on Mainnet, thoroughly test and debug OP Chain contracts, featu Block explorers allow you to access transaction history and conduct chain debugging. - * Option 1: Select an [external block explorer](/app-developers/tools/infrastructure/explorers) to use with your OP Chain. - * Option 2: Deploy your own block explorer for your OP Chain, such as [Blockscout](/chain-operators/tools/explorer). + * Option 1: Select an [external block explorer](/app-developers/tools/build/block-explorers) to use with your OP Chain. + * Option 2: Deploy your own block explorer for your OP Chain, such as [Blockscout](/operators/chain-operators/tools/explorer). {

Send Test Transactions

} As part of testing your OP Chain, you'll need to send test or example transactions to the new network. * Test [sending L2 transactions](https://github.com/ethereum-optimism/tx-overload) to understand how much load your new chain can handle. - * Trace [deposits and withdrawals](/app-developers/tutorials/transactions/sdk-tracing) using the SDK or viem. + * Trace [deposits and withdrawals](/app-developers/tutorials/transactions/sdk-trace-txns) using the SDK or viem. * Run [basic transaction tests](https://metamask.io/) using Metamask.
@@ -115,7 +115,7 @@ They'll help you get a head start deploying your first OP Stack chain. | [Adding Attributes to the Derivation Function](tutorials/adding-derivation-attributes) | Learn how to modify the derivation function for an OP Stack chain to track the amount of ETH being burned on L1. | 🟢 Easy | | [Adding a Precompile](tutorials/adding-precompiles) | Learn how to run an EVM with a new precompile for OP Stack chain operations to speed up calculations that are not currently supported. | 🟢 Easy | | [Modifying Predeployed Contracts](tutorials/modifying-predeploys) | Learn how to modify predeployed contracts for an OP Stack chain by upgrading the proxy. | 🟢 Easy | -| [Pause and Unpause the Bridge](/concepts/security/pause-system) | Learn how to pause `OptimismPortal` as a backup safety mechanism on your OP Stack chain. | 🟢 Easy | +| [Pause and Unpause the Bridge](/stack/security/pause) | Learn how to pause `OptimismPortal` as a backup safety mechanism on your OP Stack chain. | 🟢 Easy | | [Integrating a DA Layer](tutorials/integrating-da-layer) | Learn how to integrate a new DA Layer with Alt-DA | 🟢 Easy | You can also [suggest a new tutorial](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=tutorial%2Cdocumentation%2Ccommunity-request\&projects=\&template=suggest_tutorial.yaml\&title=%5BTUTORIAL%5D+Add+PR+title) if you have something specific in mind. We'd love to grow this list! diff --git a/pages/operators/chain-operators/tools.mdx b/pages/operators/chain-operators/tools.mdx index 3ad67fbf4..9722f3d3a 100644 --- a/pages/operators/chain-operators/tools.mdx +++ b/pages/operators/chain-operators/tools.mdx @@ -22,22 +22,21 @@ is_imported_content: 'false' --- import { Card, Cards } from 'nextra/components' +import { ChainOperatorsBanner } from '../../../components/ChainOperatorsBanner' + + # Tools This section provides information on chain monitoring options, deploying a block explorer, configuring a challenger for your chain, conductor, and deployer. You'll find guides, overviews, and tools to help you understand and work with these topics. - - - - - - - - - - - - + + + + + + + + diff --git a/pages/operators/chain-operators/tools/chain-monitoring.mdx b/pages/operators/chain-operators/tools/chain-monitoring.mdx index 3c9ec38dd..17178ff4d 100644 --- a/pages/operators/chain-operators/tools/chain-monitoring.mdx +++ b/pages/operators/chain-operators/tools/chain-monitoring.mdx @@ -96,7 +96,7 @@ The general steps for enabling offchain monitoring are pretty consistent for all ### `op-node` -`op-node` metrics and monitoring is detailed in the [Node Metrics and Monitoring](/node-operators/guides/monitoring/metrics) guide. To enable metrics, pass the `--metrics.enabled` flag to `op-node` and follow the steps above for customization options. +`op-node` metrics and monitoring is detailed in the [Node Metrics and Monitoring](/operators/node-operators/management/metrics) guide. To enable metrics, pass the `--metrics.enabled` flag to `op-node` and follow the steps above for customization options. See [this curated list](/operators/node-operators/management/metrics#important-metrics) for important metrics to track specifically for `op-node`. ### `op-geth` @@ -118,7 +118,7 @@ You can find more information about these flags in our [Batcher configuration do ### `op-challenger` The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. -For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/concepts/architecture/fault-proofs/cannon)). See the [OP-Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger) for more information on this service. +For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/stack/fault-proofs/cannon)). See the [OP-Challenger Explainer](/stack/fault-proofs/challenger) for more information on this service. To enable metrics, pass the `--metrics.enabled` flag to `op-challenger` and follow the steps above for customization options. diff --git a/pages/operators/chain-operators/tools/op-challenger.mdx b/pages/operators/chain-operators/tools/op-challenger.mdx deleted file mode 100644 index ac2d98837..000000000 --- a/pages/operators/chain-operators/tools/op-challenger.mdx +++ /dev/null @@ -1,234 +0,0 @@ ---- -title: How to configure challenger for your chain -description: Learn how to configure challenger for your OP Stack chain. -lang: en-US -content_type: tutorial -topic: configure-challenger-for-your-chain -personas: - - chain-operator -categories: - - mainnet - - testnet - - fault-proofs - - op-challenger - - chain-configuration -is_imported_content: 'false' ---- - -import { Callout, Steps } from 'nextra/components' - -# How to configure challenger for your chain - -This guide provides a walkthrough of setting up the configuration and monitoring options for `op-challenger`. See the [OP-Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger) for a general overview of this fault proofs feature. - - - ### Build the executable - - * Clone the monorepo - - ```bash - git clone https://github.com/ethereum-optimism/optimism.git - ``` - - * Check out the [latest release of `op-challenger`](https://github.com/ethereum-optimism/optimism/releases) and use the commit to deploy. Alternatively, chain operators can use the prebuilt challenger docker images included in the release notes. - If a Docker image is used, it already comes with `op-program` server and an executable for Cannon embedded, so the Cannon bin doesn't need to be specified. - - ```bash - git checkout op-challenger/vX.Y.Z - ``` - - - Chain operators need to specify the arguments and `op-program` server if `op-challenger` is running outside of Docker, but there's a Cannon server option which points to `op-program`'s executable. - - - * Build challenger - - ```bash - cd optimism - pnpm install - make op-challenger - ``` - - ### Configure challenger - - * Configure challenger with the required flags. Tip: Use the `op-challenger --help` to view all subcommands, command line, and environment variable options. - * The example config file below shows the flags to configure in this step: - - ```docker - challenger: - user: "1000" - image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-challenger:v0.2.11 - command: - - "op-challenger" - - "--l1-eth-rpc=http://sepolia-el-1:8545" - - "--l1-beacon=http://sepolia-cl-1:5051" - - "--l2-eth-rpc=http://op-sepolia-el-1:8545" - - "--rollup-rpc=http://op-sepolia-cl-1:5051" - - "--selective-claim-resolution" - - "--private-key=...." - - "--network=..." - - "--datadir=/data" - - "--cannon-prestates-url=..." - volumes: - - "./challenger-data:/data" - ``` - - #### `--l1-eth-rpc` - - * This is the HTTP provider URL for a standard L1 node, can be a full node. `op-challenger` will be sending many requests, so chain operators need a node that is trusted and can easily handle many transactions. - * Note: Challenger has a lot of money, and it will spend it if it needs to interact with games. That might risk not defending games or challenging games correctly, so chain operators should really trust the nodes being pointed at Challenger. - - #### `--l1-beacon` - - * This is needed just to get blobs from. - * In some instances, chain operators might need a blob archiver or L1 consensus node configured not to prune blobs: - * If the chain is proposing regularly, a blob archiver isn't needed. There's only a small window in the blob retention period that games can be played. - * If the chain doesn't post a valid output root in 18 days, then a blob archiver running a challenge game is needed. If the actor gets pushed to the bottom of the game, it could lose if it's the only one protecting the chain. - - #### `--l2-eth-rpc` - - * This needs to be `op-geth` archive node, with `debug` enabled. - * Technically doesn't need to go to bedrock, but needs to have access to the start of any game that is still in progress. - - #### `--rollup-rpc` - - * This needs to be an `op-node` archive node because challenger needs access to output roots from back when the games start. See below for important configuration details: - - 1. Safe Head Database (SafeDB) Configuration for op-node: - - * The `op-node` behind the `op-conductor` must have the SafeDB enabled to ensure it is not stateless. - * To enable SafeDB, set the `--safedb.path` value in your configuration. This specifies the file path used to persist safe head update data. - * Example Configuration: - - ``` - --safedb.path # Replace with your actual path - ``` - - - If this path is not set, the SafeDB feature will be disabled. - - - 2. Ensuring Historical Data Availability: - - * Both `op-node` and `op-geth` must have data from the start of the games to maintain network consistency and allow nodes to reference historical state and transactions. - * For `op-node`: Configure it to maintain a sufficient history of blockchain data locally or use an archive node. - * For `op-geth`: Similarly, configure to store or access historical data. - * Example Configuration: - - ``` - op-node \ - --rollup-rpc \ - --safedb.path - ``` - - - Replace `` with the URL of your archive node and `` with the desired path for storing SafeDB data. - - - #### `--private-key` - - * Chain operators must specify a private key or use something else (like `op-signer`). - * This uses the same transaction manager arguments as `op-node` , batcher, and proposer, so chain operators can choose one of the following options: - * a mnemonic - * a private key - * `op-signer` endpoints - - #### `--network` - - * This identifies the L2 network `op-challenger` is running for, e.g., `op-sepolia` or `op-mainnet`. - * When using the `--network` flag, the `--game-factory-address` will be automatically pulled from the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json). - * When cannon is executed, challenger needs the roll-up config and the L2 Genesis, which is op-geth's Genesis file. Both files are automatically loaded when Cannon Network is used, but custom networks will need to specify both Cannon L2 Genesis and Cannon rollup config. - * For custom networks not in the [`superchain-registry`](https://github.com/ethereum-optimism/superchain-registry/blob/main/chainList.json), the `--game-factory-address` and rollup must be specified, as follows: - - ``` - --cannon-rollup-config rollup.json \ - --cannon-l2-genesis genesis-l2.json \ - # use this if running challenger outside of the docker image - --cannon-server ./op-program/bin/op-program \ - # json or url, version of op-program deployed on chain - # if you use the wrong one, you will lose the game - # if you deploy your own contracts, you specify the hash, the root of the json file - # op mainnet are tagged versions of op-program - # make reproducible prestate - # challenger verifies that onchain - --cannon-prestate ./op-program/bin/prestate.json \ - # load the game factory address from system config or superchain registry - # point the game factory address at the dispute game factory proxy - --game-factory-address - ``` - - - These options vary based on which `--network` is specified. Chain operators always need to specify a way to load prestates and must also specify the cannon-server whenever the docker image isn't being used. - - - #### `--datadir` - - * This is a directory that `op-challenger` can write to and store whatever data it needs. It will manage this directory to add or remove data as needed under that directory. - * If running in docker, it should point to a docker volume or mountpoint, so the data isn't lost on every restart. The data can be recreated if needed but particularly if challenger has executed cannon as part of responding to a game it may mean a lot of extra processing. - - #### `--cannon-prestates-url` - - The pre-state is effectively the version of `op-program` that is deployed on chain. And chain operators must use the right version. `op-challenger` will refuse to interact with games that have a different absolute prestate hash to avoid making invalid claims. If deploying your own contracts, chain operators must specify an absolute prestate hash taken from the `make reproducible-prestate` command during contract deployment, which will also build the required prestate json file. - - All governance approved releases use a tagged version of `op-program`. These can be rebuilt by checking out the version tag and running `make reproducible-prestate`. - - * There are two ways to specify the prestate to use: - * `--cannon-prestate`: specifies a path to a single Cannon pre-state Json file - * `--cannon-prestates-url`: specifies a URL to load pre-states from. This enables participating in games that use different prestates, for example due to a network upgrade. The prestates are stored in this directory named by their hash. - * Example final URL for a prestate: - * [https://example.com/prestates/0x031e3b504740d0b1264e8cf72b6dde0d497184cfb3f98e451c6be8b33bd3f808.json](https://example.com/prestates/0x031e3b504740d0b1264e8cf72b6dde0d497184cfb3f98e451c6be8b33bd3f808.json) - * This file contains the cannon memory state. - - - Challenger will refuse to interact with any games if it doesn't have the matching prestate. - - - ### Execute challenger - - The final step is to execute challenger with the required flags. It will look something like this (but with required flags added): - - ```bash - ./op-challenger/bin/op-challenger \ - --trace-type permissioned,cannon \ - --l1-eth-rpc http://localhost:8545 \ - --rollup-rpc http://localhost:9546 \ - --game-factory-address $DISPUTE_GAME_FACTORY \ - --datadir temp/challenger-data \ - --cannon-rollup-config .devnet/rollup.json \ - --cannon-l2-genesis .devnet/genesis-l2.json \ - --cannon-bin ./cannon/bin/cannon \ - --cannon-server ./op-program/bin/op-program \ - --cannon-prestate ./op-program/bin/prestate.json \ - --l2-eth-rpc http://localhost:9545 \ - --mnemonic "test test test test test test test test test test test junk" \ - --hd-path "m/44'/60'/0'/0/8" \ - ``` - - ### Test and debug challenger (optional) - - This is an optional step to use `op-challenger` subcommands, which allow chain operators to interact with the Fault Proof System onchain for testing and debugging purposes. For example, it is possible to test and explore the system in the following ways: - - * create games yourself, and it doesn't matter if the games are valid or invalid. - * perform moves in games and then claim and resolve things. - - Here's the list of op-challenger subcommands: - - | subcommand | description | - | --------------- | -------------------------------------------------------- | - | `list-games` | List the games created by a dispute game factory | - | `list-claims` | List the claims in a dispute game | - | `list-credits` | List the credits in a dispute game | - | `create-game` | Creates a dispute game via the factory | - | `move` | Creates and sends a move transaction to the dispute game | - | `resolve` | Resolves the specified dispute game if possible | - | `resolve-claim` | Resolves the specified claim if possible | - - Additionally, chain operators should consider running `op-dispute-mon`. It's an incredibly useful security monitoring service to keep an eye on games, basically giving chain operators visibility into all the status of the games for the last 28 days. - Chain operators can easily create their grafana dashboard for Dispute Monitor using the following json file: [Download the Dispute Monitor JSON](/resources/grafana/dispute-monitor-1718214549035.json). - - -## Next steps - -* Additional questions? See the FAQ section in the [OP Challenger Explainer](/concepts/architecture/fault-proofs/op-challenger). -* For more detailed info on `op-challenger`, see the [specs](https://specs.optimism.io/fault-proof/stage-one/honest-challenger-fdg.html?utm_source=op-docs&utm_medium=docs). -* If you experience any problems, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/chain-operators/tools/op-deployer.mdx b/pages/operators/chain-operators/tools/op-deployer.mdx index 352d7ac6a..0c450d04c 100644 --- a/pages/operators/chain-operators/tools/op-deployer.mdx +++ b/pages/operators/chain-operators/tools/op-deployer.mdx @@ -578,4 +578,4 @@ The command outputs a JSON file containing the deployed implementation contract ## Next steps * For more details, check out the tool and documentation in the [op-deployer repository](https://github.com/ethereum-optimism/optimism/tree/develop/op-deployer/cmd/op-deployer). -* For more information on OP Contracts Manager, refer to the [OPCM documentation](/chain-operators/reference/opcm). +* For more information on OP Contracts Manager, refer to the [OPCM documentation](/stack/opcm). diff --git a/pages/operators/chain-operators/tools/proxyd.mdx b/pages/operators/chain-operators/tools/proxyd.mdx index e0af65c9b..32c9f10e8 100644 --- a/pages/operators/chain-operators/tools/proxyd.mdx +++ b/pages/operators/chain-operators/tools/proxyd.mdx @@ -84,7 +84,7 @@ Extensive metrics are available to monitor request latency, error rates, backend ## Next steps * Read about the [OP Stack chain architecture](/operators/chain-operators/architecture). -* Find out how you can support [snap sync](/chain-operators/guides/management/snap-sync). +* Find out how you can support [snap sync](/operators/chain-operators/management/snap-sync). on your chain. -* Find out how you can utilize [blob space](/chain-operators/guides/management/blobs) +* Find out how you can utilize [blob space](/operators/chain-operators/management/blobs) to reduce the transaction fee cost on your chain. diff --git a/pages/operators/chain-operators/tutorials.mdx b/pages/operators/chain-operators/tutorials.mdx index 74fab4db0..829550798 100644 --- a/pages/operators/chain-operators/tutorials.mdx +++ b/pages/operators/chain-operators/tutorials.mdx @@ -31,23 +31,23 @@ import { ChainOperatorsBanner } from '../../../components/ChainOperatorsBanner' This section provides information on adding attributes to the derivation function, adding a precompile, creating your own l2 rollup testnet, integrating a new da layer with alt da, modifying predeployed contracts and using viem. You'll find overview, tutorial, guide to help you understand and work with these topics. - + - + - + - + - + - + - + - + - + diff --git a/pages/operators/chain-operators/tutorials/absolute-prestate.mdx b/pages/operators/chain-operators/tutorials/absolute-prestate.mdx index 204fd0697..6e1d988f0 100644 --- a/pages/operators/chain-operators/tutorials/absolute-prestate.mdx +++ b/pages/operators/chain-operators/tutorials/absolute-prestate.mdx @@ -40,7 +40,7 @@ This upgrade offers several advantages: * Support for the latest network upgrades - Beginning with [Upgrade 14](/notices/archive/upgrade-14), all chains should use the `64-bit` multi-threaded version of Cannon. + Beginning with [Upgrade 14](/notices/upgrade-14), all chains should use the `64-bit` multi-threaded version of Cannon. The absolute prestate files for this version typically have the format `prestate-mt64.bin.gz`. @@ -153,7 +153,7 @@ For these cases, follow these additional steps: ### Copy your chain configuration files to this directory - First, you need to obtain your chain's configuration files. These are typically generated when you [deploy your L2 chain](/chain-operators/guides/deployment/contracts) with op-deployer: + First, you need to obtain your chain's configuration files. These are typically generated when you [deploy your L2 chain](/operators/chain-operators/deploy/smart-contracts) with op-deployer: * **rollup.json**: The rollup configuration file * **genesis.json**: The L2 genesis file @@ -277,6 +277,6 @@ After generating the absolute prestate and preimage files, you'll need to: ## Next Steps -* Check out the [migrating to permissionless fault proofs guide](/chain-operators/tutorials/migrate-permissionless). -* Read the [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer). -* [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer) +* Check out the [migrating to permissionless fault proofs guide](/operators/chain-operators/tutorials/migrating-permissionless). +* Read the [Fault proofs explainer](/stack/fault-proofs/explainer). +* [Fault proofs explainer](/stack/fault-proofs/explainer) diff --git a/pages/operators/chain-operators/tutorials/chain-dev-net.mdx b/pages/operators/chain-operators/tutorials/chain-dev-net.mdx index 3366c4cd4..1da8a7bf4 100644 --- a/pages/operators/chain-operators/tutorials/chain-dev-net.mdx +++ b/pages/operators/chain-operators/tutorials/chain-dev-net.mdx @@ -33,7 +33,7 @@ You'll perform the full deployment process, and **you'll end up with your very o It's useful to understand what each of these components does before you start deploying your chain. To learn about the different components please -read the [deployment overview page](/chain-operators/guides/deployment/overview). +read the [deployment overview page](/operators/chain-operators/deploy/overview). You can use this devnet to experiment and perform tests, or you can choose to modify the chain to adapt it to your own needs. **The OP Stack is free and open source software licensed entirely under the MIT license**. You don't need permission from @@ -234,5 +234,5 @@ Send some transactions, deploy some contracts, and see what happens! ## Next Steps * Check out the [protocol specs](https://specs.optimism.io/?utm_source=op-docs&utm_medium=docs) for more detail about the rollup protocol. -* If you run into any problems, please visit the [chain operators troubleshooting guide](/chain-operators/guides/troubleshooting) +* If you run into any problems, please visit the [chain operators troubleshooting guide](/operators/chain-operators/management/troubleshooting) * If you run into any problems, please [file an issue](https://github.com/ethereum-optimism/optimism/issues) or join the [Superchain Dev Discord](https://guild.xyz/superchain-devs) for help. diff --git a/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx index 5e9992628..0f7d88d13 100644 --- a/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx +++ b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx @@ -33,7 +33,7 @@ You'll walk through the full deployment process and teach you all of the compone It's useful to understand what each of these components does before you start deploying your chain. To learn about the different components please -read the [deployment overview page](/chain-operators/guides/deployment/overview). +read the [deployment overview page](/operators/chain-operators/deploy/overview). You can use this testnet to experiment and perform tests, or you can choose to modify the chain to adapt it to your own needs. **The OP Stack is free and open source software licensed entirely under the MIT license**. @@ -438,7 +438,7 @@ These files are crucial for initializing the execution client (`op-geth`) and co The recommended flow for creating a genesis file and rollup configuration file on the OP Stack is as follows: -1. **Deploy the L1 contracts** using [op-deployer](/chain-operators/tools/op-deployer). +1. **Deploy the L1 contracts** using [op-deployer](/operators/chain-operators/tools/op-deployer). 2. **Generate** both the L2 genesis file (`genesis.json`) and the rollup configuration file (`rollup.json`) using op-deployer's `inspect` commands. 3. **Initialize** your off-chain components (e.g., execution client, consensus client). @@ -773,4 +773,4 @@ Send some transactions, deploy some contracts, and see what happens! ## Next steps * Check out the [protocol specs](https://specs.optimism.io/?utm_source=op-docs&utm_medium=docs) for more detail about the rollup protocol. -* If you run into any problems, please visit the [Chain Operators Troubleshooting Guide](/chain-operators/guides/troubleshooting) for help. +* If you run into any problems, please visit the [Chain Operators Troubleshooting Guide](/operators/chain-operators/management/troubleshooting) for help. diff --git a/pages/operators/chain-operators/tutorials/dispute-games.mdx b/pages/operators/chain-operators/tutorials/dispute-games.mdx index 1449f3360..6a58e9a28 100644 --- a/pages/operators/chain-operators/tutorials/dispute-games.mdx +++ b/pages/operators/chain-operators/tutorials/dispute-games.mdx @@ -20,7 +20,7 @@ import { Callout } from 'nextra/components' # Deploying new dispute games with OPCM -This guide provides instructions on how to deploy new dispute games to an OP Stack chain using the [OPCM (OP Contracts Manager)](/chain-operators/reference/opcm). This process is particularly relevant for teams looking to upgrade their chains to support permissionless dispute games. +This guide provides instructions on how to deploy new dispute games to an OP Stack chain using the [OPCM (OP Contracts Manager)](/stack/opcm). This process is particularly relevant for teams looking to upgrade their chains to support permissionless dispute games. ## Prerequisites @@ -147,11 +147,11 @@ cast send --rpc-url $RPC_URL --private-key $PRIVATE_KEY $OPCM_ADDRESS $CALLDATA 4. Setting the respected game type After deploying the permissionless dispute game, you'll need to update the respectedGameType in the OptimismPortal to start using it. - For detailed instructions on setting the respected game type and migrating your chain from permissioned to permissionless fault proofs, refer to the [migrating to permissionless fault proofs guide](/chain-operators/tutorials/migrate-permissionless). + For detailed instructions on setting the respected game type and migrating your chain from permissioned to permissionless fault proofs, refer to the [migrating to permissionless fault proofs guide](/operators/chain-operators/tutorials/migrating-permissionless). ## Next Steps -* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). +* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). * Learn about [absolute prestate](/operators/chain-operators/tutorials/absolute-prestate) -* checkout the [migrating to permissionless fault proofs](/chain-operators/tutorials/migrate-permissionless) guide -* [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer) +* checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide +* [Fault proofs explainer](/stack/fault-proofs/explainer) diff --git a/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx index d99aa1821..85e21418f 100644 --- a/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx +++ b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx @@ -25,7 +25,7 @@ import { Callout, Steps } from 'nextra/components' These features may experience stability issues, and we encourage feedback from our early users. -[Alt-DA Mode](/chain-operators/guides/features/alt-da) enables seamless integration of any DA Layer, regardless of their commitment type, into the OP Stack. After a DA Server is built for a DA Layer, any chain operator can launch an OP Stack chain using that DA Layer for sustainably low costs. +[Alt-DA Mode](/stack/beta-features/alt-da-mode) enables seamless integration of any DA Layer, regardless of their commitment type, into the OP Stack. After a DA Server is built for a DA Layer, any chain operator can launch an OP Stack chain using that DA Layer for sustainably low costs. ## Build your DA server @@ -54,7 +54,7 @@ Our suggestion is for every DA Layer to build and maintain their own DA Server,
## Run Alt-DA -Follow our guide on [how to operate an Alt-DA Mode chain](/chain-operators/reference/features/alt-da), except instead of using the S3 DA server, use the DA server that you built. +Follow our guide on [how to operate an Alt-DA Mode chain](/operators/chain-operators/features/alt-da-mode), except instead of using the S3 DA server, use the DA server that you built. ## Next steps diff --git a/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx b/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx index e0a086da4..e22ebcf62 100644 --- a/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx +++ b/pages/operators/chain-operators/tutorials/migrating-permissionless.mdx @@ -32,8 +32,8 @@ Permissioned games previously relied on a single trusted validator, this is typi This migration involves several key components: -* Configuring security-critical dispute [monitoring services](/chain-operators/tools/monitoring) -* Deploying and configuring smart contracts using [op-deployer](/chain-operators/tools/op-deployer) +* Configuring security-critical dispute [monitoring services](/operators/chain-operators/tools/chain-monitoring) +* Deploying and configuring smart contracts using [op-deployer](/operators/chain-operators/tools/op-deployer) * Testing the new system before activation * Setting the respected game type to permissionless fault proofs, specifically using the [`FaultDisputeGame`](https://github.com/ethereum-optimism/optimism/blob/6e563de4a847c54ddd4e6d2e38bc21e8f6067680/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol) @@ -43,7 +43,7 @@ Before beginning this transition, your chain should: * Be running a standard OP Stack implementation * Use contracts version [**v2.0.0**](https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv2.0.0). -* Be operating with the required infrastructure services including [`op-challenger`](/concepts/architecture/fault-proofs/op-challenger) and [`op-dispute-mon`](/operators/chain-operators/tools/chain-monitoring#dispute-mon). +* Be operating with the required infrastructure services including [`op-challenger`](/stack/fault-proofs/challenger) and [`op-dispute-mon`](/operators/chain-operators/tools/chain-monitoring#dispute-mon). ## Migration steps @@ -97,7 +97,7 @@ make op-challenger ### Update network configuration Configure `op-challenger` to load your chain configuration. -Even if your chain is not included in the [superchain-registry](/chain-operators/reference/superchain-registry), you can specify a custom configuration: +Even if your chain is not included in the [superchain-registry](/superchain/superchain-registry), you can specify a custom configuration: ```bash # For chains in the registry @@ -186,7 +186,7 @@ This migration requires actions by privileged roles in your system: * The **ProxyAdmin Owner** has the authority to upgrade proxy contracts. * The **Guardian** has emergency powers like pausing withdrawals and changing the respected game type. -For detailed information about privileged roles and their security implications, refer to the [privileged roles documentation](/chain-operators/reference/privileged-roles). +For detailed information about privileged roles and their security implications, refer to the [privileged roles documentation](/superchain/privileged-roles). ### Adding the PermissionlessDisputeGame to a chain @@ -202,7 +202,7 @@ This method will: 2. Setup the `DelayedWethProxy` for the new game 3. Reinitialize the `AnchorStateRegistry` to add the new game type. -See a high‐level implementation from this [docs](/chain-operators/tutorials/deploy-dispute-games). +See a high‐level implementation from this [docs](/operators/chain-operators/tutorials/dispute-games). ## 3. Testing off-chain agents @@ -381,7 +381,7 @@ OP_PROPOSER_GAME_TYPE=0 ## Next steps -* For more detail on deploying new dispute games with OPCM, [see the docs](/chain-operators/tutorials/deploy-dispute-games). -* Deploy new dispute games with OPCM via [this tutorial](/chain-operators/tutorials/deploy-dispute-games). +* For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games). +* Deploy new dispute games with OPCM via [this tutorial](/operators/chain-operators/tutorials/dispute-games). * Generate an absolute prestate using the [absolute prestate guide](/operators/chain-operators/tutorials/absolute-prestate). -* Understand fault proofs in the [Fault proofs explainer](/concepts/architecture/fault-proofs/explainer). +* Understand fault proofs in the [Fault proofs explainer](/stack/fault-proofs/explainer). diff --git a/pages/operators/node-operators.mdx b/pages/operators/node-operators.mdx index b949710aa..d50c923c3 100644 --- a/pages/operators/node-operators.mdx +++ b/pages/operators/node-operators.mdx @@ -25,19 +25,19 @@ import { Card, Cards } from 'nextra/components' Documentation covering Architecture, Configuration, Json Rpc, Management, Network Upgrades, Releases, Rollup Node, Tutorials in the Node Operators section of the OP Stack ecosystem. - + - + - + - + - + - + - + - + diff --git a/pages/operators/node-operators/architecture.mdx b/pages/operators/node-operators/architecture.mdx index d75e6f051..8a7603011 100644 --- a/pages/operators/node-operators/architecture.mdx +++ b/pages/operators/node-operators/architecture.mdx @@ -20,12 +20,12 @@ is_imported_content: 'false' # Node architecture -This page reviews node architecture for all nodes running on the Superchain network. All OP Mainnet nodes are composed of two core software services, the Rollup Node and the Execution Client. +This page reviews node architecture for all nodes running on the Superchain network. All OP Mainnet nodes are composed of two core software services, the Rollup Node and the Execution Client. OP Mainnet also optionally supports a third component, Legacy Geth, that can serve stateful queries for blocks and transactions created before the [Bedrock Upgrade](https://web.archive.org/web/20230608050602/https://blog.oplabs.co/introducing-optimism-bedrock/). ## Node flow diagram The following diagram shows how the Rollup Node, Execution Client, and Legacy Geth components work together to form a complete node running on the Superchain network. -This diagram uses the `op-node` and `op-geth` implementations of the Rollup Node and Execution Client respectively, but the same architecture generally applies to other implementations as well. +This diagram uses the `op-node` implementation of the Rollup Node and shows the general architecture that applies to all execution client implementations. ![OP Mainnet node architecture diagram.](/img/guides/node-operators/node-arch.svg) @@ -39,6 +39,16 @@ The Execution Client is responsible for executing the block payloads it receives The Execution Client exposes the standard JSON-RPC API that Ethereum developers are familiar with, and can be used to query blockchain data and submit transactions to the network. The Execution Client is largely analogous to an [execution client](https://ethereum.org/en/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) in Ethereum. +The OP Stack supports multiple execution client implementations: + +### op-geth + +`op-geth` is the original execution client for the OP Stack, based on the Go Ethereum (Geth) implementation. It has been modified to support the specific requirements of OP Stack chains. + +### Nethermind + +Nethermind is a high-performance execution client implementation written in C#. The `Nethermind` client has been adapted to support OP Stack chains, providing an alternative execution client option for node operators. + ## Legacy Geth OP Mainnet underwent a large database migration as part of the [Bedrock Upgrade](https://web.archive.org/web/20230608050602/https://blog.oplabs.co/introducing-optimism-bedrock/) in 2023. @@ -51,6 +61,6 @@ Legacy Geth is **not** required and is typically only necessary if you want to m ## Next steps -* To get your node up and running, start with the [run a node from docker](/node-operators/tutorials/docker-node) or [build a node from source](/node-operators/tutorials/source-node) tutorial. +* To get your node up and running, start with the [run a node from docker](/operators/node-operators/tutorials/node-from-docker) or [build a node from source](/operators/node-operators/tutorials/node-from-source) tutorial. These guides include instructions for both `op-geth` and `Nethermind` execution clients. * If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](./management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. * If you run into any problems, please visit the [Node Troubleshooting Guide](./management/troubleshooting) for help. diff --git a/pages/operators/node-operators/configuration.mdx b/pages/operators/node-operators/configuration.mdx index fe4a8d038..90dcae18b 100644 --- a/pages/operators/node-operators/configuration.mdx +++ b/pages/operators/node-operators/configuration.mdx @@ -27,9 +27,9 @@ import { Card, Cards } from 'nextra/components' This section provides information on node base configuration, consensus layer configuration options (OP Node), and execution layer configuration options (OP Geth). You'll find information to help you understand and work with these topics. - + - + - + diff --git a/pages/operators/node-operators/configuration/base-config.mdx b/pages/operators/node-operators/configuration/base-config.mdx index edb13471a..1554db55d 100644 --- a/pages/operators/node-operators/configuration/base-config.mdx +++ b/pages/operators/node-operators/configuration/base-config.mdx @@ -1,7 +1,7 @@ --- title: Node base configuration lang: en-US -description: Learn the node base configuration and recommended flags for op-node, op-geth, and legacy geth. +description: Learn the node base configuration and recommended flags for `op-node`, `op-geth`, and legacy geth. content_type: guide topic: node-base-configuration personas: @@ -16,22 +16,26 @@ categories: is_imported_content: 'false' --- -import { Callout } from 'nextra/components' +import { Callout, Tabs } from 'nextra/components' # Node base configuration - Always run `op-node` and `op-geth` in a one-to-one configuration. Don't run multiple `op-geth` instances behind one `op-node`, or vice versa. + Always run `op-node` and your execution client (`op-geth` or `nethermind`) in a one-to-one configuration. Don't run multiple execution client instances behind one `op-node`, or vice versa. To configure your node, you will need to do the following: -1. Configure `op-node` to point to the correct L1, `op-geth`, and L2 network. -2. Initialize `op-geth` with the correct network parameters. -3. Configure `op-geth` to properly communicate with the Rollup Node. +1. Configure `op-node` to point to the correct L1, execution client, and L2 network. +2. Initialize your execution client (`op-geth` or `nethermind`) with the correct network parameters. +3. Configure your execution client to properly communicate with the Rollup Node. 4. Optionally, configure Legacy Geth. -## Configuring `op-geth` +## Configuring Your execution client + +You can choose between two execution clients for your OP Stack rollup node: `op-geth` or `nethermind`. Each has its own configuration requirements and recommended settings. + +### Configuring `op-geth` Although the Docker image for the Execution Engine is called `op-geth`, the actual binary is still called `geth` in order to minimize differences between `op-geth` and `go-ethereum`. You can see the difference [here](https://op-geth.optimism.io/?utm_source=op-docs&utm_medium=docs). @@ -42,7 +46,7 @@ Depending on the network you're running, initialization is done one of three way 1. **With Network Flags:** This initializes the genesis information and chain configuration from the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry). 2. **With a Genesis File:** This is for deployments that are not migrated from a legacy network (i.e. OP Sepolia). In this case, you'll use a genesis file and initialize the data directory via `geth init`. -3. **With a Data Directory:** This is used for networks that are migrated from a legacy network. This currently **only** includes OP Mainnet. In this case, you'll download a preconfigured data directory and extract it. No further initialization is necessary in this case, because the data directory contains the network's genesis information. This method can be bypassed if you utilize [snap sync](/node-operators/guides/management/snap-sync). +3. **With a Data Directory:** This is used for networks that are migrated from a legacy network. This currently **only** includes OP Mainnet. In this case, you'll download a preconfigured data directory and extract it. No further initialization is necessary in this case, because the data directory contains the network's genesis information. This method can be bypassed if you utilize [snap sync](/operators/node-operators/management/snap-sync). Regardless of how `op-geth` is initialized, you'll need to ensure that you have sufficient disk space available to store the network's data. As of this writing, the OP Mainnet data directory is \~1.6TB for a full node and \~5TB for an archival node. @@ -146,12 +150,28 @@ geth \ Consult [Geth's documentation](https://geth.ethereum.org/docs/) for more information on customizing `op-geth`'s behavior. +### Configuring `nethermind` + +Nethermind is an alternative execution client for OP Stack rollup nodes. It provides high performance and reliability while maintaining compatibility with the OP Stack protocol. + +#### Working base configuration for Nethermind + +To run `Nethermind` on the OP Mainnet, use the following command: + +```bash +nethermind \ + -c op-mainnet \ + --data-dir path/to/data/dir \ + --jsonrpc-jwtsecretfile path/to/jwt.hex +``` +Consult [`Nethermind`'s documentation](https://docs.nethermind.io/fundamentals/configuration) for more detailed configuration options. + ## Configuring `op-node` `op-node` is a standalone, statically linked binary. It stores no state, and requires no initialization. It consumes configuration parameters either via the command line or environment variables. For some networks, the Rollup Node also requires a configuration file (called `rollup.json` or the "rollup config") that configures network-specific genesis parameters. For official networks like OP Sepolia and OP Mainnet, the genesis config is hardcoded in the `op-node` software and can be specified via a `--network` flag. Following the [Ecotone upgrade](/operators/node-operators/network-upgrades#ecotone) -node operators must set an L1 beacon value to retrieve [blobs](/chain-operators/guides/management/blobs) +node operators must set an L1 beacon value to retrieve [blobs](/operators/node-operators/management/blobs) from a Beacon node. @@ -163,6 +183,8 @@ from a Beacon node. A minimal valid configuration that runs `op-node` looks like: + + ```bash op-node --l1= \ --l2= \ @@ -174,6 +196,21 @@ op-node --l1= \ --syncmode=execution-layer \ --l2.enginekind=geth ``` + + +```bash +op-node --l1= \ + --l2= \ + --network=op-mainnet \ + --rpc.addr=127.0.0.1 \ + --rpc.port=9545 \ + --l2.jwt-secret= \ + --l1.beacon= \ + --syncmode=execution-layer \ + --l2.enginekind=nethermind +``` + + You can manually specify a path to a rollup config with the `--rollup.config` flag. This is used for testnets or internal deployments that are not migrated from a legacy network. @@ -229,6 +266,6 @@ The term *historical execution* refers to RPC methods that need to execute trans If you do not need these RPC methods for historical data, then you do not need to run Legacy Geth at all. ## Next steps -* See the [op-node configuration](/node-operators/guides/configuration/consensus) guide for additional configuration options for `op-node` and the Consensus-Layer. -* Similarly, visit the [op-geth configuration](/node-operators/guides/configuration/execution) guide for additional configuration options for `op-geth` and Execution-Layer. +* See the [`op-node` configuration](/operators/node-operators/configuration/consensus-config) guide for additional configuration options for `op-node` and the Consensus-Layer. +* For execution client configuration, visit [execution client configuration](/operators/node-operators/configuration/execution-config) for additional options when using `op-geth` or `nethermind` * If you run into any problems, please reach out to our [developer support forum](https://github.com/ethereum-optimism/developers/discussions) for help. diff --git a/pages/operators/node-operators/json-rpc.mdx b/pages/operators/node-operators/json-rpc.mdx index 60b95dd13..32220a712 100644 --- a/pages/operators/node-operators/json-rpc.mdx +++ b/pages/operators/node-operators/json-rpc.mdx @@ -28,7 +28,7 @@ There are several OP Mainnet components with an RPC API, which are reviewed in t Use [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice) instead of `rollup_gasPrices` for the L2 gas price. For the L1 gas price, you can call the [`GasPriceOracle`'s `l1BaseFee` function](https://explorer.optimism.io/address/0x420000000000000000000000000000000000000F#readProxyContract#F11). - If you want to estimate the cost of a transaction, you can [use the SDK](/app-developers/tutorials/transactions/cost-estimation). + If you want to estimate the cost of a transaction, you can [use the SDK](/app-developers/tutorials/transactions/sdk-estimate-costs). ## op-node diff --git a/pages/operators/node-operators/management.mdx b/pages/operators/node-operators/management.mdx index b94a19475..293b7f1a5 100644 --- a/pages/operators/node-operators/management.mdx +++ b/pages/operators/node-operators/management.mdx @@ -25,15 +25,15 @@ import { Card, Cards } from 'nextra/components' This section provides information on using blobs, node metrics and monitoring, snap sync for node operators, node snapshots, and troubleshooting. Users will find APIs, references, and guides to help understand and work with these topics. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/operators/node-operators/management/blobs.mdx b/pages/operators/node-operators/management/blobs.mdx index 924bf0754..7205f1d37 100644 --- a/pages/operators/node-operators/management/blobs.mdx +++ b/pages/operators/node-operators/management/blobs.mdx @@ -36,7 +36,7 @@ These steps are necessary for EVERY node operator: ### Update to the latest release -See the [Software Releases](/node-operators/reference/releases) page for the minimum release version. +See the [Software Releases](/operators/node-operators/releases) page for the minimum release version. ### Configure the Ecotone activation date diff --git a/pages/operators/node-operators/management/snap-sync.mdx b/pages/operators/node-operators/management/snap-sync.mdx index 274697b28..fe73d1688 100644 --- a/pages/operators/node-operators/management/snap-sync.mdx +++ b/pages/operators/node-operators/management/snap-sync.mdx @@ -143,5 +143,5 @@ To enable execution layer sync for these clients, set the following flags on `op ## Next steps * See the [Node Configuration](/operators/node-operators/configuration/base-config#configuration) guide for additional explanation or customization. -* To enable snap sync for your chain, see [Using Snap Sync for Chain Operators](/chain-operators/guides/management/snap-sync). +* To enable snap sync for your chain, see [Using Snap Sync for Chain Operators](/operators/chain-operators/management/snap-sync). * If you experience difficulty at any stage of this process, please reach out to [developer support](https://github.com/ethereum-optimism/developers/discussions). diff --git a/pages/operators/node-operators/network-upgrades.mdx b/pages/operators/node-operators/network-upgrades.mdx index 7e56c70cf..a262de2c4 100644 --- a/pages/operators/node-operators/network-upgrades.mdx +++ b/pages/operators/node-operators/network-upgrades.mdx @@ -86,5 +86,5 @@ then the software is deployed on production networks. ## More information -* To check for the latest node software, see the [Software Releases](/node-operators/reference/releases). +* To check for the latest node software, see the [Software Releases](/operators/node-operators/releases). * For more information on the governance process see the [governance documentation](https://community.optimism.io/docs/governance/?utm_source=op-docs\&utm_medium=docs). diff --git a/pages/operators/node-operators/rollup-node.mdx b/pages/operators/node-operators/rollup-node.mdx index 96d12a8c8..2a5f68828 100644 --- a/pages/operators/node-operators/rollup-node.mdx +++ b/pages/operators/node-operators/rollup-node.mdx @@ -33,19 +33,19 @@ Before building your node, you will learn fundamental aspects of OP Stack rollup These are the two fundamental components of an OP Stack rollup node: - * **Node Architecture**: OP Stack rollup nodes use the rollup node and execution client and can also support legacy geth for pre-bedrock historical execution requests. For more details, see the [Node Architecture](/node-operators/reference/architecture/overview) guide. + * **Node Architecture**: OP Stack rollup nodes use the rollup node and execution client and can also support legacy geth for pre-bedrock historical execution requests. For more details, see the [Node Architecture](/operators/node-operators/architecture) guide. * **Network Upgrades**: Network upgrades for OP Stack rollup nodes are generally [activated by timestamps](/operators/node-operators/network-upgrades#activations). Failing to upgrade your node before the timestamp causes a chain divergence, requiring you to resync your node to reconcile the chain. Follow the established [Node Upgrade Process](/operators/node-operators/network-upgrades#upgrade-process) to avoid chain divergence. - If you are building an archive node on OP Mainnet, then you'll need a [node snapshot](/node-operators/guides/management/snapshots). This is **not required** for nodes using [snap sync](/node-operators/guides/management/snap-sync). + If you are building an archive node on OP Mainnet, then you'll need a [node snapshot](/operators/node-operators/management/snapshots). This is **not required** for nodes using [snap sync](/operators/node-operators/management/snap-sync). {

Build Your OP Stack Node

} Now, you are ready to build your OP Stack rollup node. You have two options for this: - * **Option 1:** Follow the [Running a Node with Docker](/node-operators/tutorials/docker-node) tutorial, which gets your OP Stack rollup node up and running without having to build it from source. - * **Option 2:** Follow the [Building a Node from Source](/node-operators/tutorials/source-node) tutorial, if you need to use a specific architecture or want to inspect the source code of your OP Stack rollup node. + * **Option 1:** Follow the [Running a Node with Docker](/operators/node-operators/tutorials/node-from-docker) tutorial, which gets your OP Stack rollup node up and running without having to build it from source. + * **Option 2:** Follow the [Building a Node from Source](/operators/node-operators/tutorials/node-from-source) tutorial, if you need to use a specific architecture or want to inspect the source code of your OP Stack rollup node.
## Configure your node @@ -55,17 +55,18 @@ OP Stack rollup nodes can be configured for individual needs. The following step {

Setup Your Working Base Configs

} - * Configure `op-geth` using the [base configuration](/operators/node-operators/configuration/base-config#working-base-configuration). - * Set the [recommended flags for `op-geth`](/operators/node-operators/configuration/base-config#recommended-flags-for-op-geth-configuration) to follow best practices for configuring OP Stack rollup nodes. + * Configure your execution client: + * For `op-geth`: Use the [base configuration](/operators/node-operators/configuration/base-config#working-base-configuration) and set the [recommended flags](/operators/node-operators/configuration/base-config#recommended-flags-for-op-geth-configuration) + * For `nethermind`: Use the [base configuration](/operators/node-operators/configuration/base-config#working-base-configuration-nethermind) and set the [recommended flags](/operators/node-operators/configuration/base-config#recommended-flags-for-nethermind-configuration) * Configure `op-node` using the [base configuration](/operators/node-operators/configuration/base-config#working-base-configuration-1). {

Enable Snap Sync

} - * Enable [snap sync](/node-operators/guides/management/snap-sync) for your node to significantly improve the experience and speed of syncing an OP Stack node. + * Enable [snap sync](/operators/node-operators/management/snap-sync) for your node to significantly improve the experience and speed of syncing an OP Stack node. This is an **optional** feature but highly recommended for node providers. - Additional configuration options exist for [`op-geth`](/node-operators/guides/configuration/execution) and [`op-node`](/node-operators/guides/configuration/consensus), respectively. + Additional configuration options exist for execution clients and `op-node`. See the [Execution Client Configuration](/operators/node-operators/configuration/execution-config) and [`op-node`](/operators/node-operators/configuration/consensus-config), respectively.
@@ -79,11 +80,11 @@ Now, you will run your node and set your node debugging log level for more granu You will now run your node from source for your Superchain network. Here are your options. - The tutorial [Building a Node from Source](/node-operators/tutorials/source-node) is a **pre-requisite** to running your node from source and must be completed first. + The tutorial [Building a Node from Source](/operators/node-operators/tutorials/node-from-source) is a **pre-requisite** to running your node from source and must be completed first. - * **Option 1:** Follow the [Running an OP Sepolia Node from Source](/node-operators/tutorials/run-from-source) tutorial. - * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/node-operators/tutorials/run-from-source) tutorial, if you plan to run a full node or archive node. + * **Option 1:** Follow the [Running an OP Sepolia Node from Source](/operators/node-operators/tutorials/run-node-from-source) tutorial. + * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/operators/node-operators/tutorials/run-node-from-source) tutorial, if you plan to run a full node or archive node. {

Update Node Log Level

} @@ -94,29 +95,34 @@ Now, you will run your node and set your node debugging log level for more granu ## Monitor your node -It is important to regularly monitor your node, and you can optionally configure prometheus and grafana dashboard to make this process easier for you. +It is important to regularly monitor your node, and you can optionally configure Prometheus and Grafana dashboard to make this process easier for you. {

Enable the Metrics Port

} - * Enable the [metrics port](/node-operators/guides/monitoring/metrics) for your node by passing the `--metrics.enabled` flag to `op-node`. + * Enable the [metrics port](/operators/node-operators/management/metrics) for your node by passing the `--metrics.enabled` flag to `op-node`. * Optionally, you can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively. - {

Setup Prometheus & Grafana

} + {

Set up Prometheus & Grafana

} - The following steps are intended for `go-ethereum`, so it must be tweaked to work for rollup nodes running within the Superchain. + The following steps vary depending on your execution client. - * Setup [influxdb](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-influxdb) to hold metrics data. - * Setup [prometheus](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-prometheus) to read your endpoint. - * Setup your [grafana dashboard](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-grafana) to provide UI for metrics. + For `op-geth`: + * Set up [InfluxDB](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-influxdb) to hold metrics data + * Set up [Prometheus](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-prometheus) to read your endpoint + * Set up your [Grafana dashboard](https://geth.ethereum.org/docs/monitoring/dashboards#setting-up-grafana) to provide a UI for metrics + + For `Nethermind`: + * Set up [Grafana and Prometheus](https://docs.nethermind.io/monitoring/metrics/grafana-and-prometheus/#step-1-set-up-grafana-and-prometheus) + * Follow the [metrics documentation](https://docs.nethermind.io/monitoring/metrics/) for detailed monitoring setup
## Follow node updates * It's important to keep your node software up to date. Software updates can also include important bug fixes and patches that can help keep your node stable. -* Refer to the [Software Releases](/node-operators/reference/releases) page for a detailed look at the latest releases of various rollup node and execution client implementations. +* Refer to the [Software Releases](/operators/node-operators/releases) page for a detailed look at the latest releases of various rollup node and execution client implementations. * Notifications are also posted to the Optimism Upgrade Announcement Channels on [**Discord**](https://discord.com/channels/667044843901681675/754090866435424270) and [**Telegram**](https://t.me/+LtAJL1Mt1PYyNjBh). * You can also stay up to date in the [Superchain Developer Discord](https://guild.xyz/superchain-devs). @@ -136,5 +142,5 @@ It is important to regularly monitor your node, and you can optionally configure ## Next steps -* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/node-operators/guides/monitoring/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. -* If you run into any problems, please visit the [Node Troubleshooting Guide](/node-operators/guides/troubleshooting) for help. +* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/operators/node-operators/management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/node-operators/management/troubleshooting) for help. diff --git a/pages/operators/node-operators/tutorials.mdx b/pages/operators/node-operators/tutorials.mdx index 4ab0363d0..91364ac09 100644 --- a/pages/operators/node-operators/tutorials.mdx +++ b/pages/operators/node-operators/tutorials.mdx @@ -27,10 +27,10 @@ import { Card, Cards } from 'nextra/components' This section provides information on how to run a node on a Superchain network. It covers running a node with Docker, building a Superchain node from source, and running a Superchain node from source. - + - + - + diff --git a/pages/operators/node-operators/tutorials/node-from-docker.mdx b/pages/operators/node-operators/tutorials/node-from-docker.mdx index f767f20ed..2f23aba05 100644 --- a/pages/operators/node-operators/tutorials/node-from-docker.mdx +++ b/pages/operators/node-operators/tutorials/node-from-docker.mdx @@ -25,7 +25,7 @@ import { Callout, Steps } from 'nextra/components' Using [Docker](https://docs.docker.com/engine/install/) is an easy way to run an OP Mainnet node. This tutorial will walk you through the process of using [`simple-optimism-node`](https://github.com/smartcontracts/simple-optimism-node) to run an OP Mainnet or OP Sepolia node using Docker. `simple-optimism-node` also provides useful tools like a monitoring dashboard and health checking software. -Although less flexible than [running a node from source](/node-operators/tutorials/source-node) or building your own Docker setup, this is a great way to quickly get started with OP Mainnet. +Although less flexible than [running a node from source](/operators/node-operators/tutorials/node-from-source) or building your own Docker setup, this is a great way to quickly get started with OP Mainnet. By default, `simple-optimism-node` uses `op-geth` as the execution client. Support for `Nethermind` as an alternative execution client is also available. diff --git a/pages/operators/node-operators/tutorials/node-from-source.mdx b/pages/operators/node-operators/tutorials/node-from-source.mdx index ccb5c1b45..bfbf2611a 100644 --- a/pages/operators/node-operators/tutorials/node-from-source.mdx +++ b/pages/operators/node-operators/tutorials/node-from-source.mdx @@ -205,4 +205,4 @@ Legacy Geth is only relevant to OP Mainnet archive nodes and is not required for ## Next steps * Click here to [Run a Superchain node from source code](run-node-from-source) -* If you run into any problems, please visit the [Node Troubleshooting Guide](/chain-operators/guides/troubleshooting) for help. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/chain-operators/management/troubleshooting) for help. diff --git a/pages/operators/node-operators/tutorials/run-node-from-source.mdx b/pages/operators/node-operators/tutorials/run-node-from-source.mdx index c97d4daeb..e088156ac 100644 --- a/pages/operators/node-operators/tutorials/run-node-from-source.mdx +++ b/pages/operators/node-operators/tutorials/run-node-from-source.mdx @@ -18,7 +18,7 @@ categories: is_imported_content: 'false' --- -import { Callout, Steps } from 'nextra/components' +import { Callout, Steps, Tabs } from 'nextra/components' # Running a Superchain node from source @@ -27,7 +27,7 @@ Running an OP Stack node from source code is a flexible alternative to using pre ## Building the source code -You'll need to build `op-node` and `op-geth` from their respective source repositories before you can run a node. +You'll need to build `op-node` and execution client (`op-geth` or `Nethermind`) from their respective source repositories before you can run a node. Make sure to follow the instructions on [Building a Node from Source](./node-from-source) before continuing. ## Hardware requirements @@ -55,7 +55,7 @@ Based on these trends, node operators should plan for future storage needs and c ## Superchain nodes -All nodes in the Superchain ecosystem can be run from `op-node` and `op-geth` binaries if they're included in the [Superchain Registry](/chain-operators/reference/superchain-registry). You can specify the type of node you want to run by configuring the `--network` flag on `op-node` and the `--op-network` flag on `op-geth`. +All nodes in the Superchain ecosystem can be run from `op-node` and an execution client (`op-geth` or `Nethermind`) if they're included in the [Superchain Registry](/superchain/superchain-registry). You can specify the type of node you want to run by configuring the `--network` flag on `op-node` and the corresponding network flag on your execution client (`--op-network` for `op-geth` or `-c` for `Nethermind`). ### Assess blob archiver @@ -63,9 +63,9 @@ Assess if you need to configure a blob archiver service by reading the [Configur ### Create a JWT secret -`op-geth` and `op-node` communicate over the engine API authrpc. +The execution client and `op-node` communicate over the engine API authrpc. This communication is secured using a shared secret. -You will need to generate a shared secret and provide it to both `op-geth` and `op-node` when you start them. +You will need to generate a shared secret and provide it to both your execution client and `op-node` when you start them. In this case, the secret takes the form of a 32 byte hex string. Run the following command to generate a random 32 byte hex string: @@ -74,69 +74,114 @@ Run the following command to generate a random 32 byte hex string: openssl rand -hex 32 > jwt.txt ``` -### Start `op-geth` +### Start the execution client -It's generally easier to start `op-geth` before starting `op-node`. -You can still start `op-geth` without yet running `op-node`, but the `op-geth` instance will simply not receive any blocks until `op-node` is started. +It's generally easier to start the execution client before starting `op-node`. +You can still start the execution client without yet running `op-node`, but it will simply not receive any blocks until `op-node` is started. - - {

Navigate to your op-geth directory

} + + + + {

Navigate to your `op-geth` directory

} - Find the directory where you built the `op-geth` binary. + Find the directory where you built the `op-geth` binary. - {

Copy in the JWT secret

} + {

Copy in the JWT secret

} - Copy the JWT secret you generated in a previous step into the `op-geth` directory. + Copy the JWT secret you generated in a previous step into the `op-geth` directory. - ```bash - cp /path/to/jwt.txt . - ``` + ```bash + cp /path/to/jwt.txt . + ``` - {

Set environment variables

} + {

Set environment variables

} - Set the following environment variables: + Set the following environment variables: - ```bash - export DATADIR_PATH=... # Path to the desired data directory for op-geth - ``` + ```bash + export DATADIR_PATH=... # Path to the desired data directory for op-geth + ``` - {

Start op-geth

} + {

Start `op-geth`

} - - If you want to run an archive node, you will need to set `--gcmode=archive`. If you want to run an OP Mainnet archive node, please refer to the [OP Mainnet archive nodes](#op-mainnet-archive-nodes) section. - - Use the following command to start `op-geth` in a default configuration. - The JSON-RPC API will become available on port 8545. - Refer to the `op-geth` [configuration documentation](/node-operators/guides/configuration/execution) for more detailed information about available options. + + If you want to run an archive node, you will need to set `--gcmode=archive`. If you want to run an OP Mainnet archive node, please refer to the [OP Mainnet archive nodes](#op-mainnet-archive-nodes) section. + - ```bash - ./build/bin/geth \ - --http \ - --http.port=8545 \ - --http.addr=localhost \ - --authrpc.addr=localhost \ - --authrpc.jwtsecret=./jwt.txt \ - --verbosity=3 \ - --rollup.sequencerhttp=https://mainnet-sequencer.optimism.io/ \ - --op-network=op-sepolia \ - --datadir=$DATADIR_PATH - ``` -
+ Use the following command to start `op-geth` in a default configuration. + The JSON-RPC API will become available on port 8545. + Refer to the `op-geth` [configuration documentation](/operators/node-operators/configuration/execution-config) for more detailed information about available options. + + ```bash + ./build/bin/geth \ + --http \ + --http.port=8545 \ + --http.addr=localhost \ + --authrpc.addr=localhost \ + --authrpc.jwtsecret=./jwt.txt \ + --verbosity=3 \ + --rollup.sequencerhttp=https://mainnet-sequencer.optimism.io/ \ + --op-network=op-sepolia \ + --datadir=$DATADIR_PATH + ``` +
+ + + + + {

Navigate to your `Nethermind` directory

} + + Find the directory where you built the `Nethermind` binary. + + {

Copy in the JWT secret

} + + Copy the JWT secret you generated in a previous step into the `Nethermind` directory. + + ```bash + cp /path/to/jwt.txt . + ``` + + {

Start `Nethermind`

} + + + If you want to run an archive node, use the `op-sepolia_archive` configuration instead of `op-sepolia`. For OP Mainnet, use `op-mainnet` or `op-mainnet_archive` configurations respectively. + + + Use the following command to start `Nethermind` in a default configuration. + The JSON-RPC API will become available on port 8545. + Refer to the `Nethermind` [configuration documentation](/operators/node-operators/configuration/execution-config#nethermind) for more detailed information about available options. + + ```bash + ./Nethermind.Runner \ + -c op-sepolia \ + --data-dir path/to/data/dir \ + --JsonRpc.JwtSecretFile=./jwt.txt + ``` + + This command uses the built-in `op-sepolia` configuration which already includes the correct settings for: + + * JSON-RPC endpoints + * Network ports + * Sequencer URL + * Other OP Stack specific settings +
+
+ ### Start `op-node` -Once you've started `op-geth`, you can start `op-node`. -`op-node` will connect to `op-geth` and begin synchronizing the OP Mainnet state. -`op-node` will begin sending block payloads to `op-geth` when it derives enough blocks from Ethereum. +Once you've started your execution client, you can start `op-node`. +`op-node` will connect to the execution client and begin synchronizing the OP Mainnet state. +`op-node` will begin sending block payloads to the execution client when it derives enough blocks from Ethereum. - {

Navigate to your op-node directory

} + {

Navigate to your `op-node` directory

} Find the directory where you built the `op-node` binary. {

Copy in the JWT secret

} - Both `op-geth` and `op-node` need to use the same JWT secret. + Both the execution client and `op-node` need to use the same JWT secret. Copy the JWT secret you generated in a previous step into the `op-node` directory. ```bash @@ -153,10 +198,10 @@ Once you've started `op-geth`, you can start `op-node`. export L1_BEACON_URL=... # URL address for the L1 Beacon-node HTTP endpoint to use. If your L1 Beacon is a local node, the most common URL is http://127.0.0.1:3500 ``` - {

Start op-node

} + {

Start `op-node`

} Use the following command to start `op-node` in a default configuration. - Refer to the `op-node` [configuration documentation](/node-operators/guides/configuration/consensus) for more detailed information about available options. + Refer to the `op-node` [configuration documentation](/operators/node-operators/configuration/consensus-config) for more detailed information about available options. The `op-node` RPC should not be exposed publicly. If left exposed, it could @@ -164,8 +209,8 @@ Once you've started `op-geth`, you can start `op-node`. - Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/node-operators/guides/management/snap-sync) - and remove the need to initialize the node with a data directory. + Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/operators/node-operators/management/snap-sync) + for both `op-geth` and `Nethermind`, removing the need to initialize the node with a data directory. ```bash @@ -189,75 +234,109 @@ Once you've started `op-geth`, you can start `op-node`. ### Synchronization verification -Once you've started `op-geth` and `op-node` you should see the two begin to -communicate with each other and synchronize the OP Mainnet chain. +Once you've started your execution client and `op-node` you should see them begin to communicate with each other and synchronize the OP Mainnet chain. #### Snap sync (default) -Initial synchronization can take several hours to complete. You will see these -`op-node` logs at the start of snap sync: + + + Initial synchronization can take several hours to complete. You will see these + `op-node` logs at the start of snap sync: -```text -INFO [03-06|10:56:55.602] Starting EL sync -INFO [03-06|10:56:55.615] Sync progress reason="unsafe payload from sequencer while in EL sync" l2_finalized=000000..000000:0 l2_safe=000000..000000:0 l2_pending_safe=000000..000000:0 l2_unsafe=4284ab..7e7e84:117076319 l2_time=1,709,751,415 l1_derived=000000..000000:0 -INFO [03-06|10:56:57.567] Optimistically inserting unsafe L2 execution payload to drive EL sync id=4ac160..df4d12:117076320 -``` + ```text + INFO [03-06|10:56:55.602] Starting EL sync + INFO [03-06|10:56:55.615] Sync progress reason="unsafe payload from sequencer while in EL sync" l2_finalized=000000..000000:0 l2_safe=000000..000000:0 l2_pending_safe=000000..000000:0 l2_unsafe=4284ab..7e7e84:117076319 l2_time=1,709,751,415 l1_derived=000000..000000:0 + INFO [03-06|10:56:57.567] Optimistically inserting unsafe L2 execution payload to drive EL sync id=4ac160..df4d12:117076320 + ``` -`Starting EL sync` is shown once and the **sync progress / inserting logs** should be repeated until done. + `Starting EL sync` is shown once and the **sync progress / inserting logs** should be repeated until done. -`op-node` will log the following when done: + `op-node` will log the following when done: -```text -lvl=info msg="Finished EL sync" sync_duration=23h25m0.370558429s finalized_block=0x4f69e83ff1407f2e2882f2526ee8a154ac326590799889cede3af04a7742f18d:116817417 -``` + ```text + lvl=info msg="Finished EL sync" sync_duration=23h25m0.370558429s finalized_block=0x4f69e83ff1407f2e2882f2526ee8a154ac326590799889cede3af04a7742f18d:116817417 + ``` -There are two stages on `op-geth` for snap sync: + There are two stages on `op-geth` for snap sync: - - {

Downloading the headers

} - `op-geth` log something like this as it is downloading the headers: + + {

Downloading the headers

} - ```text - lvl=info msg="Syncing beacon headers" downloaded=116775778 left=1162878 eta=53.182s - ``` + `op-geth` log something like this as it is downloading the headers: - {

Sync progress

} + ```text + lvl=info msg="Syncing beacon headers" downloaded=116775778 left=1162878 eta=53.182s + ``` - For the second stage, `op-geth` will log the following: + {

Sync progress

} - ```text - lvl=info msg="Syncing: state download in progress" synced=99.75% state="191.33 GiB" accounts=124,983,227@25.62GiB slots=806,829,266@165.16GiB codes=78965@566.74MiB eta=-2m7.602s - ``` + For the second stage, `op-geth` will log the following: - ```text - msg="Syncing: chain download in progress" synced=100.00% chain="176.01 GiB" headers=116,817,399@45.82GiB bodies=116,817,286@52.87GiB receipts=116,817,286@77.32GiB eta=77.430ms - ``` - - All the while, `op-geth` will also log the forkchoice update: + ```text + lvl=info msg="Syncing: state download in progress" synced=99.75% state="191.33 GiB" accounts=124,983,227@25.62GiB slots=806,829,266@165.16GiB codes=78965@566.74MiB eta=-2m7.602s + ``` - ```text - Forkchoice requested sync to new head number=117,076,468 hash=e3884c..bf4e2b - ``` + ```text + msg="Syncing: chain download in progress" synced=100.00% chain="176.01 GiB" headers=116,817,399@45.82GiB bodies=116,817,286@52.87GiB receipts=116,817,286@77.32GiB eta=77.430ms + ``` -
+ All the while, `op-geth` will also log the forkchoice update: + + ```text + Forkchoice requested sync to new head number=117,076,468 hash=e3884c..bf4e2b + ``` +
+
+ + + Initial synchronization can take several hours to complete. + + Snap sync in `Nethermind` works by: + + 1. Downloading only the leaf nodes of the state tree + 2. Generating intermediate nodes locally + 3. Verifying the state root matches + + This approach is up to 10 times faster than traditional full sync. + +
#### Full sync -For OP Mainnet you will need access to the migrated database to run a full node with full sync. -You can [migrate your own data directory](https://web.archive.org/web/20240110231645/https://blog.oplabs.co/reproduce-bedrock-migration/) or follow the options available for [archive nodes](#get-the-migrated-data-directory). + For OP Mainnet you will need access to the migrated database to run a full node with full sync. + You can [migrate your own data directory](https://web.archive.org/web/20240110231645/https://blog.oplabs.co/reproduce-bedrock-migration/) or follow the options available for [archive nodes](#get-the-migrated-data-directory). -Initial full synchronization can take several days or weeks to complete. During this time, you will initially observe `op-node` deriving blocks from Ethereum without sending these blocks to `op-geth`. -This means that `op-node` is requesting blocks from Ethereum one-by-one and determining the corresponding OP Mainnet blocks that were published to Ethereum. + + + Initial full synchronization can take several days or weeks to complete. During this time, you will initially observe `op-node` deriving blocks from Ethereum without sending these blocks to your execution client. + + + + To use full sync with `Nethermind`, set the following configuration: + + ```bash + ./Nethermind.Runner \ + -c op-sepolia \ + --Sync.SnapSync=false \ + --Sync.FastSync=false \ + --data-dir path/to/data/dir \ + --JsonRpc.JwtSecretFile=./jwt.txt + ``` + + Full sync will download and verify every block from genesis, which takes significantly longer than snap sync but provides the strongest security guarantees. + + + +Both execution clients will receive blocks from `op-node` as it requests them from Ethereum one-by-one and determines the corresponding OP Mainnet blocks that were published. You should see logs like the following from `op-node`: ```text INFO [06-26|13:31:20.389] Advancing bq origin origin=17171d..1bc69b:8300332 originBehind=false ``` -Once the `op-node` has derived enough blocks from Ethereum, it will begin sending these blocks to `op-geth`. -You should see logs like the following from `op-node`: +Once the initial sync is complete, you'll see sync progress logs: ```text INFO [06-26|14:00:59.460] Sync progress reason="processed safe block derived from L1" l2_finalized=ef93e6..e0f367:4067805 l2_safe=7fe3f6..900127:4068014 l2_unsafe=7fe3f6..900127:4068014 l2_time=1,673,564,096 l1_derived=6079cd..be4231:8301091 @@ -266,13 +345,24 @@ INFO [06-26|14:00:59.461] generated attributes in payload queue txs=1 timest INFO [06-26|14:00:59.463] inserted block hash=e80dc4..72a759 number=4,068,015 state_root=660ced..043025 timestamp=1,673,564,098 parent=7fe3f6..900127 prev_randao=78e43d..36f07a fee_recipient=0x4200000000000000000000000000000000000011 txs=1 update_safe=true ``` -You should then also begin to see logs like the following from `op-geth`: - -```text -INFO [06-26|14:02:12.974] Imported new potential chain segment number=4,068,194 hash=a334a0..609a83 blocks=1 txs=1 mgas=0.000 elapsed=1.482ms mgasps=0.000 age=5mo2w20h dirty=2.31MiB -INFO [06-26|14:02:12.976] Chain head was updated number=4,068,194 hash=a334a0..609a83 root=e80f5e..dd06f9 elapsed="188.373µs" age=5mo2w20h -INFO [06-26|14:02:12.982] Starting work on payload id=0x5542117d680dbd4e -``` +You should then also begin to see logs from your execution client: + + + + ```text + INFO [06-26|14:02:12.974] Imported new potential chain segment number=4,068,194 hash=a334a0..609a83 blocks=1 txs=1 mgas=0.000 elapsed=1.482ms mgasps=0.000 age=5mo2w20h dirty=2.31MiB + INFO [06-26|14:02:12.976] Chain head was updated number=4,068,194 hash=a334a0..609a83 root=e80f5e..dd06f9 elapsed="188.373µs" age=5mo2w20h + INFO [06-26|14:02:12.982] Starting work on payload id=0x5542117d680dbd4e + ``` + + + + * **Received New Block**: Block received with number, hash and extra data `21288296 (0xb61f74...cbfbe7), Extra Data: Titan (titanbuilder.xyz)` + * **Processed**: Block or block range processed, e.g., or `x4 21288291 .. 21288295` or `21288296` + * **Received ForkChoice**: Updates on the blockchain's canonical chain; with safe and finalized block, e.g., `21288296 (0xb61f74...cbfbe7), Safe: 21288252 (0x46906d...7777b8), Finalized: 21288221 (0x22a7d2...ebeae9)` + * **Synced Chain Head**: Latest synced block number and hash on the chain, e.g., `21288296 (0xb61f74...cbfbe7)` + + ## OP Mainnet archive nodes @@ -335,7 +425,7 @@ In this section, you'll learn how to download and verify the pre-migrated databa tar xvf mainnet-bedrock.tar.zst ``` - {

Configure op-geth for archive mode

} + {

Configure `op-geth` for archive mode

} Set `--syncmode=full` and `--gcmode=archive` on `op-geth`.
@@ -410,5 +500,5 @@ If you've chosen to run a Legacy Geth node alongside your OP Mainnet node, you'l ## Next steps -* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/node-operators/guides/monitoring/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. -* If you run into any problems, please visit the [Node Troubleshooting Guide](/node-operators/guides/troubleshooting) for help. +* If you've already got your node up and running, check out the [Node Metrics and Monitoring Guide](/operators/node-operators/management/metrics) to learn how to keep tabs on your node and make sure it keeps running smoothly. +* If you run into any problems, please visit the [Node Troubleshooting Guide](/operators/node-operators/management/troubleshooting) for help. diff --git a/pages/stack/beta-features.mdx b/pages/stack/beta-features.mdx index 3a68ad0d2..1189d1b04 100644 --- a/pages/stack/beta-features.mdx +++ b/pages/stack/beta-features.mdx @@ -62,7 +62,7 @@ Feedback from beta users helps improve and refine these features. Here's how to Explore our current beta features below. Each feature includes links to detailed documentation for setup, usage, and feedback guidelines. - } /> + } /> {' '} diff --git a/pages/stack/beta-features/alt-da-mode.mdx b/pages/stack/beta-features/alt-da-mode.mdx index 1468de256..554a1dbef 100644 --- a/pages/stack/beta-features/alt-da-mode.mdx +++ b/pages/stack/beta-features/alt-da-mode.mdx @@ -55,7 +55,7 @@ Alt-DA Mode will always have more trust assumptions than simply posting data to ## Next steps -* Ready to get started? Read our guide on how to [deploy your Alt-DA Mode chain](/chain-operators/reference/features/alt-da). +* Ready to get started? Read our guide on how to [deploy your Alt-DA Mode chain](/operators/chain-operators/features/alt-da-mode). * For more info about how Alt-DA Mode works under the hood, [check out the specs](https://specs.optimism.io/experimental/alt-da.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/components.mdx b/pages/stack/components.mdx index ade2bcaf4..dbbc6a3fb 100644 --- a/pages/stack/components.mdx +++ b/pages/stack/components.mdx @@ -99,7 +99,7 @@ Once a transaction is published and finalized on the corresponding Data Availabi An Attestation-based Fault Proof mechanism uses an optimistic protocol to establish a view of an OP Stack chain. In optimistic settlement mechanisms generally, **Proposer** entities can propose what they believe to be the current valid state of the OP Stack chain. If these proposals are not invalidated within a certain period of time (the "challenge period"), then the proposals are assumed by the mechanism to be correct. In the Attestation Proof mechanism in particular, a proposal can be invalidated if some threshold of pre-defined parties provide attestations to a valid state that is different than the state in the proposal. This places a trust assumption on the honesty of at least a threshold number of the pre-defined participants. -* [Specifications](https://specs.optimism.io/protocol/withdrawals.html?utm_source=op-docs&utm_medium=docs) (called [withdrawal transactions](/app-developers/guides/bridging/messaging)) +* [Specifications](https://specs.optimism.io/protocol/withdrawals.html?utm_source=op-docs&utm_medium=docs) (called [withdrawal transactions](/app-developers/bridging/messaging)) * [Source code](https://github.com/ethereum-optimism/optimism/tree/v1.1.4/packages/contracts-bedrock/src) #### Fault Proof Optimistic Settlement diff --git a/pages/stack/differences.mdx b/pages/stack/differences.mdx index f21f8882c..e6dcc95cf 100644 --- a/pages/stack/differences.mdx +++ b/pages/stack/differences.mdx @@ -30,11 +30,11 @@ However, there are some minor differences between the behavior of Ethereum and O ### Bridging - Deposit Transactions -Deposit transactions don't exist on L1s, and are how transactions on an L2 can be initiated from the L1. Importantly, this is how bridge applications can get L1 ETH or tokens into an L2 OP Stack chain. You can read more on deposit transactions [here](/concepts/transactions/deposits). +Deposit transactions don't exist on L1s, and are how transactions on an L2 can be initiated from the L1. Importantly, this is how bridge applications can get L1 ETH or tokens into an L2 OP Stack chain. You can read more on deposit transactions [here](/stack/transactions/deposit-flow). ### Bridging - Withdrawal Transactions and Fault Proofs -Withdrawal transactions are how the state of the L2 rollup can be proven to the L1. Often this involves users withdrawing tokens or ETH to the L1. Fault proofs are the mechanism by which withdrawal transactions are currently proven to the L1. You can read more about fault proofs [here](/concepts/architecture/fault-proofs/explainer). +Withdrawal transactions are how the state of the L2 rollup can be proven to the L1. Often this involves users withdrawing tokens or ETH to the L1. Fault proofs are the mechanism by which withdrawal transactions are currently proven to the L1. You can read more about fault proofs [here](/stack/fault-proofs/explainer). ## Opcodes @@ -78,7 +78,7 @@ In all other cases, the transaction sender address is set according to the same ### Transaction fees Transactions on OP Stack chains must pay for an [L1 data fee](/stack/transactions/fees#the-l1-data-fee) on top of the standard [execution gas fee](/stack/transactions/fees#execution-gas-fee) you would expect on Ethereum. -Refer to the guide on [OP Stack Transaction Fees](/concepts/transactions/fees) for more information. +Refer to the guide on [OP Stack Transaction Fees](/stack/transactions/fees) for more information. You can use the [JS library viem](https://viem.sh/op-stack) to estimate the entire transaction gas costs, including the L1 Data Fee. diff --git a/pages/stack/fact-sheet.mdx b/pages/stack/fact-sheet.mdx index b06e37049..79b367bfa 100644 --- a/pages/stack/fact-sheet.mdx +++ b/pages/stack/fact-sheet.mdx @@ -19,7 +19,7 @@ is_imported_content: 'false' Get an overview of the capabilities associated with an OP Stack chain. -While the OP Stack allows for full customization, chains in the Superchain adhere to a [standard set of technical and governance parameters](/governance/blockspace-charter), facilitating Superchain interoperability, network security, and ease of upgrading your chain. +While the OP Stack allows for full customization, chains in the Superchain adhere to a [standard set of technical and governance parameters](/superchain/blockspace-charter), facilitating Superchain interoperability, network security, and ease of upgrading your chain. # Technical stack diff --git a/pages/stack/fault-proofs.mdx b/pages/stack/fault-proofs.mdx index 23338a364..420d72704 100644 --- a/pages/stack/fault-proofs.mdx +++ b/pages/stack/fault-proofs.mdx @@ -25,15 +25,15 @@ import { Card, Cards } from 'nextra/components' Documentation covering Cannon, Challenger, Explainer, Fp Components, Fp Security, Mips in the Fault Proofs section of the OP Stack ecosystem. - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> diff --git a/pages/stack/fault-proofs/cannon.mdx b/pages/stack/fault-proofs/cannon.mdx index e7407d12e..6bf8878b1 100644 --- a/pages/stack/fault-proofs/cannon.mdx +++ b/pages/stack/fault-proofs/cannon.mdx @@ -47,7 +47,7 @@ single L2 block state transition that they disagree on. ### OP-Challenger \<> Cannon -Once an active fault dispute game reaches a depth below attacking / defending L2 block state transitions, [OP-Challenger](/concepts/architecture/fault-proofs/op-challenger) will run +Once an active fault dispute game reaches a depth below attacking / defending L2 block state transitions, [OP-Challenger](/stack/fault-proofs/challenger) will run Cannon to begin processing MIPS instructions within the FPVM. As part of processing MIPS instructions, Cannon will generate state witness hashes, which are the commitment to the results of the MIPS instructions' computation within the FPVM. Now, in the bisection game, OP-Challenger will provide the generated hashes until a single MIPS instruction is identified as the root disagreement between participants in the active dispute. Cannon will then diff --git a/pages/stack/fault-proofs/challenger.mdx b/pages/stack/fault-proofs/challenger.mdx index 6cd200ed1..c9088135c 100644 --- a/pages/stack/fault-proofs/challenger.mdx +++ b/pages/stack/fault-proofs/challenger.mdx @@ -26,7 +26,7 @@ import Image from 'next/image' # OP-Challenger explainer -The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/concepts/architecture/fault-proofs/cannon)). +The `op-challenger` operates as the *honest actor* in the fault dispute system and defends the chain by securing the `OptimismPortal` and ensuring the game always resolves to the correct state of the chain. For verifying the legitimacy of claims, `op-challenger` relies on a synced, trusted rollup node as well as a trace provider (e.g., [Cannon](/stack/fault-proofs/cannon)). Specifically, `op-challenger` performs the following actions: @@ -101,7 +101,7 @@ The `FaultDisputeGame` does not put a time cap on resolution - because of the li ## Next steps -* Ready to get started? Read our guide on how to [configure `op-challenger` on your OP Stack chain](/chain-operators/tools/op-challenger). +* Ready to get started? Read our guide on how to [configure `op-challenger` on your OP Stack chain](/operators/chain-operators/deploy/op-challenger). * For more info about how `op-challenger` works under the hood, [check out the specs](https://specs.optimism.io/fault-proof/stage-one/honest-challenger-fdg.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/fault-proofs/explainer.mdx b/pages/stack/fault-proofs/explainer.mdx index 928f9bc44..19960474e 100644 --- a/pages/stack/fault-proofs/explainer.mdx +++ b/pages/stack/fault-proofs/explainer.mdx @@ -53,16 +53,16 @@ See the permissionless fault proofs diagram below for more details: ## Permissionless challenges Because anyone can submit a proposal, it's important that invalid proposals can be challenged. -In [Optimistic Rollups like OP Stack Chains](/concepts/architecture/rollup/overview) there is a \~1 week challenge period during which users can challenge a proposal if they believe it to be incorrect. +In [Optimistic Rollups like OP Stack Chains](/stack/rollup/overview) there is a \~1 week challenge period during which users can challenge a proposal if they believe it to be incorrect. With the Fault Proofs upgrade to the OP Stack, challenges become permissionless and can be submitted by anyone. Any user can run a node for the OP Stack chain in question and use the `op-challenger` tool to participate in the dispute process. ## Modular design and multi-layer security -The OP Stack Fault Proof System is [modular in design](/stack/fault-proofs/fp-components#system-design--modularity) and lays the groundwork for achieving a "multi-proof" system. This allows the OP Stack to support multiple proof systems alongside the initial [Cannon](/concepts/architecture/fault-proofs/cannon) proof system. +The OP Stack Fault Proof System is [modular in design](/stack/fault-proofs/fp-components#system-design--modularity) and lays the groundwork for achieving a "multi-proof" system. This allows the OP Stack to support multiple proof systems alongside the initial [Cannon](/stack/fault-proofs/cannon) proof system. With multiple proof systems in place, the OP Stack can be more resilient to potential attacks and bugs in any one proof system. -Additionally, the following [security safeguards](/concepts/security/fault-proofs) have been built around the game, as follows: +Additionally, the following [security safeguards](/stack/fault-proofs/fp-security) have been built around the game, as follows: * An off chain monitoring system has been set up to monitor all proposed roots and ensure they align with the correct state. See [`op-dispute-mon`](https://github.com/ethereum-optimism/optimism/blob/develop/op-dispute-mon/README.md?plain=1) for more details. * After a root is finalized through a game, an additional delay called the "airgap window" has been added before withdrawals can occur. During this period, the `GUARDIAN` role can reject the root. @@ -71,7 +71,7 @@ Additionally, the following [security safeguards](/concepts/security/fault-proof ## Next steps * Ready to get started? Review the [FP Components](fp-components) to learn how the different components work together to enhance decentralization in the Optimism ecosystem. -* See the [Fault Proof Mainnet Security](/concepts/security/fault-proofs) to understand changes to `OptimismPortal` and `FaultDisputeGame` contracts. +* See the [Fault Proof Mainnet Security](/stack/fault-proofs/fp-security) to understand changes to `OptimismPortal` and `FaultDisputeGame` contracts. * For more info about how the FP system works under the hood, [check out the specs](https://specs.optimism.io/fault-proof/index.html?utm_source=op-docs&utm_medium=docs). ## FAQs diff --git a/pages/stack/features/send-raw-transaction-conditional.mdx b/pages/stack/features/send-raw-transaction-conditional.mdx index 4dec2187c..e07487c90 100644 --- a/pages/stack/features/send-raw-transaction-conditional.mdx +++ b/pages/stack/features/send-raw-transaction-conditional.mdx @@ -74,5 +74,5 @@ This feature can be enabled with the addition of a flag to op-geth. * `--rollup.sequencertxconditionalcostratelimit` (default: 5000) an integer flag that sets the rate limit for cost observable per second. - It is not advised to publicly expose this sequencer endpoint due to DoS concerns. This supplemental proxy, [op-txproxy](/chain-operators/tools/op-txproxy), should be used to apply additional constraints on this endpoint prior to passing through to the sequencer. + It is not advised to publicly expose this sequencer endpoint due to DoS concerns. This supplemental proxy, [op-txproxy](/operators/chain-operators/tools/op-txproxy), should be used to apply additional constraints on this endpoint prior to passing through to the sequencer. diff --git a/pages/stack/getting-started.mdx b/pages/stack/getting-started.mdx index 17068adb2..d9a93dda7 100644 --- a/pages/stack/getting-started.mdx +++ b/pages/stack/getting-started.mdx @@ -30,7 +30,7 @@ import { Callout } from 'nextra/components' The OP Stack consists of the many different software components managed and maintained by the Optimism Collective that, together, form the backbone of Optimism. The OP Stack is built as a public good for the Ethereum and Optimism ecosystems. -To understand how to operate an OP Stack chain, including roll-up and chain deployment basics, visit [Chain Operator guide](/operators/chain-operators/self-hosted). Check out these guides to get an overview of everything you need to know to properly support OP mainnet within your [exchange](/app-developers/quickstarts/first-app) and [wallet](/app-developers/quickstarts/first-app). +To understand how to operate an OP Stack chain, including roll-up and chain deployment basics, visit [Chain Operator guide](/operators/chain-operators/self-hosted). Check out these guides to get an overview of everything you need to know to properly support OP mainnet within your [exchange](/app-developers/get-started) and [wallet](/app-developers/get-started). ## The OP Stack powers Optimism @@ -79,7 +79,7 @@ At the end of the day, the OP Stack becomes what Optimism needs. Ready to dive into the world of the OP Stack? -* If you're interested in understanding the OP Stack in more depth, start with the [Design Principles](/concepts/stack/design-principles). +* If you're interested in understanding the OP Stack in more depth, start with the [Design Principles](/stack/design-principles). * If you're excited to join the Superchain, launch your first [Superchain-ready L2](/operators/chain-operators/self-hosted) or dive directly into the OP Stack codebase to learn more. The OP Stack is the next frontier for Ethereum. You're already here, so what are you waiting for? diff --git a/pages/stack/opcm.mdx b/pages/stack/opcm.mdx index 17dade500..4d9734315 100644 --- a/pages/stack/opcm.mdx +++ b/pages/stack/opcm.mdx @@ -24,7 +24,7 @@ import { Callout, Tabs, Steps } from 'nextra/components' The OP Contracts Manager is a contract that deploys the L1 contracts for an OP Stack chain in a single transaction. It provides a minimal set of user-configurable parameters to ensure that the resulting chain meets the standard configuration requirements. Additionally, as of [Upgrade 13](https://gov.optimism.io/t/upgrade-proposal-13-opcm-and-incident-response-improvements/9739), instances of OPCM can upgrade existing OP Stack chains. -The version deployed is always a governance-approved contract release. The set of governance approved contract releases can be found on the Optimism Monorepo releases page, and is the set of releases named `op-contracts/vX.Y.Z`. It deploys the [Fault Proof System](/concepts/architecture/fault-proofs/explainer), using the [PermissionedDisputeGame](/stack/smart-contracts/smart-contracts#permissioneddisputegame). +The version deployed is always a governance-approved contract release. The set of governance approved contract releases can be found on the Optimism Monorepo releases page, and is the set of releases named `op-contracts/vX.Y.Z`. It deploys the [Fault Proof System](/stack/fault-proofs/explainer), using the [PermissionedDisputeGame](/stack/smart-contracts/smart-contracts#permissioneddisputegame). ## Purpose diff --git a/pages/stack/research/block-time-research.mdx b/pages/stack/research/block-time-research.mdx index c8259e774..85de6b079 100644 --- a/pages/stack/research/block-time-research.mdx +++ b/pages/stack/research/block-time-research.mdx @@ -73,7 +73,7 @@ As a result, we can learn that nodes can build the latest blocks of Base Mainnet ### Verifier -* Sync from genesis: If OP Chains' block time drops to one second, verifiers may need longer to sync the chain from the genesis with L1 derivation. However, we expect it won't be a notable issue for verifiers as OP Stack supports the [engine sync](/node-operators/guides/management/snap-sync). +* Sync from genesis: If OP Chains' block time drops to one second, verifiers may need longer to sync the chain from the genesis with L1 derivation. However, we expect it won't be a notable issue for verifiers as OP Stack supports the [engine sync](/operators/node-operators/management/snap-sync). * Following the tip: The research suggests that verifiers are less likely to have a problem following the tip because nodes could build a block under one second at the highest gas range, especially since most verifiers are full nodes. ### Sequencer diff --git a/pages/stack/rollup.mdx b/pages/stack/rollup.mdx index 0aede4a38..8052236f2 100644 --- a/pages/stack/rollup.mdx +++ b/pages/stack/rollup.mdx @@ -26,9 +26,9 @@ import { Card, Cards } from 'nextra/components' The big idea that makes Optimism possible is the Optimistic Rollup. We'll go through a brief explainer of *how* Optimistic Rollups work at a high l... - + - + - + diff --git a/pages/stack/rollup/overview.mdx b/pages/stack/rollup/overview.mdx index 87f156f54..82f74f330 100644 --- a/pages/stack/rollup/overview.mdx +++ b/pages/stack/rollup/overview.mdx @@ -35,11 +35,11 @@ Specifically, Optimistic Rollups leverage the consensus mechanism (like PoW or P ## Block storage In Bedrock, L2 blocks are saved to the Ethereum blockchain using a non-contract address ([`0xff00..0010` on Ethereum](https://etherscan.io/address/0xff00000000000000000000000000000000000010)) to minimize the L1 gas expense. -As these blocks are submitted as transactions using EIP-4844 [blobs](/chain-operators/guides/management/blobs), there is no way to modify or censor them after the "transaction" is included in a block that has enough attestations. +As these blocks are submitted as transactions using EIP-4844 [blobs](/operators/chain-operators/management/blobs), there is no way to modify or censor them after the "transaction" is included in a block that has enough attestations. This is the way that OP Mainnet inherits the availability and integrity guarantees of Ethereum. Blocks are written to L1 in [a compressed format](https://specs.optimism.io/protocol/derivation.html?utm_source=op-docs&utm_medium=docs#batch-submission-wire-format) to reduce costs. -This is important because writing to L1 is [the major cost of OP Mainnet transactions](/concepts/transactions/fees). +This is important because writing to L1 is [the major cost of OP Mainnet transactions](/stack/transactions/fees). ## Block production @@ -85,7 +85,7 @@ This makes it possible to transfer ETH or tokens, including ERC20 tokens, betwee The exact mechanism by which this communication occurs differs depending on the direction in which messages are being sent. OP Mainnet uses this functionality in the Standard bridge to allow users to deposit tokens from Ethereum to OP Mainnet and also to allow withdrawals of the same tokens from OP Mainnet back to Ethereum. -See the [developer documentation and examples](/app-developers/guides/bridging/standard-bridge) for details on the inner workings of the Standard bridge. +See the [developer documentation and examples](/app-developers/bridging/standard-bridge) for details on the inner workings of the Standard bridge. ### Moving from Ethereum to OP Mainnet @@ -124,5 +124,5 @@ The ordering of transactions and the state of OP Mainnet is unchanged by a fault ## Next steps -* If you want to learn more about rollup protocol, check out the guides on [deposit flow](/concepts/transactions/deposits), [withdrawal flow](/concepts/transactions/withdrawals), or [transaction flow](/concepts/transactions/flow). -* To learn about operating your own L2 rollup, see the guide on [starting a self-hosted chain](/operators/chain-operators/self-hosted) or go directly to the tutorial on [creating your own L2 rollup](/chain-operators/tutorials/create-rollup). +* If you want to learn more about rollup protocol, check out the guides on [deposit flow](/stack/transactions/deposit-flow), [withdrawal flow](/stack/transactions/withdrawal-flow), or [transaction flow](/stack/transactions/transaction-flow). +* To learn about operating your own L2 rollup, see the guide on [starting a self-hosted chain](/operators/chain-operators/self-hosted) or go directly to the tutorial on [creating your own L2 rollup](/operators/chain-operators/tutorials/create-l2-rollup). diff --git a/pages/stack/security.mdx b/pages/stack/security.mdx index 27db386ee..9b4aef542 100644 --- a/pages/stack/security.mdx +++ b/pages/stack/security.mdx @@ -25,9 +25,9 @@ import { Card, Cards } from 'nextra/components' Documentation covering Faq, Pause in the Security section of the OP Stack ecosystem. - + - + diff --git a/pages/stack/security/faq-sec-model.mdx b/pages/stack/security/faq-sec-model.mdx index ccca39b24..e7370de22 100644 --- a/pages/stack/security/faq-sec-model.mdx +++ b/pages/stack/security/faq-sec-model.mdx @@ -53,7 +53,7 @@ Withdrawals are proven against proposals about the state of the chain that are p Proposals can be submitted to the `DisputeGameFactory` contract by any user and submissions do not require any special permissions. Each submitted proposal creates a [`FaultDisputeGame`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol) contract that allows any other user to challenge the validity of a proposal by participating in a "fault proof" process. -A more detailed explanation of the fault proof game can be found in the [Fault Proofs Explainer](/concepts/architecture/fault-proofs/explainer). +A more detailed explanation of the fault proof game can be found in the [Fault Proofs Explainer](/stack/fault-proofs/explainer). Although the fault proof game is permissionless, the Optimism Security Council acting as the [Guardian](/superchain/privileged-roles#guardian) role provides a backstop in case of a failure in the fault proof game. diff --git a/pages/stack/security/faq.mdx b/pages/stack/security/faq.mdx index 1102a8288..a3af376f9 100644 --- a/pages/stack/security/faq.mdx +++ b/pages/stack/security/faq.mdx @@ -47,7 +47,7 @@ As with anything, modify the OP Stack at your own risk. There is no guarantee th ### Can I use fault proofs? -**Yes!** On June 10, 2024, Fault Proofs were officially added to the OP Stack and were activated on OP Mainnet. Please refer to the [documentation on fault proofs](/concepts/architecture/fault-proofs/explainer) for more information. +**Yes!** On June 10, 2024, Fault Proofs were officially added to the OP Stack and were activated on OP Mainnet. Please refer to the [documentation on fault proofs](/stack/fault-proofs/explainer) for more information. Fault proofs are a key milestone and top priority for the OP Stack. In the meantime, the OP Stack can be shipped with several other excellent security options for systems that want to improve security before fault proofs are available in production. @@ -55,7 +55,7 @@ Fault proofs are a key milestone and top priority for the OP Stack. In the meant One of the easiest ways to help secure the OP Stack is to look for bugs and vulnerabilities. [OP Mainnet, a user of the OP Stack, has one of the biggest bug bounties (ever)](https://immunefi.com/bounty/optimism/). You can earn up to $2,000,042 by finding critical bugs in the OP Mainnet codebase (and by extension the OP Stack). -Don't forget that the OP Stack is a decentralized development stack. Anyone can start to contribute to the OP Stack by building software that follows [the stack's design principles](/concepts/stack/design-principles). You can always help make the OP Stack more secure by building components, like alternative client or proof implementations, that users of the OP Stack can take advantage of. +Don't forget that the OP Stack is a decentralized development stack. Anyone can start to contribute to the OP Stack by building software that follows [the stack's design principles](/stack/design-principles). You can always help make the OP Stack more secure by building components, like alternative client or proof implementations, that users of the OP Stack can take advantage of. ### Where do I report bugs? diff --git a/pages/stack/security/pause.mdx b/pages/stack/security/pause.mdx index 0f60a999d..0680b7e32 100644 --- a/pages/stack/security/pause.mdx +++ b/pages/stack/security/pause.mdx @@ -55,4 +55,4 @@ To change the `GUARDIAN` address, the `SuperchainConfig` proxy contract must be While this functionality is available for the OP Stack protocol, it does not cover the security of centralized exchanges and third party bridges. If you operate a centralized exchange or third party bridge, you should monitor this contract and pause withdrawals from the Superchain if you see that it has been paused. -If you'd like to learn more about the privileged roles in the OP Stack, see the [privileged roles](/chain-operators/reference/privileged-roles) documentation. +If you'd like to learn more about the privileged roles in the OP Stack, see the [privileged roles](/superchain/privileged-roles) documentation. diff --git a/pages/stack/smart-contracts/op-deployer-upgrade.mdx b/pages/stack/smart-contracts/op-deployer-upgrade.mdx index 68c373096..10184f4d0 100644 --- a/pages/stack/smart-contracts/op-deployer-upgrade.mdx +++ b/pages/stack/smart-contracts/op-deployer-upgrade.mdx @@ -18,7 +18,7 @@ import { Steps } from 'nextra/components' # Upgrade L1 contracts using op-deployer -[`op-deployer`](/chain-operators/tools/op-deployer) simplifies the process of deploying and upgrading the OP Stack. Using the `upgrade` command, you can upgrade a chain from one version to the next. +[`op-deployer`](/operators/chain-operators/tools/op-deployer) simplifies the process of deploying and upgrading the OP Stack. Using the `upgrade` command, you can upgrade a chain from one version to the next. It consists of several subcommands, one for each upgrade version. Think of it like a database migration: each upgrade command upgrades a chain from exactly one previous version to the next. A chain that is several versions behind can be upgraded to the latest version by running multiple upgrade commands in sequence. diff --git a/pages/stack/smart-contracts/smart-contracts.mdx b/pages/stack/smart-contracts/smart-contracts.mdx index 1b6bbb233..5355cea71 100644 --- a/pages/stack/smart-contracts/smart-contracts.mdx +++ b/pages/stack/smart-contracts/smart-contracts.mdx @@ -24,7 +24,7 @@ import { Callout } from 'nextra/components' # Overview -This guide provides an overview of the functionality of the smart contract components. You can also find [contract addresses](/reference/addresses) on OP Mainnet. +This guide provides an overview of the functionality of the smart contract components. You can also find [contract addresses](/superchain/addresses) on OP Mainnet. ## Layer 1 contracts diff --git a/pages/stack/transactions.mdx b/pages/stack/transactions.mdx index 9994dfd8c..73b491f20 100644 --- a/pages/stack/transactions.mdx +++ b/pages/stack/transactions.mdx @@ -29,19 +29,19 @@ Documentation covering Cross Domain, Deposit Flow, Fees, Forced Transaction, Tra - + - + - + - + - + - + - + diff --git a/pages/stack/transactions/fees.mdx b/pages/stack/transactions/fees.mdx index 89d16456b..aa867a7fd 100644 --- a/pages/stack/transactions/fees.mdx +++ b/pages/stack/transactions/fees.mdx @@ -128,7 +128,7 @@ the L1 Data Fee are generally quite small and should not impact the average tran The L1 Data Fee formula changed with the Ecotone upgrade. - Refer to the [Network upgrade overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + Refer to the [Network upgrade overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. Prior to the Ecotone upgrade, the L1 Data Fee is calculated based on the following parameters: @@ -162,7 +162,7 @@ l1_data_fee = tx_total_gas * ethereum_base_fee The L1 Data Fee formula changed with the Ecotone upgrade. - Refer to the [Network Upgrade Overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + Refer to the [Network Upgrade Overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. The pricing function changes with Ecotone upgrade because of the introduction of the option to @@ -203,13 +203,13 @@ Recall that base\_fee\_scalar is set to dynamic\_overhead and blob\_base\_fee\_s following the upgrade. Because the old overhead parameter becomes ignored, new L1 data prices will be (slightly, since overhead is typically very small) lower than before the fork. Chain operators will likely want to retune the parameters appropriately after the fork, particularly if -they plan on [enabling blobs](/chain-operators/guides/management/blobs). +they plan on [enabling blobs](/operators/chain-operators/management/blobs). Chain operators can use the [Ecotone fee parameter calculator](https://docs.google.com/spreadsheets/d/12VIiXHaVECG2RUunDSVJpn67IQp9NHFJqUsma2PndpE/edit#gid=186414307) to get a better estimate of scalar values to use for your chain. #### Fjord - The L1 Data Fee formula changed with the Fjord upgrade. Refer to the [Network Upgrade Overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. + The L1 Data Fee formula changed with the Fjord upgrade. Refer to the [Network Upgrade Overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps for OP Sepolia and OP Mainnet. The pricing function changes with the Fjord upgrade because of the FastLZ compression estimator, which more accurately charges for L1 data usage on a per-transaction basis. @@ -244,7 +244,7 @@ The new cost function takes into account the compression ratio, so chain operato The Operator fee is introduced with the [Isthmus upgrade](/notices/upgrade-14#operator-fee) and provides OP Stack chains with more flexible pricing models. - Refer to the [Network upgrade overview](/concepts/stack/network-upgrades) for network upgrade activation timestamps. + Refer to the [Network upgrade overview](/operators/node-operators/network-upgrades) for network upgrade activation timestamps. The Operator fee is a new fee component introduced with the Isthmus upgrade that enables more customizable fee structures for OP Stack chains. This fee is integrated directly into the EVM alongside the standard gas fee and L1 data fee, allowing chain operators to implement additional revenue models or cover specific operational costs. @@ -315,5 +315,5 @@ This system ensures effective fee management, maintaining the security and opera ## Next steps -* Read the [differences between Ethereum and OP Stack Chains](/concepts/stack/differences) guide. +* Read the [differences between Ethereum and OP Stack Chains](/stack/differences) guide. * Read the [L2 to L1 Transactions](/app-developers/bridging/messaging#for-l1-to-l2-transactions) guide. diff --git a/pages/stack/transactions/transaction-finality.mdx b/pages/stack/transactions/transaction-finality.mdx index 653c14d6e..a82785f4c 100644 --- a/pages/stack/transactions/transaction-finality.mdx +++ b/pages/stack/transactions/transaction-finality.mdx @@ -77,7 +77,7 @@ This misconception often arises due to the OP Stack's Standard Bridge, which inc Another misconception related to the belief that [finalization takes 7 days](#misconception-transactions-take-7-days-to-finalize) is that **Fault Proof challenges** created in response to withdrawals in the Standard Bridge can reorganize the OP Stack chain. **This is incorrect.** OP Stack transactions are not reorganized in response to Fault Proof challenges. -The [Standard Bridge](/app-developers/guides/bridging/standard-bridge) is a bridge application that is included by default with any OP Stack chain and connects the chain to its "parent" blockchain (usually Ethereum). It offers a high level of security for ETH and ERC-20 tokens moved through the bridge. +The [Standard Bridge](/app-developers/bridging/standard-bridge) is a bridge application that is included by default with any OP Stack chain and connects the chain to its "parent" blockchain (usually Ethereum). It offers a high level of security for ETH and ERC-20 tokens moved through the bridge. When using the Standard Bridge, users who send ETH or ERC-20 tokens to Ethereum must first burn those tokens on the OP Stack chain and then create a **withdrawal claim** on Ethereum. diff --git a/pages/stack/transactions/withdrawal-flow.mdx b/pages/stack/transactions/withdrawal-flow.mdx index ef18e990b..162f1cb52 100644 --- a/pages/stack/transactions/withdrawal-flow.mdx +++ b/pages/stack/transactions/withdrawal-flow.mdx @@ -33,7 +33,7 @@ Withdrawals require the user to submit three transactions: 3. **Withdrawal finalizing transaction**, which the user submits on L1 after the fault challenge period has passed, to actually run the transaction on L1. - You can see an example of how to implement this process [in the bridging tutorials](/app-developers/tutorials/bridging/cross-domain-erc20). + You can see an example of how to implement this process [in the bridging tutorials](/app-developers/tutorials/bridging/cross-dom-bridge-erc20). ## Withdrawal initiating transaction diff --git a/pages/superchain/blockspace-charter.mdx b/pages/superchain/blockspace-charter.mdx index 68530d5f7..8a75ae8d7 100644 --- a/pages/superchain/blockspace-charter.mdx +++ b/pages/superchain/blockspace-charter.mdx @@ -22,7 +22,7 @@ Blockspace Charters provide the essential technical and governance framework for These documents establish standards to ensure security, transparency, and long-term sustainability. This guide offers an overview of each charter, explains how chains can achieve compliance to be considered Standard Chains, and how the charters tie into the Superchain Registry. -This doc mostly covers the charters, but references the Superchain Registry as they are all deeply connected. Read more about the Superchain Registry [here](/chain-operators/reference/superchain-registry). +This doc mostly covers the charters, but references the Superchain Registry as they are all deeply connected. Read more about the Superchain Registry [here](/superchain/superchain-registry). ## Summary of charters @@ -120,4 +120,4 @@ The Superchain Registry serves as the source of truth for who's in the Superchai * **Validates version and configuration:** The registry validates that chains align with governance-approved standards in the form of the Standard Rollup Charter. * **Indicates adherence to the Standard Rollup Charter:** Once the registry validates that a chain meets the standard criteria, it promotes it to "Standard" by setting its `superchain_level` value to `2`. -By integrating with the Standard Rollup Charter, the registry offers an automated and transparent validation system. This ensures chains can independently demonstrate compliance. For additional details, refer to the [Superchain Registry documentation](/chain-operators/reference/superchain-registry). +By integrating with the Standard Rollup Charter, the registry offers an automated and transparent validation system. This ensures chains can independently demonstrate compliance. For additional details, refer to the [Superchain Registry documentation](/superchain/superchain-registry). diff --git a/pages/superchain/networks.mdx b/pages/superchain/networks.mdx index 1bc93cf57..97647a700 100644 --- a/pages/superchain/networks.mdx +++ b/pages/superchain/networks.mdx @@ -23,7 +23,7 @@ This reference guide provides a listing of the different OP Stack networks and p The public RPC URLs provided below are rate limited and do not support websocket connections. - If you are experiencing rate limiting issues or need websocket functionality, consider [running your own node](/node-operators/reference/architecture/rollup-node) or signing up for a [third-party RPC provider](/app-developers/reference/rpc). + If you are experiencing rate limiting issues or need websocket functionality, consider [running your own node](/operators/node-operators/rollup-node) or signing up for a [third-party RPC provider](/app-developers/tools/connect/rpc-providers). ## OP Mainnet diff --git a/pages/superchain/privileged-roles.mdx b/pages/superchain/privileged-roles.mdx index cb69312c2..d06a96be0 100644 --- a/pages/superchain/privileged-roles.mdx +++ b/pages/superchain/privileged-roles.mdx @@ -91,7 +91,7 @@ The System Config Owner is an address that can be used to change the values with ### Addresses -The System Config owner is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). +The System Config owner is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). ## Batcher @@ -112,7 +112,7 @@ OP Stack chains nodes will look for transactions from this address to find new b ### Addresses -The batcher address is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). +The batcher address is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). ## Proposer @@ -140,13 +140,13 @@ The Guardian role is responsible for changing the respected dispute game type if ### Addresses -The proposer address is chain specific and you can see which addresses are configured in the [Superchain Registry](/chain-operators/reference/superchain-registry). +The proposer address is chain specific and you can see which addresses are configured in the [Superchain Registry](/superchain/superchain-registry). ## Challenger ### Description -The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role. It is important to note that this is different from the [`op-challenger`](/concepts/architecture/fault-proofs/op-challenger) services that challenges invalid output roots. +The Challenger is an address that can participate in and challenge `PermissionedDisputeGame` instances created by the [Proposer](#proposer) role. It is important to note that this is different from the [`op-challenger`](/stack/fault-proofs/challenger) services that challenges invalid output roots. ### Capabilities diff --git a/pages/superchain/standard-configuration.mdx b/pages/superchain/standard-configuration.mdx index 37de854ed..e169ae770 100644 --- a/pages/superchain/standard-configuration.mdx +++ b/pages/superchain/standard-configuration.mdx @@ -23,7 +23,7 @@ import { Callout } from 'nextra/components' The standard configuration within the OP Stack ensures that chains deployed in the Superchain ecosystem adhere to a consistent set of technical and governance parameters. This standardization is critical for Superchain interoperability, network security, and ease of upgrading your chain. -This guide provides an in-depth explanation of what defines a standard configuration, how the [op-deployer](/chain-operators/tools/op-deployer) aids standardization, and why adhering to these standards is essential. +This guide provides an in-depth explanation of what defines a standard configuration, how the [op-deployer](/operators/chain-operators/tools/op-deployer) aids standardization, and why adhering to these standards is essential. ## What is a Standard chain? @@ -45,7 +45,7 @@ Chains that deviate from these principles, such as introducing unsupported featu ## Role of op-deployer in standardization -The [op-deployer](/chain-operators/tools/op-deployer) is a powerful tool designed to automate and streamline the deployment of standard configuration-compliant chains. +The [op-deployer](/operators/chain-operators/tools/op-deployer) is a powerful tool designed to automate and streamline the deployment of standard configuration-compliant chains. Key features include: * **Default values:** @@ -89,11 +89,11 @@ Certain configurations are explicitly not part of the standard setup. For exampl * **Modified system contracts:** Any alterations to core system contracts break standardization and aren't supported in the official OP Stack specification. -For a detailed list of standard configurations, refer to the [Standard rollup configuration page](/governance/blockspace-charter). +For a detailed list of standard configurations, refer to the [Standard rollup configuration page](/superchain/blockspace-charter). ## Superchain Registry -The [Superchain Registry](/chain-operators/reference/superchain-registry) is the authoritative index of all chains within the Superchain ecosystem. It ensures: +The [Superchain Registry](/superchain/superchain-registry) is the authoritative index of all chains within the Superchain ecosystem. It ensures: * **Transparency:** All registered chains are publicly listed with their configurations. @@ -110,10 +110,10 @@ The [Superchain Registry](/chain-operators/reference/superchain-registry) is the Familiarize yourself with the [OP Stack specifications](https://specs.optimism.io/protocol/configurability.html?utm_source=op-docs&utm_medium=docs) and the Blockspace Charter. 2. **Use op-deployer:** - Leverage [op-deployer](/chain-operators/tools/op-deployer) to ensure your chain aligns with standard configurations. + Leverage [op-deployer](/operators/chain-operators/tools/op-deployer) to ensure your chain aligns with standard configurations. 3. **Verify deployment with op-validator:** - Use [op-validator](/chain-operators/tools/op-validator) to verify your chain's deployment. + Use [op-validator](/operators/chain-operators/tools/op-validator) to verify your chain's deployment. 4. **Seek guidance:** Consult the [developer support](https://github.com/ethereum-optimism/developers/discussions) team for clarifications on standardization. @@ -124,5 +124,5 @@ The [Superchain Registry](/chain-operators/reference/superchain-registry) is the ## References * [OP Stack Specifications](https://specs.optimism.io/protocol/configurability.html?utm_source=op-docs&utm_medium=docs) -* [Blockspace Charter](/governance/blockspace-charter) +* [Blockspace Charter](/superchain/blockspace-charter) * [Superchain Registry](https://github.com/ethereum-optimism/superchain-registry) diff --git a/pages/superchain/superchain-registry.mdx b/pages/superchain/superchain-registry.mdx index 5f8b1ee29..ce1df41f8 100644 --- a/pages/superchain/superchain-registry.mdx +++ b/pages/superchain/superchain-registry.mdx @@ -32,10 +32,10 @@ An OP Stack Standard Rollup follows the Standard Rollup Charter. This configuration targets the Optimism Collective's highest bar for security, uptime, and decentralization. -You can find more details in the [Standard Rollup Charter documentation](/governance/blockspace-charter). +You can find more details in the [Standard Rollup Charter documentation](/superchain/blockspace-charter). - We **strongly** recommend using the [op-deployer](/chain-operators/tools/op-deployer) to deploy L1 contracts and generate the L2 genesis file that meets the configuration requirements outlined in the [Standard Rollup Charter](/governance/blockspace-charter). + We **strongly** recommend using the [op-deployer](/operators/chain-operators/tools/op-deployer) to deploy L1 contracts and generate the L2 genesis file that meets the configuration requirements outlined in the [Standard Rollup Charter](/superchain/blockspace-charter). ## Joining the Registry diff --git a/public/_redirects b/public/_redirects index b5d9120b4..252eb6d7b 100644 --- a/public/_redirects +++ b/public/_redirects @@ -210,208 +210,3 @@ # Catch any remaining /builders and /chain paths /builders/* /app-developers/:splat /chain/* /superchain/:splat - - -# ---------------------------------------------------------------------------- -# Content Migration Redirects -# ---------------------------------------------------------------------------- - -/stack/transactions/cross-domain /concepts/bridging/cross-domain -/get-started/superchain /app-developers/guides/superchain -/app-developers/get-started /app-developers/quickstarts/first-app -/interop/starter-kit /app-developers/quickstarts/interop-app -/operators/node-operators/architecture /node-operators/reference/architecture/overview -/superchain/addresses /reference/addresses -/app-developers/tools/connect/networks /app-developers/reference/networks -/operators/chain-operators/configuration/rollup /chain-operators/guides/configuration/rollup -/operators/chain-operators/tutorials/create-l2-rollup /chain-operators/tutorials/create-rollup -/operators/chain-operators/tools/chain-monitoring /chain-operators/tools/monitoring -/operators/chain-operators/tools/op-deployer /chain-operators/tools/op-deployer -/operators/node-operators/configuration/consensus-config /node-operators/guides/configuration/consensus -/operators/node-operators/configuration/execution-config /node-operators/guides/configuration/execution -/operators/node-operators/management/blobs /chain-operators/guides/management/blobs -/operators/node-operators/management/snap-sync /node-operators/guides/management/snap-sync -/operators/node-operators/management/metrics /node-operators/guides/monitoring/metrics -/operators/node-operators/management/troubleshooting /node-operators/guides/troubleshooting -/operators/node-operators/json-rpc /node-operators/reference/rpc -/stack/fault-proofs/mips /core-contributors/reference/specs/mips -/stack/transactions/fees /concepts/transactions/fees -/stack/transactions/withdrawal-flow /concepts/transactions/withdrawals -/stack/getting-started /concepts/stack/overview -/connect/resources/glossary /reference/glossary -/operators/node-operators/rollup-node /node-operators/reference/architecture/rollup-node -/app-developers/tools/build/ecosystem-overview /app-developers/tools/ecosystem -/connect/contribute/stack-contribute /core-contributors/getting-started/contribute -/app-developers/starter-kit /app-developers/quickstarts/token-starter-kit -/app-developers/building-apps /app-developers/guides/app-development -/app-developers/transactions/fees /app-developers/guides/transactions/fees -/app-developers/tutorials/bridging/standard-bridge-custom-token /app-developers/tutorials/bridging/custom-token-bridge -/app-developers/tools/build/oracles /app-developers/tools/data/oracles -/app-developers/tools/build/analytics-tools /app-developers/tools/data/analytics -/operators/chain-operators/configuration /chain-operators/guides/configuration -/operators/chain-operators/configuration/overview /chain-operators/guides/configuration/overview -/operators/chain-operators/configuration/batcher /chain-operators/guides/configuration/batcher -/operators/chain-operators/configuration/proposer /chain-operators/guides/configuration/proposer -/operators/chain-operators/management/operations /chain-operators/guides/management/operations -/operators/chain-operators/features/preinstalls /chain-operators/reference/features/preinstalls -/operators/chain-operators/deploy/smart-contracts /chain-operators/guides/deployment/contracts -/operators/node-operators/configuration/base-config /node-operators/guides/configuration/base -/operators/node-operators/management/snapshots /node-operators/guides/management/snapshots -/operators/node-operators/network-upgrades /concepts/stack/network-upgrades -/operators/node-operators/releases /node-operators/reference/releases -/stack/smart-contracts /concepts/stack/contracts -/stack/opcm /chain-operators/reference/opcm -/stack/rollup/overview /concepts/architecture/rollup/overview -/stack/transactions/transaction-flow /concepts/transactions/flow -/stack/transactions/deposit-flow /concepts/transactions/deposits -/stack/security/faq /concepts/security/faq -/stack/security/pause /concepts/security/pause-system -/stack/beta-features/alt-da-mode /chain-operators/guides/features/alt-da -/stack/differences /concepts/stack/differences -/notices/sdk-deprecation /notices/archive/sdk-deprecation -/interop/get-started /app-developers/guides/interoperability/getting-started -/interop/explainer /concepts/interoperability/overview -/app-developers/tools/supersim /app-developers/tools/development/supersim -/operators/chain-operators/tools/fee-calculator /chain-operators/tools/fee-calculator -/notices/superchain-withdrawal-pause-test /notices/superchain-withdrawal-pause-test -/notices/upgrade-15 /notices/archive/upgrade-15 -/notices/upgrade-14 /notices/archive/upgrade-14 -/notices/upgrade-13 /notices/archive/upgrade-13 -/notices/blob-fee-bug /notices/archive/blob-fee-bug -/notices/pectra-changes /notices/archive/pectra-changes -/notices/holocene-changes /notices/archive/holocene-changes -/notices/custom-gas-tokens-deprecation /notices/archive/custom-gas-tokens-deprecation -/get-started/op-stack /concepts/stack/op-stack -/get-started/interop /concepts/interoperability/getting-started -/superchain/superchain-registry /chain-operators/reference/superchain-registry -/superchain/superchain-upgrades /chain-operators/concepts/upgrades -/superchain/blockspace-charter /governance/blockspace-charter -/superchain/standard-configuration /chain-operators/reference/standard-configuration -/superchain/tokenlist /app-developers/reference/tokens/tokenlist -/superchain/networks /reference/networks -/superchain/privileged-roles /chain-operators/reference/privileged-roles -/interop/predeploy /app-developers/reference/contracts/interop/predeploys -/interop/message-passing /app-developers/guides/interoperability/message-passing -/interop/reading-logs /app-developers/guides/interoperability/reading-logs -/interop/op-supervisor /chain-operators/reference/components/op-supervisor -/interop/superchain-eth-bridge /concepts/interoperability/superchain-eth -/interop/superchain-erc20 /concepts/interoperability/superchain-erc20 -/interop/compatible-tokens /app-developers/reference/tokens/compatibility -/interop/reorg /concepts/architecture/reorgs -/interop/interop-security /concepts/security/interoperability -/interop/tools /app-developers/tools/interoperability -/interop/tools/devnet /app-developers/tools/testing/devnet -/interop/tools/supersim /app-developers/tools/development/supersim -/interop/tools/rc-alpha /app-developers/tools/development/rc-alpha -/interop/tutorials /app-developers/tutorials/interoperability -/interop/tutorials/message-passing /app-developers/tutorials/interoperability/message-passing -/interop/tutorials/deploy-superchain-erc20 /app-developers/tutorials/tokens/deploy-superchain-erc20 -/interop/tutorials/transfer-superchainERC20 /app-developers/tutorials/tokens/transfer-superchainERC20 -/interop/tutorials/custom-superchain-erc20 /app-developers/tutorials/tokens/custom-superchain-erc20 -/interop/tutorials/bridge-crosschain-eth /app-developers/tutorials/bridging/cross-chain-eth -/interop/tutorials/relay-messages-cast /app-developers/tutorials/interoperability/relay-messages-cast -/interop/tutorials/relay-messages-viem /app-developers/tutorials/interoperability/relay-messages-viem -/interop/tutorials/contract-calls /app-developers/tutorials/interoperability/contract-calls -/interop/tutorials/event-reads /app-developers/tutorials/interoperability/event-reads -/interop/tutorials/event-contests /app-developers/tutorials/interoperability/event-contests -/app-developers/tutorials/supersim /app-developers/tutorials/development/supersim -/app-developers/tutorials/interop /app-developers/tutorials/interoperability -/app-developers/tutorials/transactions /app-developers/tutorials/transactions -/app-developers/tutorials/bridging /app-developers/tutorials/bridging -/app-developers/interop /app-developers/guides/interoperability -/app-developers/testing-apps /app-developers/guides/testing -/app-developers/bridging /app-developers/guides/bridging -/app-developers/bridging/basics /app-developers/guides/bridging/basics -/app-developers/bridging/standard-bridge /app-developers/guides/bridging/standard-bridge -/app-developers/bridging/custom-bridge /app-developers/guides/bridging/custom-bridge -/app-developers/bridging/messaging /app-developers/guides/bridging/messaging -/app-developers/transactions /app-developers/guides/transactions -/app-developers/transactions/estimates /app-developers/guides/transactions/estimates -/app-developers/transactions/parameters /app-developers/guides/transactions/parameters -/app-developers/transactions/statuses /app-developers/guides/transactions/statuses -/app-developers/transactions/troubleshooting /app-developers/guides/transactions/troubleshooting -/app-developers/tutorials/bridging/cross-dom-solidity /app-developers/tutorials/bridging/cross-domain-contracts -/app-developers/tutorials/bridging/cross-dom-bridge-eth /app-developers/tutorials/bridging/cross-domain-eth -/app-developers/tutorials/bridging/cross-dom-bridge-erc20 /app-developers/tutorials/bridging/cross-domain-erc20 -/app-developers/tutorials/bridging/standard-bridge-standard-token /app-developers/tutorials/bridging/standard-token-bridge -/app-developers/tutorials/transactions/sdk-trace-txns /app-developers/tutorials/transactions/sdk-tracing -/app-developers/tutorials/transactions/sdk-estimate-costs /app-developers/tutorials/transactions/cost-estimation -/app-developers/tutorials/transactions/send-tx-from-eth /app-developers/tutorials/transactions/l1-to-l2-transactions -/app-developers/tutorials/supersim/getting-started /app-developers/tutorials/development/supersim/getting-started -/app-developers/tutorials/supersim/getting-started/installation /app-developers/tutorials/development/supersim/installation -/app-developers/tutorials/supersim/getting-started/first-steps /app-developers/tutorials/development/supersim/first-steps -/app-developers/tutorials/supersim/reference /app-developers/reference/tools/supersim -/app-developers/tutorials/supersim/reference/vanilla /app-developers/reference/tools/supersim/vanilla -/app-developers/tutorials/supersim/reference/fork /app-developers/reference/tools/supersim/fork -/app-developers/tutorials/supersim/chain-env /app-developers/reference/tools/supersim/environment -/app-developers/tutorials/supersim/chain-env/included-contracts /app-developers/reference/tools/supersim/contracts -/app-developers/tutorials/supersim/chain-env/chain-a /app-developers/reference/tools/supersim/chain-a -/app-developers/tutorials/supersim/chain-env/chain-b /app-developers/reference/tools/supersim/chain-b -/app-developers/tutorials/supersim/deposit-transactions /app-developers/tutorials/bridging/deposit-transactions -/app-developers/tutorials/interop/transfer-superchainERC20 /app-developers/tutorials/tokens/transfer-superchain-erc20 -/app-developers/tutorials/interop/deploy-superchain-erc20 /app-developers/tutorials/tokens/deploy-superchain-erc20 -/app-developers/tutorials/interop/bridge-crosschain-eth /app-developers/tutorials/bridging/cross-chain-eth -/app-developers/tutorials/interop/relay-messages-cast /app-developers/tutorials/tools/cast-relay -/app-developers/tutorials/interop/relay-messages-viem /app-developers/tutorials/tools/viem-relay -/app-developers/tutorials/interop/contract-calls /app-developers/tutorials/interoperability/cross-chain-calls -/app-developers/tutorials/interop/event-reads /app-developers/tutorials/interoperability/reading-events -/app-developers/tutorials/interop/event-contests /app-developers/tutorials/interoperability/event-handling -/app-developers/tools/connect /app-developers/guides/rpcs -/app-developers/tools/connect/rpc-providers /app-developers/reference/rpc -/app-developers/tools/build /app-developers/tools -/app-developers/tools/build/faucets /app-developers/tools/testing/faucets -/app-developers/tools/build/nft-tools /app-developers/tools/nft -/app-developers/tools/build/block-explorers /app-developers/tools/infrastructure/explorers -/app-developers/tools/build/account-abstraction /app-developers/tools/wallets/account-abstraction -/operators/chain-operators/management /chain-operators/guides/management -/operators/chain-operators/management/blobs /chain-operators/guides/management/blobs -/operators/chain-operators/management/snap-sync /chain-operators/guides/management/snap-sync -/operators/chain-operators/management/key-management /chain-operators/guides/management/key-management -/operators/chain-operators/management/troubleshooting /chain-operators/guides/troubleshooting -/operators/chain-operators/management/best-practices /chain-operators/guides/best-practices -/operators/chain-operators/features /chain-operators/reference/features -/operators/chain-operators/features/alt-da-mode /chain-operators/reference/features/alt-da -/operators/chain-operators/features/span-batches /chain-operators/reference/features/span-batches -/operators/chain-operators/features/bridged-usdc-standard /chain-operators/reference/features/bridged-usdc -/operators/chain-operators/deploy /chain-operators/guides/deployment -/operators/chain-operators/deploy/overview /chain-operators/guides/deployment/overview -/operators/chain-operators/tutorials /chain-operators/tutorials -/operators/chain-operators/tutorials/adding-derivation-attributes /chain-operators/tutorials/custom-derivation -/operators/chain-operators/tutorials/adding-precompiles /chain-operators/tutorials/add-precompiles -/operators/chain-operators/tutorials/modifying-predeploys /chain-operators/tutorials/modify-predeploys -/operators/chain-operators/tutorials/integrating-da-layer /chain-operators/tutorials/integrate-da -/operators/chain-operators/tutorials/migrating-permissionless /chain-operators/tutorials/migrate-permissionless -/operators/chain-operators/tutorials/chain-dev-net /chain-operators/tutorials/development-network -/operators/chain-operators/tutorials/dispute-games /chain-operators/tutorials/deploy-dispute-games -/operators/chain-operators/tools /chain-operators/tools -/operators/chain-operators/tools/explorer /chain-operators/tools/explorer -/operators/chain-operators/tools/op-challenger /chain-operators/tools/op-challenger -/operators/chain-operators/tools/op-conductor /chain-operators/tools/op-conductor -/operators/chain-operators/tools/op-validator /chain-operators/tools/op-validator -/operators/chain-operators/tools/op-txproxy /chain-operators/tools/op-txproxy -/operators/chain-operators/tools/proxyd /chain-operators/tools/proxyd -/operators/node-operators/tutorials /node-operators/tutorials -/operators/node-operators/tutorials/node-from-docker /node-operators/tutorials/docker-node -/operators/node-operators/tutorials/node-from-source /node-operators/tutorials/source-node -/operators/node-operators/tutorials/run-node-from-source /node-operators/tutorials/run-from-source -/operators/node-operators/configuration /node-operators/guides/configuration -/operators/node-operators/management /node-operators/guides/management -/operators/node-operators/management/regenesis-history /node-operators/guides/management/regenesis -/operators/chain-operators /chain-operators -/stack/fact-sheet /concepts/stack/fact-sheet -/stack/differences /concepts/stack/differences -/stack/design-principles /concepts/stack/design-principles -/stack/public-devnets /developers/testing/public-devnets -/stack/rollup /concepts/architecture/rollup -/stack/rollup/derivation-pipeline /concepts/architecture/rollup/derivation -/stack/rollup/outages /concepts/architecture/rollup/outages -/stack/fault-proofs /concepts/architecture/fault-proofs -/stack/fault-proofs/explainer /concepts/architecture/fault-proofs/explainer -/stack/fault-proofs/fp-components /concepts/architecture/fault-proofs/components -/stack/fault-proofs/cannon /concepts/architecture/fault-proofs/cannon -/stack/fault-proofs/challenger /concepts/architecture/fault-proofs/op-challenger -/stack/fault-proofs/fp-security /concepts/security/fault-proofs -/stack/transactions /concepts/transactions -/stack/transactions/transaction-finality /concepts/transactions/finality -/stack/transactions/forced-transaction /concepts/transactions/forced-txs -/stack/features /concepts/stack/features \ No newline at end of file