diff --git a/.circleci/config.yml b/.circleci/config.yml index a2187600b..bac82b6b8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,6 +28,9 @@ commands: - restore_cache: keys: - v1-pnpm-cache-{{ checksum "pnpm-lock.yaml" }} + - run: + name: Set up pnpm global bin directory + command: pnpm setup # Run setup to configure the global bin directory - run: name: Install dependencies command: npm install -g pnpm && pnpm install diff --git a/.github/ISSUE_TEMPLATE/suggest_troubleshooting_item.yaml b/.github/ISSUE_TEMPLATE/suggest_troubleshooting_item.yaml index 287ed464d..16b983b60 100644 --- a/.github/ISSUE_TEMPLATE/suggest_troubleshooting_item.yaml +++ b/.github/ISSUE_TEMPLATE/suggest_troubleshooting_item.yaml @@ -6,7 +6,7 @@ body: - type: markdown attributes: value: | - Before submitting this suggestion, be sure to read our expectations for [troubleshooting content](https://docs.optimism.io/contribute/style-guide#troubleshooting-guides).
For an example troubleshooting guide with problem+solution pairs, see [Troubleshooting: L2 Rollup](https://docs.optimism.io/builders/chain-operators/management/troubleshooting). + Before submitting this suggestion, be sure to read our expectations for [troubleshooting content](https://docs.optimism.io/contribute/style-guide#troubleshooting-guides).
For an example troubleshooting guide with problem+solution pairs, see [Troubleshooting: L2 Rollup](https://docs.optimism.io/operators/chain-operators/management/troubleshooting). - type: markdown id: project_info attributes: diff --git a/components/Footer.tsx b/components/Footer.tsx new file mode 100644 index 000000000..6a37e9726 --- /dev/null +++ b/components/Footer.tsx @@ -0,0 +1,98 @@ +import { Link } from 'nextra-theme-docs'; +export function Footer() { + return ( + + ); +} \ No newline at end of file diff --git a/components/calculator/ResultsTable.tsx b/components/calculator/ResultsTable.tsx index e20a0d7f8..3613dafcc 100644 --- a/components/calculator/ResultsTable.tsx +++ b/components/calculator/ResultsTable.tsx @@ -108,7 +108,7 @@ export function ResultsTable({

Note: This is an estimation,{" "} read how to determine scalar values using blobs diff --git a/notes/breadcrumbs.md b/notes/breadcrumbs.md index c05467848..bad5434db 100644 --- a/notes/breadcrumbs.md +++ b/notes/breadcrumbs.md @@ -28,7 +28,7 @@ pnpm fix 1. **Before Running** * Commit your current changes * Ensure you're in the docs root directory - * Target folders should exist: `builders`, `chain`, `stack`, `connect` + * Target folders should exist: `app-developers`, `operators`, `stack`, `superchain` 2. **After Running** * Review generated `.mdx` files in each folder diff --git a/package.json b/package.json index 0dfee0629..45bdd9704 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,8 @@ "remark-lint-unordered-list-marker-style": "^3.1.2", "remark-preset-lint-consistent": "^5.1.2", "remark-preset-lint-recommended": "^6.1.3", - "typescript": "^5.2.2", + "ts-node": "10.9.2", + "typescript": "^5.3.2", "unified-lint-rule": "^2.1.2", "unist-util-visit": "^5.0.0" }, @@ -74,4 +75,4 @@ "nextra@2.13.2": "patches/nextra@2.13.2.patch" } } -} +} \ No newline at end of file diff --git a/pages/_meta.json b/pages/_meta.json index 49c9a6d3b..81e46e2cc 100644 --- a/pages/_meta.json +++ b/pages/_meta.json @@ -1,12 +1,88 @@ { "index": { - "title": "Getting started", + "title": "Home", "display": "hidden", "theme": { "breadcrumb": false, "footer": true, + "sidebar": false, + "toc": false, + "pagination": false + } + }, + "notices": { + "title": "Notices (README)" + }, + "+++ Notices": { + "title": "", + "type": "separator" + }, + + "get-started": { + "title": "Get started", + "type":"page", + "theme": { + "navbar": true, "sidebar": true, "toc": true, + "pagination": true + }, + "display": "children" + }, + "superchain": { + "title": "Superchain", + "type":"page", + "theme": { + "navbar": true, + "sidebar": true, + "toc": true, + "pagination": true + }, + "display": "children" + }, + "app-developers": { + "title": "App Devs", + "type": "page", + "theme": { + "navbar": true, + "sidebar": true, + "toc": true, + "pagination": true + }, + "display": "children" + }, + "operators": { + "title": "Operators", + "type": "page", + "theme": { + "navbar": true, + "sidebar": true, + "toc": true, + "pagination": true + }, + "display": "children" + }, + "stack": { + "title": "OP Stack", + "type": "page", + "theme": { + "navbar": true, + "sidebar": true, + "toc": true, + "pagination": true + }, + "display": "children" + }, + + "connect": { + "title": "Connect", + "type": "page", + "display": "hidden", + "theme": { + "breadcrumb": false, + "footer": true, + "sidebar": true, + "toc": false, "pagination": false } }, @@ -35,72 +111,5 @@ "toc": false, "pagination": false } - }, - - "faucet": { - "title": "Superchain faucet", - "type": "page", - "href": "https://console.optimism.io/faucet?utm_source=docs", - "newWindow": true - }, - "gas": { - "title": "Gas tracker", - "type": "page", - "href": "https://optimistic.grafana.net/public-dashboards/c84a5a9924fe4e14b270a42a8651ceb8?orgId=1&refresh=5m", - "newWindow": true - }, - "status": { - "title": "Status", - "type": "page", - "href": "https://status.optimism.io/", - "newWindow": true - }, - - "--- BUILDERS": { - "title": "BUILDERS", - "type": "separator" - }, - "builders": { - "title": "Builders", - "display": "children" - }, - - "+++ THE SUPERCHAIN": { - "title": "", - "type": "separator" - }, - "--- THE SUPERCHAIN": { - "title": "THE SUPERCHAIN", - "type": "separator" - }, - "superchain": { - "title": "The Superchain", - "display": "children" - }, - - "+++ OP STACK": { - "title": "", - "type": "separator" - }, - "--- OP STACK": { - "title": "OP STACK", - "type": "separator" - }, - "stack": { - "title": "OP Stack", - "display": "children" - }, - - "+++ CONNECT": { - "title": "", - "type": "separator" - }, - "--- CONNECT": { - "title": "CONNECT", - "type": "separator" - }, - "connect": { - "title": "Connect", - "display": "children" } } diff --git a/pages/builders/app-developers/_meta.json b/pages/app-developers/_meta.json similarity index 67% rename from pages/builders/app-developers/_meta.json rename to pages/app-developers/_meta.json index b2cbaa949..d5afc0cfe 100644 --- a/pages/builders/app-developers/_meta.json +++ b/pages/app-developers/_meta.json @@ -1,4 +1,8 @@ { + "--- App Devs": { + "title": "App Developers", + "type": "separator" + }, "overview": "Overview", "quick-start": "Superchain app quick start", "tutorials": "Tutorials", diff --git a/pages/builders/app-developers/bridging.mdx b/pages/app-developers/bridging.mdx similarity index 55% rename from pages/builders/app-developers/bridging.mdx rename to pages/app-developers/bridging.mdx index 893cb6db6..4bec707f9 100644 --- a/pages/builders/app-developers/bridging.mdx +++ b/pages/app-developers/bridging.mdx @@ -11,11 +11,8 @@ import { Card, Cards } from 'nextra/components' This section provides information on bridging basics, custom bridges, sending data between l1 and l2 and using the standard bridge. You'll find guide, overview to help you understand and work with these topics. - - - - - - - + + + + diff --git a/pages/builders/app-developers/bridging/_meta.json b/pages/app-developers/bridging/_meta.json similarity index 100% rename from pages/builders/app-developers/bridging/_meta.json rename to pages/app-developers/bridging/_meta.json diff --git a/pages/builders/app-developers/bridging/basics.mdx b/pages/app-developers/bridging/basics.mdx similarity index 75% rename from pages/builders/app-developers/bridging/basics.mdx rename to pages/app-developers/bridging/basics.mdx index f2085f5fe..33af955f9 100644 --- a/pages/builders/app-developers/bridging/basics.mdx +++ b/pages/app-developers/bridging/basics.mdx @@ -28,7 +28,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](/builders/app-developers/tutorials/cross-dom-bridge-erc20) -* [Learn how to bridge ETH with viem](/builders/app-developers/tutorials/cross-dom-bridge-eth) -* [Learn how to create a standard bridged token](/builders/app-developers/tutorials/standard-bridge-standard-token) -* [Learn how to create a custom bridged token](/builders/app-developers/tutorials/standard-bridge-custom-token) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/cross-dom-bridge-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/cross-dom-bridge-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/standard-bridge-standard-token) +* [Learn how to create a custom bridged token](/app-developers/tutorials/standard-bridge-custom-token) diff --git a/pages/builders/app-developers/bridging/custom-bridge.mdx b/pages/app-developers/bridging/custom-bridge.mdx similarity index 94% rename from pages/builders/app-developers/bridging/custom-bridge.mdx rename to pages/app-developers/bridging/custom-bridge.mdx index 8d0ab6424..50773f398 100644 --- a/pages/builders/app-developers/bridging/custom-bridge.mdx +++ b/pages/app-developers/bridging/custom-bridge.mdx @@ -15,7 +15,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](/builders/app-developers/tutorials/standard-bridge-custom-token) is often sufficient for projects that need more flexibility. + [Building a custom bridged token](/app-developers/tutorials/standard-bridge-custom-token) is often sufficient for projects that need more flexibility. ## Guidelines diff --git a/pages/builders/app-developers/bridging/messaging.mdx b/pages/app-developers/bridging/messaging.mdx similarity index 99% rename from pages/builders/app-developers/bridging/messaging.mdx rename to pages/app-developers/bridging/messaging.mdx index 215a54371..3a1e10449 100644 --- a/pages/builders/app-developers/bridging/messaging.mdx +++ b/pages/app-developers/bridging/messaging.mdx @@ -13,7 +13,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](/builders/app-developers/tutorials/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/cross-dom-solidity). ## Understanding contract calls diff --git a/pages/builders/app-developers/bridging/standard-bridge.mdx b/pages/app-developers/bridging/standard-bridge.mdx similarity index 97% rename from pages/builders/app-developers/bridging/standard-bridge.mdx rename to pages/app-developers/bridging/standard-bridge.mdx index fca5dcadb..a748d38e5 100644 --- a/pages/builders/app-developers/bridging/standard-bridge.mdx +++ b/pages/app-developers/bridging/standard-bridge.mdx @@ -199,10 +199,10 @@ Users simply need to trigger and send ETH to the [`bridgeETH`](https://github.co ## Tutorials -* [Learn how to bridge ERC-20 tokens with viem](/builders/app-developers/tutorials/cross-dom-bridge-erc20) -* [Learn how to bridge ETH with viem](/builders/app-developers/tutorials/cross-dom-bridge-eth) -* [Learn how to create a standard bridged token](/builders/app-developers/tutorials/standard-bridge-standard-token) -* [Learn how to create a custom bridged token](/builders/app-developers/tutorials/standard-bridge-custom-token) +* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/cross-dom-bridge-erc20) +* [Learn how to bridge ETH with viem](/app-developers/tutorials/cross-dom-bridge-eth) +* [Learn how to create a standard bridged token](/app-developers/tutorials/standard-bridge-standard-token) +* [Learn how to create a custom bridged token](/app-developers/tutorials/standard-bridge-custom-token) ## Superchain Token List diff --git a/pages/builders/app-developers/getting-started.mdx b/pages/app-developers/getting-started.mdx similarity index 95% rename from pages/builders/app-developers/getting-started.mdx rename to pages/app-developers/getting-started.mdx index 7ba7ce577..81fd2d838 100644 --- a/pages/builders/app-developers/getting-started.mdx +++ b/pages/app-developers/getting-started.mdx @@ -15,7 +15,7 @@ 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](/builders/tools/connect/rpc-providers) 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 @@ -58,7 +58,7 @@ Only when you have a version that works well on a test network should you deploy ### Contract source verification -You don't have to upload your source code to [block explorers](/builders/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/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/builders/app-developers/overview.mdx b/pages/app-developers/overview.mdx similarity index 86% rename from pages/builders/app-developers/overview.mdx rename to pages/app-developers/overview.mdx index c1904e1d7..0b7f02c46 100644 --- a/pages/builders/app-developers/overview.mdx +++ b/pages/app-developers/overview.mdx @@ -13,19 +13,19 @@ In this area of the Optimism Docs you'll find everything you need to know about ## Getting started -If you're brand new to OP Mainnet, try starting with the guide on [deploying a basic contract](/builders/app-developers/getting-started). +If you're brand new to OP Mainnet, try starting with the guide on [deploying a basic contract](/app-developers/getting-started). It'll get you familiar with the basic steps required to get a contract deployed to the network. OP Mainnet is [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306) so you can feel confident that your existing Ethereum smart contract skills will carry over to OP Mainnet. Just make sure to be aware of the few small [differences between Ethereum and OP Mainnet](/stack/differences). -You might also want to check out the [testing on OP Networks guide](/builders/app-developers/testing-apps) and the tutorial on [running a local development environment](/stack/dev-node) to help you feel totally confident in your OP Mainnet deployment. +You might also want to check out the [testing on OP Networks guide](/app-developers/testing-apps) and the tutorial on [running a local development environment](/stack/dev-node) to help you feel totally confident in your OP Mainnet deployment. - } /> + } /> } /> - } /> + } /> ## Bridging and messaging @@ -39,11 +39,11 @@ Contracts on one chain can trigger contract functions on the other chain, it's p The Standard Token Bridge for OP Mainnet even uses this same message-passing infrastructure under the hood. - } /> + } /> - } /> + } /> - } /> + } /> ## Tutorials diff --git a/pages/builders/app-developers/quick-start.mdx b/pages/app-developers/quick-start.mdx similarity index 98% rename from pages/builders/app-developers/quick-start.mdx rename to pages/app-developers/quick-start.mdx index 98cc91da0..621ae28fd 100644 --- a/pages/builders/app-developers/quick-start.mdx +++ b/pages/app-developers/quick-start.mdx @@ -26,7 +26,7 @@ You can request testnet ETH from the Superchain Faucet in one of two ways: **con Looking for more faucets? - You can also try using [other available OP Sepolia faucets](/builders/tools/build/faucets). + You can also try using [other available OP Sepolia faucets](/app-developers/tools/build/faucets). ## Step 2: Build a basic app with Scaffold-OP diff --git a/pages/builders/app-developers/testing-apps.mdx b/pages/app-developers/testing-apps.mdx similarity index 89% rename from pages/builders/app-developers/testing-apps.mdx rename to pages/app-developers/testing-apps.mdx index 18badabe2..81ce7f19a 100644 --- a/pages/builders/app-developers/testing-apps.mdx +++ b/pages/app-developers/testing-apps.mdx @@ -23,7 +23,7 @@ Running proper testing is key to identifying fringe cases where the equivalence ## 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](/builders/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 development environment](dev-node) 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 development environment](dev-node) each time. ## Integration with other products @@ -31,5 +31,6 @@ In many cases a decentralized application requires the services of other contrac 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](https://hardhat.org/hardhat-network/guides/mainnet-forking.html). + It works with OP Stack chains. 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 new file mode 100644 index 000000000..fd20891c6 --- /dev/null +++ b/pages/app-developers/tools.mdx @@ -0,0 +1,21 @@ +--- +title: Tools +lang: en-US +description: Information on open-source code repositories for OP Stack builders and SuperSim. +--- + +import { Card, Cards } from 'nextra/components' + +# Tools + +This section provides information on open-source code repositories for OP Stack builders and SuperSim. Users will find references to help understand and work with these topics. + + + + + + + + + + diff --git a/pages/builders/tools/_meta.json b/pages/app-developers/tools/_meta.json similarity index 62% rename from pages/builders/tools/_meta.json rename to pages/app-developers/tools/_meta.json index 440d418b9..c194edc71 100644 --- a/pages/builders/tools/_meta.json +++ b/pages/app-developers/tools/_meta.json @@ -3,6 +3,5 @@ "connect": "Connecting", "build": "Building", "monitor": "Monitoring", - "op-tools": "OP tools", - "fee-calculator": "Fee calculator" + "op-tools": "OP tools" } diff --git a/pages/builders/tools/build.mdx b/pages/app-developers/tools/build.mdx similarity index 52% rename from pages/builders/tools/build.mdx rename to pages/app-developers/tools/build.mdx index 0d039842e..7d3d47d24 100644 --- a/pages/builders/tools/build.mdx +++ b/pages/app-developers/tools/build.mdx @@ -13,13 +13,13 @@ import { Card, Cards } from 'nextra/components' This section provides information on account abstraction, block explorers, testnet faucets, op mainnet nft tools and oracles. You'll find guide, reference, tool, api to help you understand and work with these topics. - + - + - + - + - + diff --git a/pages/builders/tools/build/_meta.json b/pages/app-developers/tools/build/_meta.json similarity index 100% rename from pages/builders/tools/build/_meta.json rename to pages/app-developers/tools/build/_meta.json diff --git a/pages/builders/tools/build/account-abstraction.mdx b/pages/app-developers/tools/build/account-abstraction.mdx similarity index 97% rename from pages/builders/tools/build/account-abstraction.mdx rename to pages/app-developers/tools/build/account-abstraction.mdx index a5a1cbec8..f73fb004d 100644 --- a/pages/builders/tools/build/account-abstraction.mdx +++ b/pages/app-developers/tools/build/account-abstraction.mdx @@ -23,7 +23,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](/builders/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/builders/tools/build/block-explorers.mdx b/pages/app-developers/tools/build/block-explorers.mdx similarity index 97% rename from pages/builders/tools/build/block-explorers.mdx rename to pages/app-developers/tools/build/block-explorers.mdx index cd179fc87..2da83f348 100644 --- a/pages/builders/tools/build/block-explorers.mdx +++ b/pages/app-developers/tools/build/block-explorers.mdx @@ -68,7 +68,7 @@ Once Upon currently supports: ## 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/). -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](/builders/tools/monitor/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](/app-developers/tools/monitor/regenesis-history). ## Inclusion criteria @@ -84,4 +84,4 @@ You can also promote your tool in the [developer forum](https://github.com/ether ## Next Steps * Please visit the [community block explorers page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/block-explorers.md) for a listing of third-party block explorers used by the Optimism developer community. -* Looking for other developer tools? See [developer tools overview](/builders/tools/overview) to explore more options! +* Looking for other developer tools? See [developer tools overview](/app-developers/tools/overview) to explore more options! diff --git a/pages/builders/tools/build/faucets.mdx b/pages/app-developers/tools/build/faucets.mdx similarity index 98% rename from pages/builders/tools/build/faucets.mdx rename to pages/app-developers/tools/build/faucets.mdx index 8c815513a..2850701c7 100644 --- a/pages/builders/tools/build/faucets.mdx +++ b/pages/app-developers/tools/build/faucets.mdx @@ -61,4 +61,4 @@ You can also promote your tool in the [developer forum](https://github.com/ether * If you're new to onchain development, check out [Optimism Unleashed](https://cryptozombies.io/en/optimism) by CryptoZombies and [Superchain Builder NFT](https://web.archive.org/web/20231218203510/https://blog.thirdweb.com/guides/optimism-superchain-faucet-nft/) by ThirdWeb. * If you're familiar with onchain development, check out the [Optimism Ecosystem's Contributions Dashboard](https://github.com/ethereum-optimism/ecosystem-contributions) for project ideas that the Optimism Collective is looking for. -* Looking for other developer tools? See [developer tools overview](/builders/tools/overview) to explore more options! +* Looking for other developer tools? See [developer tools overview](/app-developers/tools/overview) to explore more options! diff --git a/pages/builders/tools/build/nft-tools.mdx b/pages/app-developers/tools/build/nft-tools.mdx similarity index 100% rename from pages/builders/tools/build/nft-tools.mdx rename to pages/app-developers/tools/build/nft-tools.mdx diff --git a/pages/builders/tools/build/oracles.mdx b/pages/app-developers/tools/build/oracles.mdx similarity index 99% rename from pages/builders/tools/build/oracles.mdx rename to pages/app-developers/tools/build/oracles.mdx index d9802c4a6..f70207126 100644 --- a/pages/builders/tools/build/oracles.mdx +++ b/pages/app-developers/tools/build/oracles.mdx @@ -147,4 +147,4 @@ You can also promote your tool in the [developer forum](https://github.com/ether ## Next steps * Please visit the [community oracles page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/oracles.md) for a listing of third-party Oracles used by the Optimism developer community. -* Looking for other developer tools? See [developer tools overview](/builders/tools/overview) to explore more options! +* Looking for other developer tools? See [developer tools overview](/app-developers/tools/overview) to explore more options! diff --git a/pages/builders/tools/connect.mdx b/pages/app-developers/tools/connect.mdx similarity index 70% rename from pages/builders/tools/connect.mdx rename to pages/app-developers/tools/connect.mdx index 50154b1f4..8be23f91b 100644 --- a/pages/builders/tools/connect.mdx +++ b/pages/app-developers/tools/connect.mdx @@ -13,7 +13,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/builders/tools/connect/_meta.json b/pages/app-developers/tools/connect/_meta.json similarity index 100% rename from pages/builders/tools/connect/_meta.json rename to pages/app-developers/tools/connect/_meta.json diff --git a/pages/builders/tools/connect/networks.mdx b/pages/app-developers/tools/connect/networks.mdx similarity index 100% rename from pages/builders/tools/connect/networks.mdx rename to pages/app-developers/tools/connect/networks.mdx diff --git a/pages/builders/tools/connect/rpc-providers.mdx b/pages/app-developers/tools/connect/rpc-providers.mdx similarity index 99% rename from pages/builders/tools/connect/rpc-providers.mdx rename to pages/app-developers/tools/connect/rpc-providers.mdx index 4ea661d26..bf99edc6a 100644 --- a/pages/builders/tools/connect/rpc-providers.mdx +++ b/pages/app-developers/tools/connect/rpc-providers.mdx @@ -148,4 +148,4 @@ You can also promote your tool in the [developer forum](https://github.com/ether ## Next steps * Please visit the [community node providers page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/node-providers.md) for a listing of third-party node providers used by the Optimism developer community. -* Looking for other developer tools? See [developer tools overview](/builders/tools/overview) to explore more options! +* Looking for other developer tools? See [developer tools overview](/app-developers/tools/overview) to explore more options! diff --git a/pages/builders/app-developers/tools/ecosystem-overview.mdx b/pages/app-developers/tools/ecosystem-overview.mdx similarity index 100% rename from pages/builders/app-developers/tools/ecosystem-overview.mdx rename to pages/app-developers/tools/ecosystem-overview.mdx diff --git a/pages/builders/tools/monitor.mdx b/pages/app-developers/tools/monitor.mdx similarity index 68% rename from pages/builders/tools/monitor.mdx rename to pages/app-developers/tools/monitor.mdx index 848483480..273430003 100644 --- a/pages/builders/tools/monitor.mdx +++ b/pages/app-developers/tools/monitor.mdx @@ -13,7 +13,7 @@ import { Card, Cards } from 'nextra/components' This section provides information on analytics tools and accessing pre regenesis history. You'll find guide, tool to help you understand and work with these topics. - + - + diff --git a/pages/builders/tools/monitor/_meta.json b/pages/app-developers/tools/monitor/_meta.json similarity index 100% rename from pages/builders/tools/monitor/_meta.json rename to pages/app-developers/tools/monitor/_meta.json diff --git a/pages/builders/tools/monitor/analytics-tools.mdx b/pages/app-developers/tools/monitor/analytics-tools.mdx similarity index 100% rename from pages/builders/tools/monitor/analytics-tools.mdx rename to pages/app-developers/tools/monitor/analytics-tools.mdx diff --git a/pages/builders/tools/monitor/regenesis-history.mdx b/pages/app-developers/tools/monitor/regenesis-history.mdx similarity index 100% rename from pages/builders/tools/monitor/regenesis-history.mdx rename to pages/app-developers/tools/monitor/regenesis-history.mdx diff --git a/pages/builders/tools/op-tools.mdx b/pages/app-developers/tools/op-tools.mdx similarity index 92% rename from pages/builders/tools/op-tools.mdx rename to pages/app-developers/tools/op-tools.mdx index 6b074eb92..0d1e79319 100644 --- a/pages/builders/tools/op-tools.mdx +++ b/pages/app-developers/tools/op-tools.mdx @@ -10,7 +10,7 @@ import { Card, Cards } from 'nextra/components' # Op Tools -This section provides information on . +This section provides information on OP-specific tooling. diff --git a/pages/builders/tools/op-tools/_meta.json b/pages/app-developers/tools/op-tools/_meta.json similarity index 100% rename from pages/builders/tools/op-tools/_meta.json rename to pages/app-developers/tools/op-tools/_meta.json diff --git a/pages/builders/tools/overview.mdx b/pages/app-developers/tools/overview.mdx similarity index 50% rename from pages/builders/tools/overview.mdx rename to pages/app-developers/tools/overview.mdx index 9537e0207..de5a229c4 100644 --- a/pages/builders/tools/overview.mdx +++ b/pages/app-developers/tools/overview.mdx @@ -10,37 +10,37 @@ import { Cards, Card } from 'nextra/components' Welcome to the Optimism developer tools! -If you are already familiar with [building on OP Mainnet](/builders/app-developers/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](/stack/getting-started) and just need the tools to get cracking, you are in the right place! ## Connecting } /> - } /> + } /> ## Building - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> - } /> + } /> ## Monitoring - } /> + } /> - } /> + } /> ## OP tools @@ -58,6 +58,6 @@ If you are already familiar with [building on OP Mainnet](/builders/app-develope } /> - } /> + } /> diff --git a/pages/builders/app-developers/tools/supersim.mdx b/pages/app-developers/tools/supersim.mdx similarity index 100% rename from pages/builders/app-developers/tools/supersim.mdx rename to pages/app-developers/tools/supersim.mdx diff --git a/pages/app-developers/transactions.mdx b/pages/app-developers/transactions.mdx new file mode 100644 index 000000000..1d633421a --- /dev/null +++ b/pages/app-developers/transactions.mdx @@ -0,0 +1,21 @@ +--- +title: Transactions +lang: en-US +description: >- + Guide to understanding and working with transactions on OP Stack, including + fee estimation, gas parameters, and troubleshooting. +--- + +import { Card, Cards } from 'nextra/components' + +# Transactions + +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/builders/app-developers/transactions/_meta.json b/pages/app-developers/transactions/_meta.json similarity index 100% rename from pages/builders/app-developers/transactions/_meta.json rename to pages/app-developers/transactions/_meta.json diff --git a/pages/builders/app-developers/transactions/estimates.mdx b/pages/app-developers/transactions/estimates.mdx similarity index 98% rename from pages/builders/app-developers/transactions/estimates.mdx rename to pages/app-developers/transactions/estimates.mdx index 8f7bcf99c..dcb5cf5ab 100644 --- a/pages/builders/app-developers/transactions/estimates.mdx +++ b/pages/app-developers/transactions/estimates.mdx @@ -51,7 +51,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](/builders/app-developers/tutorials/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/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/builders/app-developers/transactions/fees.mdx b/pages/app-developers/transactions/fees.mdx similarity index 100% rename from pages/builders/app-developers/transactions/fees.mdx rename to pages/app-developers/transactions/fees.mdx diff --git a/pages/builders/app-developers/transactions/parameters.mdx b/pages/app-developers/transactions/parameters.mdx similarity index 100% rename from pages/builders/app-developers/transactions/parameters.mdx rename to pages/app-developers/transactions/parameters.mdx diff --git a/pages/builders/app-developers/transactions/statuses.mdx b/pages/app-developers/transactions/statuses.mdx similarity index 100% rename from pages/builders/app-developers/transactions/statuses.mdx rename to pages/app-developers/transactions/statuses.mdx diff --git a/pages/builders/app-developers/transactions/troubleshooting.mdx b/pages/app-developers/transactions/troubleshooting.mdx similarity index 100% rename from pages/builders/app-developers/transactions/troubleshooting.mdx rename to pages/app-developers/transactions/troubleshooting.mdx diff --git a/pages/app-developers/tutorials.mdx b/pages/app-developers/tutorials.mdx new file mode 100644 index 000000000..91bc57aad --- /dev/null +++ b/pages/app-developers/tutorials.mdx @@ -0,0 +1,23 @@ +--- +title: Tutorials +lang: en-US +description: A collection of tutorials for app developers building on OP Stack, covering topics such as bridging tokens, deploying contracts, and estimating transaction costs. +--- + +import { Card, Cards } from 'nextra/components' + +# Tutorials + +This section provides information on bridging erc 20 tokens to op mainnet with viem, bridging eth to op mainnet with viem, communicating between op mainnet and ethereum in solidity, deploying your first contract on op mainnet, estimating transaction costs on op mainnet, tracing deposits and withdrawals, viewing deposits and withdrawals by address, triggering op mainnet transactions from ethereum, bridging your custom erc 20 token using the standard bridge and bridging your standard erc 20 token using the standard bridge. You'll find tutorial to help you understand and work with these topics. + + + + + + + + + + + + diff --git a/pages/builders/app-developers/tutorials/_meta.json b/pages/app-developers/tutorials/_meta.json similarity index 100% rename from pages/builders/app-developers/tutorials/_meta.json rename to pages/app-developers/tutorials/_meta.json diff --git a/pages/builders/app-developers/tutorials/cross-dom-bridge-erc20.mdx b/pages/app-developers/tutorials/cross-dom-bridge-erc20.mdx similarity index 97% rename from pages/builders/app-developers/tutorials/cross-dom-bridge-erc20.mdx rename to pages/app-developers/tutorials/cross-dom-bridge-erc20.mdx index f791c362a..96389f60d 100644 --- a/pages/builders/app-developers/tutorials/cross-dom-bridge-erc20.mdx +++ b/pages/app-developers/tutorials/cross-dom-bridge-erc20.mdx @@ -17,8 +17,8 @@ This tutorial explains how you can use the [Optimism SDK](https://sdk.optimism.i The Optimism SDK 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, the Optimism SDK uses the [Standard Bridge](/builders/app-developers/bridging/standard-bridge) contracts to transfer tokens. -Make sure to check out the [Standard Bridge guide](/builders/app-developers/bridging/standard-bridge) if you want to learn more about how the bridge works under the hood. +Behind the scenes, the Optimism SDK 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 @@ -31,7 +31,7 @@ Make sure to check out the [Standard Bridge guide](/builders/app-developers/brid The Optimism SDK supports any of the [Superchain networks](/superchain/networks). [Some Superchain networks](https://sdk.optimism.io/enums/l2chainid) are already included in the SDK by default. -If you want to use a network that isn't included by default, you can simply [instantiate the SDK with the appropriate contract addresses](/builders/app-developers/overview). +If you want to use a network that isn't included by default, you can simply [instantiate the SDK with the appropriate contract addresses](/app-developers/overview). ## Dependencies diff --git a/pages/builders/app-developers/tutorials/cross-dom-bridge-eth.mdx b/pages/app-developers/tutorials/cross-dom-bridge-eth.mdx similarity index 97% rename from pages/builders/app-developers/tutorials/cross-dom-bridge-eth.mdx rename to pages/app-developers/tutorials/cross-dom-bridge-eth.mdx index ce3b84376..4f7673f7f 100644 --- a/pages/builders/app-developers/tutorials/cross-dom-bridge-eth.mdx +++ b/pages/app-developers/tutorials/cross-dom-bridge-eth.mdx @@ -12,8 +12,8 @@ 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](/builders/app-developers/bridging/standard-bridge) contracts to transfer ETH and ERC-20 tokens. -Make sure to check out the [Standard Bridge guide](/builders/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/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 diff --git a/pages/builders/app-developers/tutorials/cross-dom-solidity.mdx b/pages/app-developers/tutorials/cross-dom-solidity.mdx similarity index 98% rename from pages/builders/app-developers/tutorials/cross-dom-solidity.mdx rename to pages/app-developers/tutorials/cross-dom-solidity.mdx index 51d7d0af0..5e0d6ea0b 100644 --- a/pages/builders/app-developers/tutorials/cross-dom-solidity.mdx +++ b/pages/app-developers/tutorials/cross-dom-solidity.mdx @@ -27,7 +27,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](/builders/app-developers/bridging/messaging). +Read more about message passing in the guide to [Sending Data Between L1 and L2](/app-developers/bridging/messaging). ## Dependencies @@ -321,7 +321,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](/builders/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/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/builders/app-developers/tutorials/sdk-estimate-costs.mdx b/pages/app-developers/tutorials/sdk-estimate-costs.mdx similarity index 94% rename from pages/builders/app-developers/tutorials/sdk-estimate-costs.mdx rename to pages/app-developers/tutorials/sdk-estimate-costs.mdx index e564a8d4a..6aa53c47f 100644 --- a/pages/builders/app-developers/tutorials/sdk-estimate-costs.mdx +++ b/pages/app-developers/tutorials/sdk-estimate-costs.mdx @@ -9,11 +9,11 @@ import { Callout, Steps, Tabs } from 'nextra/components' # Estimating transaction costs on OP Stack In this tutorial, you'll learn how to use [viem](https://viem.sh/op-stack/) to estimate the cost of a transaction on OP Mainnet. -You'll learn how to estimate the [execution gas fee](/builders/app-developers/transactions/fees#execution-gas-fee) and the [L1 data fee](/builders/app-developers/transactions/fees#l1-data-fee) independently. +You'll learn how to estimate the [execution gas fee](/app-developers/transactions/fees#execution-gas-fee) and the [L1 data fee](/app-developers/transactions/fees#l1-data-fee) independently. 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](/builders/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/transactions/fees) for more information on how OP Mainnet charges fees under the hood. ## Supported networks diff --git a/pages/builders/app-developers/tutorials/sdk-trace-txns.mdx b/pages/app-developers/tutorials/sdk-trace-txns.mdx similarity index 100% rename from pages/builders/app-developers/tutorials/sdk-trace-txns.mdx rename to pages/app-developers/tutorials/sdk-trace-txns.mdx diff --git a/pages/builders/app-developers/tutorials/sdk-view-txns.mdx b/pages/app-developers/tutorials/sdk-view-txns.mdx similarity index 100% rename from pages/builders/app-developers/tutorials/sdk-view-txns.mdx rename to pages/app-developers/tutorials/sdk-view-txns.mdx diff --git a/pages/builders/app-developers/tutorials/send-tx-from-eth.mdx b/pages/app-developers/tutorials/send-tx-from-eth.mdx similarity index 100% rename from pages/builders/app-developers/tutorials/send-tx-from-eth.mdx rename to pages/app-developers/tutorials/send-tx-from-eth.mdx diff --git a/pages/builders/app-developers/tutorials/standard-bridge-custom-token.mdx b/pages/app-developers/tutorials/standard-bridge-custom-token.mdx similarity index 100% rename from pages/builders/app-developers/tutorials/standard-bridge-custom-token.mdx rename to pages/app-developers/tutorials/standard-bridge-custom-token.mdx diff --git a/pages/builders/app-developers/tutorials/standard-bridge-standard-token.mdx b/pages/app-developers/tutorials/standard-bridge-standard-token.mdx similarity index 100% rename from pages/builders/app-developers/tutorials/standard-bridge-standard-token.mdx rename to pages/app-developers/tutorials/standard-bridge-standard-token.mdx diff --git a/pages/builders.mdx b/pages/builders.mdx deleted file mode 100644 index 98f4178cf..000000000 --- a/pages/builders.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Builders -lang: en-US -description: Learn about deploying contracts, cross-chain messaging, and tutorials to help you build applications on OP Mainnet. ---- - -import { Card, Cards } from 'nextra/components' - -# Builders - -Welcome to the Builders section. Here you'll find resources and guides for developers, operators, and other stakeholders involved in building on OP Stack. Explore the categories below to find the information you need. - - - - - - - - - diff --git a/pages/builders/_meta.json b/pages/builders/_meta.json deleted file mode 100644 index 17ea9b121..000000000 --- a/pages/builders/_meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "notices": "Notices (README)", - "app-developers": "App developers", - "chain-operators": "Chain operators", - "node-operators": "Node operators", - "tools": "Developer tools" -} diff --git a/pages/builders/app-developers.mdx b/pages/builders/app-developers.mdx deleted file mode 100644 index 36845c123..000000000 --- a/pages/builders/app-developers.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: App Developers -description: If you're a developer looking to build on OP Stack, you've come to the right place. In this area of the Optimism Docs you'll find everything you ... -lang: en-US ---- - -import { Card, Cards } from 'nextra/components' - -# App Developers - -If you're a developer looking to build on OP Mainnet, you've come to the right place. In this area of the Optimism Docs you'll find everything you ... - - - - - - - - - - - - - - - - - diff --git a/pages/builders/app-developers/tools.mdx b/pages/builders/app-developers/tools.mdx deleted file mode 100644 index 7aeb81f23..000000000 --- a/pages/builders/app-developers/tools.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Tools -lang: en-US -description: Information on open-source code repositories for OP Stack builders and SuperSim. ---- - -import { Card, Cards } from 'nextra/components' - -# Tools - -This section provides information on open-source code repositories for OP Stack builders and SuperSim. Users will find references to help understand and work with these topics. - - - - - - diff --git a/pages/builders/app-developers/tools/_meta.json b/pages/builders/app-developers/tools/_meta.json deleted file mode 100644 index f751e54e9..000000000 --- a/pages/builders/app-developers/tools/_meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "ecosystem-overview": "Open source code repo", - "supersim": "Supersim Multichain Development Environment", - "console": { - "title": "Superchain Dev Console", - "href": "https://console.optimism.io/?utm_source=docs", - "newWindow": true - } -} diff --git a/pages/builders/app-developers/transactions.mdx b/pages/builders/app-developers/transactions.mdx deleted file mode 100644 index e845de2d1..000000000 --- a/pages/builders/app-developers/transactions.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Transactions -lang: en-US -description: >- - Guide to understanding and working with transactions on OP Stack, including - fee estimation, gas parameters, and troubleshooting. ---- - -import { Card, Cards } from 'nextra/components' - -# Transactions - -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/builders/app-developers/tutorials.mdx b/pages/builders/app-developers/tutorials.mdx deleted file mode 100644 index 34a2f40e4..000000000 --- a/pages/builders/app-developers/tutorials.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Tutorials -lang: en-US -description: A collection of tutorials for app developers building on OP Stack, covering topics such as bridging tokens, deploying contracts, and estimating transaction costs. ---- - -import { Card, Cards } from 'nextra/components' - -# Tutorials - -This section provides information on bridging erc 20 tokens to op mainnet with viem, bridging eth to op mainnet with viem, communicating between op mainnet and ethereum in solidity, deploying your first contract on op mainnet, estimating transaction costs on op mainnet, tracing deposits and withdrawals, viewing deposits and withdrawals by address, triggering op mainnet transactions from ethereum, bridging your custom erc 20 token using the standard bridge and bridging your standard erc 20 token using the standard bridge. You'll find tutorial to help you understand and work with these topics. - - - - - - - - - - - - - - - - - - - - diff --git a/pages/builders/chain-operators.mdx b/pages/builders/chain-operators.mdx deleted file mode 100644 index 22abf0302..000000000 --- a/pages/builders/chain-operators.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Chain Operators -description: Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Management, Self Hosted, Tools, Tutorials in the Chain Operators section of the OP Stack ecosystem. -lang: en-US ---- - -import { Card, Cards } from 'nextra/components' - -# Chain Operators - -Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Management, Self Hosted, Tools, Tutorials in the Chain Operators section of the OP Stack ecosystem. - - - - - - - - - - - - - - - - - - diff --git a/pages/builders/chain-operators/management.mdx b/pages/builders/chain-operators/management.mdx deleted file mode 100644 index df32978e5..000000000 --- a/pages/builders/chain-operators/management.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Management -lang: en-US -description: >- - Learn about management in the Optimism ecosystem. This guide provides detailed - information and resources about management. ---- - -import { Card, Cards } from 'nextra/components' - -# Management - -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/builders/chain-operators/tools.mdx b/pages/builders/chain-operators/tools.mdx deleted file mode 100644 index c8018d508..000000000 --- a/pages/builders/chain-operators/tools.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Tools -lang: en-US -description: >- - Learn about tools in the Optimism ecosystem. This guide provides detailed - information and resources about tools. ---- - -import { Card, Cards } from 'nextra/components' - -# 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/builders/node-operators.mdx b/pages/builders/node-operators.mdx deleted file mode 100644 index 537743b2f..000000000 --- a/pages/builders/node-operators.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Node Operators -description: Documentation covering Architecture, Configuration, Json Rpc, Management, Network Upgrades, Releases, Rollup Node, Tutorials in the Node Operators section of the OP Stack ecosystem. -lang: en-US ---- - -import { Card, Cards } from 'nextra/components' - -# Node Operators - -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/builders/notices.mdx b/pages/builders/notices.mdx deleted file mode 100644 index 746de9e0f..000000000 --- a/pages/builders/notices.mdx +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Notices -description: Documentation covering Sdk Deprecation in the Notices section of the OP Stack ecosystem. -lang: en-US ---- - -import { Card, Cards } from 'nextra/components' - -# Notices - -Documentation covering Sdk Deprecation in the Notices section of the OP Stack ecosystem. - - - - - - - - diff --git a/pages/builders/tools.mdx b/pages/builders/tools.mdx deleted file mode 100644 index 354ca94dd..000000000 --- a/pages/builders/tools.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Tools -description: Welcome to the Optimism developer tools! -lang: en-US ---- - -import { Card, Cards } from 'nextra/components' - -# Tools - -Welcome to the Optimism developer tools! - - - - - - - - - - - - - - diff --git a/pages/connect/_meta.json b/pages/connect/_meta.json index 3efad2c2d..4d04b9fe8 100644 --- a/pages/connect/_meta.json +++ b/pages/connect/_meta.json @@ -5,10 +5,5 @@ "title": "Get Launch Support", "href": "https://share.hsforms.com/1yENj8CV9TzGYBASD0JC8_gqoshb", "newWindow": true -}, - "governance": { - "title": "Optimism Governance", - "href": "https://community.optimism.io/docs/governance/", - "newWindow": true - } +} } diff --git a/pages/connect/contribute/docs-contribute.mdx b/pages/connect/contribute/docs-contribute.mdx index beb035880..d38b72bf9 100644 --- a/pages/connect/contribute/docs-contribute.mdx +++ b/pages/connect/contribute/docs-contribute.mdx @@ -22,7 +22,7 @@ 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](/builders/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](/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](/connect/resources/glossary). * [Add a faucet to the developer community](https://github.com/ethereum-optimism/developers/tree/main/community): diff --git a/pages/connect/contribute/style-guide.mdx b/pages/connect/contribute/style-guide.mdx index bdc2039af..d6ffe8e37 100644 --- a/pages/connect/contribute/style-guide.mdx +++ b/pages/connect/contribute/style-guide.mdx @@ -84,7 +84,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](/builders/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](/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` @@ -306,33 +306,33 @@ Developers trust that we will lead them to sites or pages related to their readi * 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](/builders/app-developers/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](/builders/app-developers/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](/builders/app-developers/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 | General introduction to a product or feature, provides a happy-path for readers | [Smart Contract Overview](/stack/smart-contracts) | -| Guides | Explain what things are and how they work | [Standard Bridge Guide](/builders/app-developers/bridging/standard-bridge) | -| Quick Start Guides | Briefly explain how to "minimally" get started with a product, often in 30 minutes or less | [Superchain App Quick Start](/builders/app-developers/quick-start) | -| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/builders/app-developers/tutorials/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](/builders/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](/builders/tools/connect/rpc-providers) | +| Document type | Purpose | Examples | +| ------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| Overviews | General introduction to a product or feature, provides a happy-path for readers | [Smart Contract Overview](/stack/smart-contracts) | +| Guides | Explain what things are and how they work | [Standard Bridge Guide](/app-developers/bridging/standard-bridge) | +| Quick Start Guides | Briefly explain how to "minimally" get started with a product, often in 30 minutes or less | [Superchain App Quick Start](/app-developers/quick-start) | +| Tutorials | Provide task-oriented guidance with step-by-step "learn by doing" instructions | [Bridging ERC-20 tokens with viem](/app-developers/tutorials/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 -Overviews provide a general introduction to a product or service and a happy path for readers on how to navigate a particular set of docs or related features; often used at the top-level of a directory, such as `/builders/app-developers/overview`. When done well, overviews accomplish two essential tasks for users: +Overviews provide a general introduction to a product or service and a happy path for readers on how to navigate a particular set of docs or related features; often used at the top-level of a directory, such as `/app-developers/overview`. When done well, overviews accomplish two essential tasks for users: 1. **organize** the related set of documentation pages to keep developers from getting overloaded by too much information, and 2. **establish a 'happy path'** to direct developers to the right pages in the documentation set based on their user scenario or use case. diff --git a/pages/get-started/_meta.json b/pages/get-started/_meta.json new file mode 100644 index 000000000..448c98ad4 --- /dev/null +++ b/pages/get-started/_meta.json @@ -0,0 +1,34 @@ +{ + "--- GetStarted": { + "title": "Get Started", + "type": "separator" + }, + "superchain": "Superchain", + "op-stack": "OP Stack", + "interop": "Interoperability", + "governance": { + "title": "Optimism Governance", + "href": "https://community.optimism.io/docs/governance/", + "newWindow": true + }, + "+++ BuilderGuides": { + "title": "", + "type": "separator" + }, + "--- BuilderGuides": { + "title": "Builder Guides", + "type": "separator" + }, + "app-devs": { + "title": "App Developers", + "href": "/app-developers/overview" + }, + "chain-ops": { + "title": "Chain Operators", + "href": "/operators/chain-operators/architecture" + }, + "node-ops": { + "title": "Node Operators", + "href": "/operators/node-operators/architecture" + } +} \ No newline at end of file diff --git a/pages/get-started/interop.mdx b/pages/get-started/interop.mdx new file mode 100644 index 000000000..3a996050c --- /dev/null +++ b/pages/get-started/interop.mdx @@ -0,0 +1,9 @@ +--- +title: Getting started with the OP Stack +lang: en-US +description: Learn the basics of OP Stack development. +--- + +import InteropExplainer from '@/pages/stack/interop/explainer.mdx' + + diff --git a/pages/get-started/op-stack.mdx b/pages/get-started/op-stack.mdx new file mode 100644 index 000000000..d9bb4d003 --- /dev/null +++ b/pages/get-started/op-stack.mdx @@ -0,0 +1,9 @@ +--- +title: Getting started with the OP Stack +lang: en-US +description: Learn the basics of OP Stack development. +--- + +import StackExplainer from '@/pages/stack/getting-started.mdx' + + diff --git a/pages/get-started/superchain.mdx b/pages/get-started/superchain.mdx new file mode 100644 index 000000000..204ccb2a5 --- /dev/null +++ b/pages/get-started/superchain.mdx @@ -0,0 +1,9 @@ +--- +title: Superchain explainer +lang: en-US +description: Learn about Optimism Superchain components, features, and roadmap. +--- + +import SuperchainExplainer from '@/pages/superchain/superchain-explainer.mdx' + + diff --git a/pages/index.mdx b/pages/index.mdx index 183929e26..1775f0b56 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -11,20 +11,16 @@ import { Cards, Card } from 'nextra/components' 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). Information about the Optimism Collective's governance, community, and mission can be found on the [Optimism Community Hub](https://community.optimism.io/docs/governance/). -## Guides for builders +## Builder guides 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. - } /> + } /> - } /> + } /> - } /> - - } /> - - } /> + } /> @@ -35,27 +31,28 @@ Check out these amazing tools, so you can get building with Optimism. } /> - } /> + } /> } /> - } /> + } /> + + } /> - } /> + } /> -## Learn about Optimism +## About Optimism -OP Mainnet is an [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306) Layer 2 blockchain connected to Ethereum. -The OP Stack is the standardized, shared, and open-source development stack that makes it easy to spin up your own production-ready Layer 2 blockchain just like OP Mainnet. +The OP Stack is the standardized, shared, and open-source development stack that makes it easy to spin up your own production-ready Layer 2 blockchain. The Superchain is a network of OP Stack chains that share a bridging protocol, governance system, and more. We've got you covered with these detailed guides to help you learn all about Optimism's tech stack. - } /> - } /> } /> + + } /> diff --git a/pages/builders/notices/_meta.json b/pages/notices/_meta.json similarity index 100% rename from pages/builders/notices/_meta.json rename to pages/notices/_meta.json diff --git a/pages/builders/notices/holocene-changes.mdx b/pages/notices/holocene-changes.mdx similarity index 100% rename from pages/builders/notices/holocene-changes.mdx rename to pages/notices/holocene-changes.mdx diff --git a/pages/builders/notices/pectra-changes.mdx b/pages/notices/pectra-changes.mdx similarity index 100% rename from pages/builders/notices/pectra-changes.mdx rename to pages/notices/pectra-changes.mdx diff --git a/pages/builders/notices/sdk-deprecation.mdx b/pages/notices/sdk-deprecation.mdx similarity index 100% rename from pages/builders/notices/sdk-deprecation.mdx rename to pages/notices/sdk-deprecation.mdx diff --git a/pages/operators/_meta.json b/pages/operators/_meta.json new file mode 100644 index 000000000..73c5f101e --- /dev/null +++ b/pages/operators/_meta.json @@ -0,0 +1,22 @@ +{ + "--- Chains": { + "title": "Chain Operators", + "type": "separator" + }, + "chain-operators": { + "title": "Chains", + "display": "children" + }, + "+++ Nodes": { + "title": "", + "type": "separator" + }, + "--- NODES": { + "title": "Node Operators", + "type": "separator" + }, + "node-operators": { + "title": "Nodes", + "display": "children" + } + } \ No newline at end of file diff --git a/pages/operators/chain-operators.mdx b/pages/operators/chain-operators.mdx new file mode 100644 index 000000000..42bd4bfc1 --- /dev/null +++ b/pages/operators/chain-operators.mdx @@ -0,0 +1,29 @@ +--- +title: Chain Operators +description: Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Management, Self Hosted, Tools, Tutorials in the Chain Operators section of the OP Stack ecosystem. +lang: en-US +--- + +import { Card, Cards } from 'nextra/components' + +# Chain Operators + +Documentation covering Architecture, Configuration, Deploy, Features, Hacks, Management, Self Hosted, Tools, Tutorials in the Chain Operators section of the OP Stack ecosystem. + + + + + + + + + + + + + + + + + + diff --git a/pages/builders/chain-operators/_meta.json b/pages/operators/chain-operators/_meta.json similarity index 90% rename from pages/builders/chain-operators/_meta.json rename to pages/operators/chain-operators/_meta.json index e26e786c5..cf36f6f77 100644 --- a/pages/builders/chain-operators/_meta.json +++ b/pages/operators/chain-operators/_meta.json @@ -7,5 +7,4 @@ "deploy": "Deployment", "tutorials": "Tutorials", "tools": "Chain tools", - "hacks": "OP Stack hacks" } diff --git a/pages/builders/chain-operators/architecture.mdx b/pages/operators/chain-operators/architecture.mdx similarity index 92% rename from pages/builders/chain-operators/architecture.mdx rename to pages/operators/chain-operators/architecture.mdx index 60f2d2528..5bc5b42ef 100644 --- a/pages/builders/chain-operators/architecture.mdx +++ b/pages/operators/chain-operators/architecture.mdx @@ -123,7 +123,7 @@ Bootnodes facilitate peer discovery for network nodes. They help initialize peer ### Archive RPC Nodes -We recommend setting up some archive nodes for internal RPC usage, primary used by the challenger, proposer and security monitoring tools like [monitorism](/builders/chain-operators/tools/chain-monitoring#monitorism). +We recommend setting up some archive nodes for internal RPC usage, primary used by the challenger, proposer and security monitoring tools like [monitorism](/operators/chain-operators/tools/chain-monitoring#monitorism). ```yaml GETH_GCMODE: "archive" @@ -160,11 +160,11 @@ In addition to the core protocol components, the following offchain services are ### op-conductor -The [op-conductor](/builders/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](/builders/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/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 @@ -201,7 +201,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](/builders/chain-operators/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](/builders/chain-operators/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/builders/chain-operators/configuration.mdx b/pages/operators/chain-operators/configuration.mdx similarity index 54% rename from pages/builders/chain-operators/configuration.mdx rename to pages/operators/chain-operators/configuration.mdx index f8ea320f4..46e9508c5 100644 --- a/pages/builders/chain-operators/configuration.mdx +++ b/pages/operators/chain-operators/configuration.mdx @@ -11,11 +11,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/builders/chain-operators/configuration/_meta.json b/pages/operators/chain-operators/configuration/_meta.json similarity index 100% rename from pages/builders/chain-operators/configuration/_meta.json rename to pages/operators/chain-operators/configuration/_meta.json diff --git a/pages/builders/chain-operators/configuration/batcher.mdx b/pages/operators/chain-operators/configuration/batcher.mdx similarity index 99% rename from pages/builders/chain-operators/configuration/batcher.mdx rename to pages/operators/chain-operators/configuration/batcher.mdx index b06ab603b..e3f0bcf8b 100644 --- a/pages/builders/chain-operators/configuration/batcher.mdx +++ b/pages/operators/chain-operators/configuration/batcher.mdx @@ -86,7 +86,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/12VIiXHaVECG2RUunDSVJpn67IQp9NHFJqUsma2PndpE/edit) 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](/builders/chain-operators/management/blobs) for chain operators. +You can use [this calculator](https://docs.google.com/spreadsheets/d/12VIiXHaVECG2RUunDSVJpn67IQp9NHFJqUsma2PndpE/edit) 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 diff --git a/pages/builders/chain-operators/configuration/overview.mdx b/pages/operators/chain-operators/configuration/overview.mdx similarity index 80% rename from pages/builders/chain-operators/configuration/overview.mdx rename to pages/operators/chain-operators/configuration/overview.mdx index e5976b068..cfa5b6e19 100644 --- a/pages/builders/chain-operators/configuration/overview.mdx +++ b/pages/operators/chain-operators/configuration/overview.mdx @@ -23,7 +23,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](/builders/chain-operators/configuration/rollup) + * [Rollup Configuration Documentation](/operators/chain-operators/configuration/rollup) {

Batcher Configuration

} @@ -31,21 +31,21 @@ documentation for details on configuring each piece. it available for verifiers. These configurations determine the batcher's behavior. - * [Batcher Configuration Documentation](/builders/chain-operators/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](/builders/chain-operators/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](/builders/node-operators/configuration/base-config) + * [Node Configuration Documentation](/operators/node-operators/configuration/base-config) diff --git a/pages/builders/chain-operators/configuration/proposer.mdx b/pages/operators/chain-operators/configuration/proposer.mdx similarity index 100% rename from pages/builders/chain-operators/configuration/proposer.mdx rename to pages/operators/chain-operators/configuration/proposer.mdx diff --git a/pages/builders/chain-operators/configuration/rollup.mdx b/pages/operators/chain-operators/configuration/rollup.mdx similarity index 99% rename from pages/builders/chain-operators/configuration/rollup.mdx rename to pages/operators/chain-operators/configuration/rollup.mdx index 766faec29..0a846e0c9 100644 --- a/pages/builders/chain-operators/configuration/rollup.mdx +++ b/pages/operators/chain-operators/configuration/rollup.mdx @@ -275,7 +275,7 @@ How far the L2 timestamp can differ from the actual L1 timestamp. * **Default value:** None * **Recommended value:** 1800 * **Notes:** Must not be `0`. 1800 (30 minutes) is the constant that takes -effect with the [Fjord activation](/builders/node-operators/network-upgrades#fjord). +effect with the [Fjord activation](/operators/node-operators/network-upgrades#fjord). * **Standard Config Requirement:** *** @@ -306,7 +306,7 @@ transactions. After the timeout, the frame is dropped. * **Type:** Number of blocks * **Default value:** 50 * **Recommended value:** -* **Notes:** This default value was introduced in the [Granite network upgrade](/builders/node-operators/network-upgrades#granite) +* **Notes:** This default value was introduced in the [Granite network upgrade](/operators/node-operators/network-upgrades#granite) * **Standard Config Requirement:** *** diff --git a/pages/builders/chain-operators/deploy.mdx b/pages/operators/chain-operators/deploy.mdx similarity index 58% rename from pages/builders/chain-operators/deploy.mdx rename to pages/operators/chain-operators/deploy.mdx index 87e4184f6..369ad9942 100644 --- a/pages/builders/chain-operators/deploy.mdx +++ b/pages/operators/chain-operators/deploy.mdx @@ -11,9 +11,9 @@ import { Card, Cards } from 'nextra/components' This section provides information on OP Stack genesis creation, deployment overview, and smart contract deployment. You'll find guides and overviews to help you understand and work with these topics. - + - + - + diff --git a/pages/builders/chain-operators/deploy/_meta.json b/pages/operators/chain-operators/deploy/_meta.json similarity index 100% rename from pages/builders/chain-operators/deploy/_meta.json rename to pages/operators/chain-operators/deploy/_meta.json diff --git a/pages/builders/chain-operators/deploy/genesis.mdx b/pages/operators/chain-operators/deploy/genesis.mdx similarity index 92% rename from pages/builders/chain-operators/deploy/genesis.mdx rename to pages/operators/chain-operators/deploy/genesis.mdx index b25f92ac5..a980149e8 100644 --- a/pages/builders/chain-operators/deploy/genesis.mdx +++ b/pages/operators/chain-operators/deploy/genesis.mdx @@ -18,7 +18,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](/builders/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). @@ -26,7 +26,7 @@ The recommended flow for creating a genesis file and rollup configuration file o ### Prerequisites -1. You have installed the `op-deployer` binary following the instructions in [deployer docs](/builders/chain-operators/tools/op-deployer#installation). +1. You have installed the `op-deployer` binary following the instructions in [deployer docs](/operators/chain-operators/tools/op-deployer#installation). After installation, extract the `op-deployer` into your `PATH` and `cd op-deployer`. 2. You have created and customized an intent file in a `.deployer` directory, typically by running: @@ -73,7 +73,7 @@ Once you have `genesis.json` and `rollup.json`: 1. Initialize op-geth using genesis.json. 2. Configure op-node with rollup.json. -3. Set up additional off-chain infrastructure as needed (block explorer, indexers, etc.). For more on architecture, see [Architecture overview](/builders/chain-operators/architecture). +3. Set up additional off-chain infrastructure as needed (block explorer, indexers, etc.). For more on architecture, see [Architecture overview](/operators/chain-operators/architecture). ### Step 3: Get data @@ -169,7 +169,7 @@ go run cmd/main.go genesis l2 \ ## Next steps -* Learn how to [initialize](/builders/node-operators/configuration/base-config#initialization-via-genesis-file) +* Learn how to [initialize](/operators/node-operators/configuration/base-config#initialization-via-genesis-file) `op-geth` with your `genesis.json` file. -* Learn how to [initialize](https://docs.optimism.io/builders/node-operators/configuration/base-config#configuring-op-node) `op-node` with your `rollup.json` file. -* Learn more about the off chain [architecture](/builders/chain-operators/architecture). +* Learn how to [initialize](/operators/node-operators/configuration/base-config#configuring-op-node) `op-node` with your `rollup.json` file. +* Learn more about the off chain [architecture](/operators/chain-operators/architecture). diff --git a/pages/builders/chain-operators/deploy/overview.mdx b/pages/operators/chain-operators/deploy/overview.mdx similarity index 94% rename from pages/builders/chain-operators/deploy/overview.mdx rename to pages/operators/chain-operators/deploy/overview.mdx index 532c99b96..db4e5d3d8 100644 --- a/pages/builders/chain-operators/deploy/overview.mdx +++ b/pages/operators/chain-operators/deploy/overview.mdx @@ -102,6 +102,6 @@ process. ## Next steps -* Discover how to [deploy the smart contracts](/builders/chain-operators/deploy/smart-contracts). -* Find out how to create your [genesis file](/builders/chain-operators/deploy/genesis). -* Explore some chain operator [best practices](/builders/chain-operators/management/best-practices). +* 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](/operators/chain-operators/management/best-practices). diff --git a/pages/builders/chain-operators/deploy/smart-contracts.mdx b/pages/operators/chain-operators/deploy/smart-contracts.mdx similarity index 91% rename from pages/builders/chain-operators/deploy/smart-contracts.mdx rename to pages/operators/chain-operators/deploy/smart-contracts.mdx index 2a26e2f10..9b357c6e7 100644 --- a/pages/builders/chain-operators/deploy/smart-contracts.mdx +++ b/pages/operators/chain-operators/deploy/smart-contracts.mdx @@ -10,7 +10,7 @@ import { Callout } from 'nextra/components' This page is out of date and shows the legacy method for smart contract deployment. -For the latest recommended method, use [op-deployer](/builders/chain-operators/tools/op-deployer). +For the latest recommended method, use [op-deployer](/operators/chain-operators/tools/op-deployer). The following guide shows you how to deploy the OP Stack L1 smart contracts. @@ -29,7 +29,7 @@ Deploying your OP Stack contracts requires creating a deployment configuration JSON file. You will create a new deployment configuration file in the following monorepo subdirectory: [packages/contracts-bedrock/deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config) For the full set of deployment configuration options and their meanings, you -can see the [rollup deployment configuration page](/builders/chain-operators/configuration/rollup). +can see the [rollup deployment configuration page](/operators/chain-operators/configuration/rollup). ## Deployment script @@ -58,7 +58,7 @@ forge script -vvv scripts/deploy/Deploy.s.sol:Deploy --sig 'runWithStateDiff()' * `DEPLOY_CONFIG_PATH` is the path on the filesystem that points to a deployment config. The same deployment config JSON file should be used for L1 contracts deployment as when generating the L2 genesis allocs. See the [deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config) - directory for examples and the [rollup configuration page](/builders/chain-operators/configuration/rollup) + directory for examples and the [rollup configuration page](/operators/chain-operators/configuration/rollup) for descriptions of the values. * `IMPL_SALT` env var can be used to set the create2 salt for deploying the implementation contracts. @@ -97,5 +97,5 @@ operators should have a firm understanding of. ## Next steps -* Learn how to [create your genesis file](/builders/chain-operators/deploy/genesis) -* See all [configuration options](/builders/chain-operators/configuration/rollup) and example configurations +* Learn how to [create your genesis file](/operators/chain-operators/deploy/genesis) +* See all [configuration options](/operators/chain-operators/configuration/rollup) and example configurations diff --git a/pages/builders/chain-operators/features.mdx b/pages/operators/chain-operators/features.mdx similarity index 53% rename from pages/builders/chain-operators/features.mdx rename to pages/operators/chain-operators/features.mdx index e2a22d516..e62458cb4 100644 --- a/pages/builders/chain-operators/features.mdx +++ b/pages/operators/chain-operators/features.mdx @@ -13,13 +13,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, running a custom gas token chain, OP Stack preinstalls, and span batches. - + - + - + - + - + diff --git a/pages/builders/chain-operators/features/_meta.json b/pages/operators/chain-operators/features/_meta.json similarity index 100% rename from pages/builders/chain-operators/features/_meta.json rename to pages/operators/chain-operators/features/_meta.json diff --git a/pages/builders/chain-operators/features/alt-da-mode.mdx b/pages/operators/chain-operators/features/alt-da-mode.mdx similarity index 97% rename from pages/builders/chain-operators/features/alt-da-mode.mdx rename to pages/operators/chain-operators/features/alt-da-mode.mdx index 409190053..f72fa5fc6 100644 --- a/pages/builders/chain-operators/features/alt-da-mode.mdx +++ b/pages/operators/chain-operators/features/alt-da-mode.mdx @@ -31,7 +31,7 @@ You should use at least the following compatible op\* versions when running your - If you are trying to launch an Alt-DA Mode Chain using a custom gas token, follow the contract deployment instructions in our [Custom Gas Token docs](/builders/chain-operators/features/custom-gas-token.mdx). + If you are trying to launch an Alt-DA Mode Chain using a custom gas token, follow the contract deployment instructions in our [Custom Gas Token docs](/operators/chain-operators/features/custom-gas-token.mdx). @@ -92,7 +92,7 @@ You should use at least the following compatible op\* versions when running your * Chain operators are not posting everything to Ethereum, just commitments, so chain operators will need to determine fee scalars values to charge users. The fee scalar values are network throughput dependent, so values will need to be adjusted by chain operators as needed. * Cost structure for Alt-DA Mode: The transaction data is split up into 128kb chunks and then submitted to your DA Layer. Then, 32 byte commitments are submitted (goes to batch inbox address) to L1 for each 128kb chunk. Then, figure out how much that costs relative to the amount of transactions your chain is putting through. - * Set scalar values inside the deploy config. The example below shows some possible fee scalar values, calculated assuming negligible DA Layer costs, but will need to be adjusted up or down based on network throughput - as a reminder of how to set your scalar values, see [this section](https://docs.optimism.io/builders/chain-operators/management/blobs#update-your-scalar-values-for-blobs) of the docs. + * Set scalar values inside the deploy config. The example below shows some possible fee scalar values, calculated assuming negligible DA Layer costs, but will need to be adjusted up or down based on network throughput - as a reminder of how to set your scalar values, see [this section](/operators/chain-operators/management/blobs#update-your-scalar-values-for-blobs) of the docs. ``` // Set in Deploy Config diff --git a/pages/builders/chain-operators/features/bridged-usdc-standard.mdx b/pages/operators/chain-operators/features/bridged-usdc-standard.mdx similarity index 100% rename from pages/builders/chain-operators/features/bridged-usdc-standard.mdx rename to pages/operators/chain-operators/features/bridged-usdc-standard.mdx diff --git a/pages/builders/chain-operators/features/custom-gas-token.mdx b/pages/operators/chain-operators/features/custom-gas-token.mdx similarity index 98% rename from pages/builders/chain-operators/features/custom-gas-token.mdx rename to pages/operators/chain-operators/features/custom-gas-token.mdx index 59064c2ee..63cc02d1a 100644 --- a/pages/builders/chain-operators/features/custom-gas-token.mdx +++ b/pages/operators/chain-operators/features/custom-gas-token.mdx @@ -48,7 +48,7 @@ An OP Stack chain that uses the custom gas token feature enables an end user to * The [`v2.0.0-beta.3` release](https://github.com/ethereum-optimism/optimism/tree/op-contracts/v2.0.0-beta.3) -enables fee withdrawals to L1 and L2. For more details on these values, see the [Withdrawal Network](/builders/chain-operators/configuration/rollup#withdrawal-network) +enables fee withdrawals to L1 and L2. For more details on these values, see the [Withdrawal Network](/operators/chain-operators/configuration/rollup#withdrawal-network) section of the docs. * Deploy the L1 contracts from `contracts-bedrock` using the following command: diff --git a/pages/builders/chain-operators/features/preinstalls.mdx b/pages/operators/chain-operators/features/preinstalls.mdx similarity index 100% rename from pages/builders/chain-operators/features/preinstalls.mdx rename to pages/operators/chain-operators/features/preinstalls.mdx diff --git a/pages/builders/chain-operators/features/span-batches.mdx b/pages/operators/chain-operators/features/span-batches.mdx similarity index 100% rename from pages/builders/chain-operators/features/span-batches.mdx rename to pages/operators/chain-operators/features/span-batches.mdx diff --git a/pages/operators/chain-operators/management.mdx b/pages/operators/chain-operators/management.mdx new file mode 100644 index 000000000..a8137ad97 --- /dev/null +++ b/pages/operators/chain-operators/management.mdx @@ -0,0 +1,27 @@ +--- +title: Management +lang: en-US +description: >- + Learn about management in the Optimism ecosystem. This guide provides detailed + information and resources about management. +--- + +import { Card, Cards } from 'nextra/components' + +# Management + +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/builders/chain-operators/management/_meta.json b/pages/operators/chain-operators/management/_meta.json similarity index 100% rename from pages/builders/chain-operators/management/_meta.json rename to pages/operators/chain-operators/management/_meta.json diff --git a/pages/builders/chain-operators/management/best-practices.mdx b/pages/operators/chain-operators/management/best-practices.mdx similarity index 97% rename from pages/builders/chain-operators/management/best-practices.mdx rename to pages/operators/chain-operators/management/best-practices.mdx index d5bcd8ae6..ae9a80a28 100644 --- a/pages/builders/chain-operators/management/best-practices.mdx +++ b/pages/operators/chain-operators/management/best-practices.mdx @@ -80,7 +80,7 @@ GETH_TXPOOL_LIFETIME: "1h" GETH_TXPOOL_NOLOCALS: "true" ``` -For additional information about these flags, check out our [Execution Layer Configuration Options](/builders/node-operators/configuration/execution-config) 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/builders/chain-operators/management/blobs.mdx b/pages/operators/chain-operators/management/blobs.mdx similarity index 88% rename from pages/builders/chain-operators/management/blobs.mdx rename to pages/operators/chain-operators/management/blobs.mdx index 605e1b296..d84a3fd67 100644 --- a/pages/builders/chain-operators/management/blobs.mdx +++ b/pages/operators/chain-operators/management/blobs.mdx @@ -23,7 +23,7 @@ This guide walks you through how to switch to using blobs for your chain after E The first step to switching to submit data with Blobs is to calculate the scalar values you wish to set for the formula to charge users fees. To determine the scalar values to use for your chain, you can utilize this [fee parameter calculator](https://docs.google.com/spreadsheets/d/1V3CWpeUzXv5Iopw8lBSS8tWoSzyR4PDDwV9cu2kKOrs/edit) - to get a better estimate for scalar values on your chain. Input the average transaction per day your chain is processing, the types of transactions that occur on your chain, the [`OP_BATCHER_MAX_CHANNEL_DURATION`](/builders/chain-operators/configuration/batcher#setting-your--op_batcher_max_channel_duration) you have parameterized on your `op-batcher`, and the target margin you wish to charge users on top of your L1 costs. The following + to get a better estimate for scalar values on your chain. Input the average transaction per day your chain is processing, the types of transactions that occur on your chain, the [`OP_BATCHER_MAX_CHANNEL_DURATION`](/operators/chain-operators/configuration/batcher#setting-your--op_batcher_max_channel_duration) you have parameterized on your `op-batcher`, and the target margin you wish to charge users on top of your L1 costs. The following information is tuned to a network like OP Mainnet. For more details on fee scalar, see [Transaction Fees, Ecotone section](/stack/transactions/fees#ecotone). @@ -85,8 +85,8 @@ This guide walks you through how to switch to using blobs for your chain after E Steps to configure the batcher: * Configure `OP_BATCHER_DATA_AVAILABILITY_TYPE=blobs`. The batcher will have to be restarted for it to take effect. - * Ensure your `OP_BATCHER_MAX_CHANNEL_DURATION` is properly set to maximize your fee savings. See [OP Batcher Max Channel Configuration](/builders/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) for more details. - * Optionally, you can configure your batcher to support multi-blobs. See [Multi-Blob Batcher Configuration](/builders/chain-operators/configuration/batcher#configure-your-multi-blob-batcher) for more details. + * Ensure your `OP_BATCHER_MAX_CHANNEL_DURATION` is properly set to maximize your fee savings. See [OP Batcher Max Channel Configuration](/operators/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) for more details. + * Optionally, you can configure your batcher to support multi-blobs. See [Multi-Blob Batcher Configuration](/operators/chain-operators/configuration/batcher#configure-your-multi-blob-batcher) for more details. ## Switch back to using calldata @@ -128,10 +128,10 @@ blobs back to using calldata. * Configure `OP_BATCHER_DATA_AVAILABILITY_TYPE=calldata`. The batcher will have to be restarted for it to take effect. - * Ensure your `OP_BATCHER_MAX_CHANNEL_DURATION` is properly set to maximize savings. **NOTE:** While setting a high value here will lower costs, it will be less meaningful than for low throughput chains using blobs. See [OP Batcher Max Channel Configuration](/builders/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) for more details. + * Ensure your `OP_BATCHER_MAX_CHANNEL_DURATION` is properly set to maximize savings. **NOTE:** While setting a high value here will lower costs, it will be less meaningful than for low throughput chains using blobs. See [OP Batcher Max Channel Configuration](/operators/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) for more details. ## Other considerations * For information on L1 Data Fee changes related to the Ecotone upgrade, visit the [Transaction Fees page](/stack/transactions/fees#ecotone). -* If you want to enable archive nodes, you will need to access a blob archiver service. You can use [Optimism's](/builders/node-operators/management/snapshots#op-mainnet-archive-node) or [run your own](/builders/chain-operators/tools/explorer#create-an-archive-node). +* If you want to enable archive nodes, you will need to access a blob archiver service. You can use [Optimism's](/operators/node-operators/management/snapshots#op-mainnet-archive-node) or [run your own](/operators/chain-operators/tools/explorer#create-an-archive-node). diff --git a/pages/builders/chain-operators/management/key-management.mdx b/pages/operators/chain-operators/management/key-management.mdx similarity index 100% rename from pages/builders/chain-operators/management/key-management.mdx rename to pages/operators/chain-operators/management/key-management.mdx diff --git a/pages/builders/chain-operators/management/operations.mdx b/pages/operators/chain-operators/management/operations.mdx similarity index 98% rename from pages/builders/chain-operators/management/operations.mdx rename to pages/operators/chain-operators/management/operations.mdx index 0750d965d..3306c315d 100644 --- a/pages/builders/chain-operators/management/operations.mdx +++ b/pages/operators/chain-operators/management/operations.mdx @@ -193,5 +193,5 @@ If you do it this way, you won't have to wait until the transactions are written ## Next steps -* See the [Node Configuration](/builders/node-operators/configuration/base-config) 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/builders/chain-operators/management/snap-sync.mdx b/pages/operators/chain-operators/management/snap-sync.mdx similarity index 68% rename from pages/builders/chain-operators/management/snap-sync.mdx rename to pages/operators/chain-operators/management/snap-sync.mdx index 97e372754..ee7175e0d 100644 --- a/pages/builders/chain-operators/management/snap-sync.mdx +++ b/pages/operators/chain-operators/management/snap-sync.mdx @@ -15,7 +15,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](/builders/node-operators/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 @@ -23,8 +23,8 @@ To enable snap sync, chain operators need to spin up a node which is exposed to For snap sync, all `op-geth` nodes should expose port `30303` TCP and `30303` UDP to easily find other op-geth nodes to sync from. - * If you set the port with [`--discovery.port`](/builders/node-operators/configuration/execution-config#discoveryport), then you must open the port specified for UDP. - * If you set [`--port`](/builders/node-operators/configuration/execution-config#port), then you must open the port specified for TCP. + * If you set the port with [`--discovery.port`](/operators/node-operators/configuration/execution-config#discoveryport), then you must open the port specified for UDP. + * If you set [`--port`](/operators/node-operators/configuration/execution-config#port), then you must open the port specified for TCP. * The only exception is for sequencers and transaction ingress nodes. @@ -32,14 +32,14 @@ For snap sync, all `op-geth` nodes should expose port `30303` TCP and `30303` UD ### Setup a snap sync node * Expose port `30303` (`op-geth`'s default discovery port) to the internet on TCP and UDP. - * Disable transaction gossip with the [`--rollup.disabletxpoolgossip`](/builders/node-operators/configuration/execution-config#rollupdisabletxpoolgossip) flag + * Disable transaction gossip with the [`--rollup.disabletxpoolgossip`](/operators/node-operators/configuration/execution-config#rollupdisabletxpoolgossip) flag ### Enable snap sync on your network - * Follow the [Node operator snap sync guide](/builders/node-operators/management/snap-sync#enable-snap-sync-for-your-node) to enable snap sync for your chain network. + * Follow the [Node operator snap sync guide](/operators/node-operators/management/snap-sync#enable-snap-sync-for-your-node) to enable snap sync for your chain network. ## Next Steps -* See the [Node configuration](/builders/node-operators/configuration/base-config#configuration) guide for additional explanation or customization. +* See the [Node configuration](/operators/node-operators/configuration/base-config#configuration) 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/builders/chain-operators/management/troubleshooting.mdx b/pages/operators/chain-operators/management/troubleshooting.mdx similarity index 100% rename from pages/builders/chain-operators/management/troubleshooting.mdx rename to pages/operators/chain-operators/management/troubleshooting.mdx diff --git a/pages/builders/chain-operators/self-hosted.mdx b/pages/operators/chain-operators/self-hosted.mdx similarity index 80% rename from pages/builders/chain-operators/self-hosted.mdx rename to pages/operators/chain-operators/self-hosted.mdx index 018b6a63e..d34193fe2 100644 --- a/pages/builders/chain-operators/self-hosted.mdx +++ b/pages/operators/chain-operators/self-hosted.mdx @@ -19,14 +19,14 @@ 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](/builders/chain-operators/architecture) guide. + * **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), [L2 predeploy contracts](/stack/smart-contracts), - and [L2 preinstall contracts](/builders/chain-operators/features/preinstalls) + 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](/builders/chain-operators/features/preinstalls), making them usable as soon as a chain is initialized on the OP Stack. + * **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. @@ -35,7 +35,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](/builders/chain-operators/tutorials/create-l2-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 @@ -45,22 +45,22 @@ 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](/builders/chain-operators/management/key-management). + * 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](/builders/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](/builders/chain-operators/management/blobs) instead of call data to maximize your fee savings. - * Enable [snap sync](/builders/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](/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

} - * Set the [public RPC Endpoint](/builders/chain-operators/architecture), so your OP Chain can handle large volumes of RPC requests from your users. + * Set the [public RPC Endpoint](/operators/chain-operators/architecture), so your OP Chain can handle large volumes of RPC requests from your users. {

Enable Analytics for Onchain Data

} - * Enable [analytics tracking for your OP Chain](/builders/node-operators/management/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 @@ -72,15 +72,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](/builders/tools/build/block-explorers) to use with your OP Chain. - * Option 2: Deploy your own block explorer for your OP Chain, such as [Blockscout](/builders/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](/builders/app-developers/tutorials/sdk-trace-txns) using the SDK or viem. + * Trace [deposits and withdrawals](/app-developers/tutorials/sdk-trace-txns) using the SDK or viem. * Run [basic transaction tests](https://metamask.io/) using Metamask. diff --git a/pages/operators/chain-operators/tools.mdx b/pages/operators/chain-operators/tools.mdx new file mode 100644 index 000000000..3238c2873 --- /dev/null +++ b/pages/operators/chain-operators/tools.mdx @@ -0,0 +1,27 @@ +--- +title: Tools +lang: en-US +description: >- + Learn about tools in the Optimism ecosystem. This guide provides detailed + information and resources about tools. +--- + +import { Card, Cards } from 'nextra/components' + +# 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/builders/chain-operators/tools/_meta.json b/pages/operators/chain-operators/tools/_meta.json similarity index 78% rename from pages/builders/chain-operators/tools/_meta.json rename to pages/operators/chain-operators/tools/_meta.json index 990ea87a2..40fdb8480 100644 --- a/pages/builders/chain-operators/tools/_meta.json +++ b/pages/operators/chain-operators/tools/_meta.json @@ -5,5 +5,6 @@ "op-conductor": "op-conductor", "op-deployer": "op-deployer", "op-txproxy": "op-txproxy", - "proxyd": "proxyd" + "proxyd": "proxyd", + "fee-calculator": "Fee calculator" } diff --git a/pages/builders/chain-operators/tools/chain-monitoring.mdx b/pages/operators/chain-operators/tools/chain-monitoring.mdx similarity index 94% rename from pages/builders/chain-operators/tools/chain-monitoring.mdx rename to pages/operators/chain-operators/tools/chain-monitoring.mdx index 1dac6ef35..22e154211 100644 --- a/pages/builders/chain-operators/tools/chain-monitoring.mdx +++ b/pages/operators/chain-operators/tools/chain-monitoring.mdx @@ -86,8 +86,8 @@ 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](/builders/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](/builders/node-operators/management/metrics#important-metrics) for important metrics to track specifically for `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. +See [this curated list](/operators/node-operators/management/metrics#important-metrics) for important metrics to track specifically for `op-node`. ### `op-geth` @@ -97,13 +97,13 @@ To enable metrics, pass the `--metrics.enabled` flag to the op-geth. You can cus To enable metrics, pass the `--metrics.enabled` flag to the op-proposer. You can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively. -You can find more information about these flags in our [Proposer configuration doc](/builders/chain-operators/configuration/proposer#metricsenabled). +You can find more information about these flags in our [Proposer configuration doc](/operators/chain-operators/configuration/proposer#metricsenabled). ### `op-batcher` To enable metrics, pass the `--metrics.enabled` flag to the op-batcher. You can customize the metrics port and address via the `--metrics.port` and `--metrics.addr` flags, respectively. -You can find more information about these flags in our [Batcher configuration doc](/builders/chain-operators/configuration/proposer#metricsenabled). +You can find more information about these flags in our [Batcher configuration doc](/operators/chain-operators/configuration/proposer#metricsenabled). ### `op-challenger` diff --git a/pages/builders/chain-operators/tools/explorer.mdx b/pages/operators/chain-operators/tools/explorer.mdx similarity index 100% rename from pages/builders/chain-operators/tools/explorer.mdx rename to pages/operators/chain-operators/tools/explorer.mdx diff --git a/pages/builders/tools/fee-calculator.mdx b/pages/operators/chain-operators/tools/fee-calculator.mdx similarity index 100% rename from pages/builders/tools/fee-calculator.mdx rename to pages/operators/chain-operators/tools/fee-calculator.mdx diff --git a/pages/builders/chain-operators/tools/op-challenger.mdx b/pages/operators/chain-operators/tools/op-challenger.mdx similarity index 100% rename from pages/builders/chain-operators/tools/op-challenger.mdx rename to pages/operators/chain-operators/tools/op-challenger.mdx diff --git a/pages/builders/chain-operators/tools/op-conductor.mdx b/pages/operators/chain-operators/tools/op-conductor.mdx similarity index 99% rename from pages/builders/chain-operators/tools/op-conductor.mdx rename to pages/operators/chain-operators/tools/op-conductor.mdx index 50acf2fcb..2d3714ff5 100644 --- a/pages/builders/chain-operators/tools/op-conductor.mdx +++ b/pages/operators/chain-operators/tools/op-conductor.mdx @@ -36,7 +36,7 @@ The design of the `op-conductor` provides the following guarantees: ## Design -![op-conductor.](/img/builders/chain-operators/op-conductor.svg) +![op-conductor.](/img/operators/chain-operators/op-conductor.svg) **On a high level, `op-conductor` serves the following functions:** diff --git a/pages/builders/chain-operators/tools/op-deployer.mdx b/pages/operators/chain-operators/tools/op-deployer.mdx similarity index 100% rename from pages/builders/chain-operators/tools/op-deployer.mdx rename to pages/operators/chain-operators/tools/op-deployer.mdx diff --git a/pages/builders/chain-operators/tools/op-txproxy.mdx b/pages/operators/chain-operators/tools/op-txproxy.mdx similarity index 100% rename from pages/builders/chain-operators/tools/op-txproxy.mdx rename to pages/operators/chain-operators/tools/op-txproxy.mdx diff --git a/pages/builders/chain-operators/tools/proxyd.mdx b/pages/operators/chain-operators/tools/proxyd.mdx similarity index 89% rename from pages/builders/chain-operators/tools/proxyd.mdx rename to pages/operators/chain-operators/tools/proxyd.mdx index e2b7cf6ef..51a43b7c4 100644 --- a/pages/builders/chain-operators/tools/proxyd.mdx +++ b/pages/operators/chain-operators/tools/proxyd.mdx @@ -69,8 +69,8 @@ Extensive metrics are available to monitor request latency, error rates, backend ## Next steps -* Read about the [OP Stack chain architecture](/builders/chain-operators/architecture). -* Find out how you can support [snap sync](/builders/chain-operators/management/snap-sync). +* 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). on your chain. -* Find out how you can utilize [blob space](/builders/chain-operators/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/builders/chain-operators/tutorials.mdx b/pages/operators/chain-operators/tutorials.mdx similarity index 52% rename from pages/builders/chain-operators/tutorials.mdx rename to pages/operators/chain-operators/tutorials.mdx index 6b2387f7a..199a2b939 100644 --- a/pages/builders/chain-operators/tutorials.mdx +++ b/pages/operators/chain-operators/tutorials.mdx @@ -13,15 +13,15 @@ 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/builders/chain-operators/tutorials/_meta.json b/pages/operators/chain-operators/tutorials/_meta.json similarity index 100% rename from pages/builders/chain-operators/tutorials/_meta.json rename to pages/operators/chain-operators/tutorials/_meta.json diff --git a/pages/builders/chain-operators/tutorials/adding-derivation-attributes.mdx b/pages/operators/chain-operators/tutorials/adding-derivation-attributes.mdx similarity index 100% rename from pages/builders/chain-operators/tutorials/adding-derivation-attributes.mdx rename to pages/operators/chain-operators/tutorials/adding-derivation-attributes.mdx diff --git a/pages/builders/chain-operators/tutorials/adding-precompiles.mdx b/pages/operators/chain-operators/tutorials/adding-precompiles.mdx similarity index 100% rename from pages/builders/chain-operators/tutorials/adding-precompiles.mdx rename to pages/operators/chain-operators/tutorials/adding-precompiles.mdx diff --git a/pages/builders/chain-operators/tutorials/create-l2-rollup.mdx b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx similarity index 98% rename from pages/builders/chain-operators/tutorials/create-l2-rollup.mdx rename to pages/operators/chain-operators/tutorials/create-l2-rollup.mdx index 0796b6b22..94d7acf3e 100644 --- a/pages/builders/chain-operators/tutorials/create-l2-rollup.mdx +++ b/pages/operators/chain-operators/tutorials/create-l2-rollup.mdx @@ -22,7 +22,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](/builders/chain-operators/deploy/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**. @@ -635,7 +635,7 @@ You can add the following options to the `op-node` command to enable peer-to-pee --p2p.listen.udp=9003 \ ``` -You can alternatively also remove the [--p2p.static](/builders/node-operators/configuration/consensus-config#p2pstatic) option, but you may see failed requests from other chains using the same chain ID. +You can alternatively also remove the [--p2p.static](/operators/node-operators/configuration/consensus-config#p2pstatic) option, but you may see failed requests from other chains using the same chain ID.
@@ -681,7 +681,7 @@ cd ~/optimism/op-batcher ``` -The [`--max-channel-duration=n`](/builders/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) setting tells the batcher to write all the data to L1 every `n` L1 blocks. +The [`--max-channel-duration=n`](/operators/chain-operators/configuration/batcher#set-your--op_batcher_max_channel_duration) setting tells the batcher to write all the data to L1 every `n` L1 blocks. When it is low, transactions are written to L1 frequently and other nodes can synchronize from L1 quickly. When it is high, transactions are written to L1 less frequently and the batcher spends less ETH. If you want to reduce costs, either set this value to 0 to disable it or increase it to a higher value. diff --git a/pages/builders/chain-operators/tutorials/integrating-da-layer.mdx b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx similarity index 93% rename from pages/builders/chain-operators/tutorials/integrating-da-layer.mdx rename to pages/operators/chain-operators/tutorials/integrating-da-layer.mdx index 8627d4385..63ce7762a 100644 --- a/pages/builders/chain-operators/tutorials/integrating-da-layer.mdx +++ b/pages/operators/chain-operators/tutorials/integrating-da-layer.mdx @@ -42,7 +42,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](/builders/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](/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/builders/chain-operators/tutorials/modifying-predeploys.mdx b/pages/operators/chain-operators/tutorials/modifying-predeploys.mdx similarity index 100% rename from pages/builders/chain-operators/tutorials/modifying-predeploys.mdx rename to pages/operators/chain-operators/tutorials/modifying-predeploys.mdx diff --git a/pages/operators/node-operators.mdx b/pages/operators/node-operators.mdx new file mode 100644 index 000000000..81a4b9a03 --- /dev/null +++ b/pages/operators/node-operators.mdx @@ -0,0 +1,29 @@ +--- +title: Node Operators +description: Documentation covering Architecture, Configuration, Json Rpc, Management, Network Upgrades, Releases, Rollup Node, Tutorials in the Node Operators section of the OP Stack ecosystem. +lang: en-US +--- + +import { Card, Cards } from 'nextra/components' + +# Node Operators + +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/builders/node-operators/_meta.json b/pages/operators/node-operators/_meta.json similarity index 100% rename from pages/builders/node-operators/_meta.json rename to pages/operators/node-operators/_meta.json diff --git a/pages/builders/node-operators/architecture.mdx b/pages/operators/node-operators/architecture.mdx similarity index 95% rename from pages/builders/node-operators/architecture.mdx rename to pages/operators/node-operators/architecture.mdx index 014f7b8dc..d7de1dc35 100644 --- a/pages/builders/node-operators/architecture.mdx +++ b/pages/operators/node-operators/architecture.mdx @@ -37,6 +37,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](/builders/node-operators/tutorials/node-from-docker) or [build a node from source](/builders/node-operators/tutorials/node-from-source) 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. * 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/builders/node-operators/configuration.mdx b/pages/operators/node-operators/configuration.mdx similarity index 73% rename from pages/builders/node-operators/configuration.mdx rename to pages/operators/node-operators/configuration.mdx index da2c8f8a8..12b895d1d 100644 --- a/pages/builders/node-operators/configuration.mdx +++ b/pages/operators/node-operators/configuration.mdx @@ -13,9 +13,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/builders/node-operators/configuration/_meta.json b/pages/operators/node-operators/configuration/_meta.json similarity index 100% rename from pages/builders/node-operators/configuration/_meta.json rename to pages/operators/node-operators/configuration/_meta.json diff --git a/pages/builders/node-operators/configuration/base-config.mdx b/pages/operators/node-operators/configuration/base-config.mdx similarity index 95% rename from pages/builders/node-operators/configuration/base-config.mdx rename to pages/operators/node-operators/configuration/base-config.mdx index 610fd7fe6..8bc79043d 100644 --- a/pages/builders/node-operators/configuration/base-config.mdx +++ b/pages/operators/node-operators/configuration/base-config.mdx @@ -30,7 +30,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](/builders/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](/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. @@ -138,8 +138,8 @@ 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](/builders/node-operators/network-upgrades#ecotone) -node operators must set an L1 beacon value to retrieve [blobs](/builders/node-operators/management/blobs) +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) from a Beacon node. @@ -217,6 +217,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](/builders/node-operators/configuration/consensus-config) guide for additional configuration options for `op-node` and the Consensus-Layer. -* Similarly, visit the [op-geth configuration](/builders/node-operators/configuration/execution-config) 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. +* Similarly, visit the [op-geth configuration](/operators/node-operators/configuration/execution-config) 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/builders/node-operators/configuration/consensus-config.mdx b/pages/operators/node-operators/configuration/consensus-config.mdx similarity index 99% rename from pages/builders/node-operators/configuration/consensus-config.mdx rename to pages/operators/node-operators/configuration/consensus-config.mdx index 48246b162..246ed538b 100644 --- a/pages/builders/node-operators/configuration/consensus-config.mdx +++ b/pages/operators/node-operators/configuration/consensus-config.mdx @@ -592,7 +592,7 @@ Hex-encoded private key for signing off on p2p application messages as sequencer ### p2p.static -Comma-separated multiaddr-format(an unsigned address, containing: IP, TCP port, [PeerID](/builders/node-operators/json-rpc#opp2p_self)) peer list. Static connections to make and +Comma-separated multiaddr-format(an unsigned address, containing: IP, TCP port, [PeerID](/operators/node-operators/json-rpc#opp2p_self)) peer list. Static connections to make and maintain, these peers will be regarded as trusted. Addresses of the local peer are ignored. Duplicate/Alternative addresses for the same peer all apply, but only a single connection per peer is maintained. diff --git a/pages/builders/node-operators/configuration/execution-config.mdx b/pages/operators/node-operators/configuration/execution-config.mdx similarity index 100% rename from pages/builders/node-operators/configuration/execution-config.mdx rename to pages/operators/node-operators/configuration/execution-config.mdx diff --git a/pages/builders/node-operators/json-rpc.mdx b/pages/operators/node-operators/json-rpc.mdx similarity index 99% rename from pages/builders/node-operators/json-rpc.mdx rename to pages/operators/node-operators/json-rpc.mdx index 1f0ca452c..8131d9a9b 100644 --- a/pages/builders/node-operators/json-rpc.mdx +++ b/pages/operators/node-operators/json-rpc.mdx @@ -14,7 +14,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://optimistic.etherscan.io/address/0x420000000000000000000000000000000000000F#readProxyContract#F11). - If you want to estimate the cost of a transaction, you can [use the SDK](/builders/app-developers/tutorials/sdk-estimate-costs). + If you want to estimate the cost of a transaction, you can [use the SDK](/app-developers/tutorials/sdk-estimate-costs). ## op-node diff --git a/pages/builders/node-operators/management.mdx b/pages/operators/node-operators/management.mdx similarity index 51% rename from pages/builders/node-operators/management.mdx rename to pages/operators/node-operators/management.mdx index 428a4593d..865817fd6 100644 --- a/pages/builders/node-operators/management.mdx +++ b/pages/operators/node-operators/management.mdx @@ -13,13 +13,13 @@ 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/builders/node-operators/management/_meta.json b/pages/operators/node-operators/management/_meta.json similarity index 100% rename from pages/builders/node-operators/management/_meta.json rename to pages/operators/node-operators/management/_meta.json diff --git a/pages/builders/node-operators/management/blobs.mdx b/pages/operators/node-operators/management/blobs.mdx similarity index 98% rename from pages/builders/node-operators/management/blobs.mdx rename to pages/operators/node-operators/management/blobs.mdx index 5f738f79f..d80ca9353 100644 --- a/pages/builders/node-operators/management/blobs.mdx +++ b/pages/operators/node-operators/management/blobs.mdx @@ -22,7 +22,7 @@ These steps are necessary for EVERY node operator: ### Update to the latest release -See the [Software Releases](/builders/node-operators/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/builders/node-operators/management/metrics.mdx b/pages/operators/node-operators/management/metrics.mdx similarity index 100% rename from pages/builders/node-operators/management/metrics.mdx rename to pages/operators/node-operators/management/metrics.mdx diff --git a/pages/builders/node-operators/management/snap-sync.mdx b/pages/operators/node-operators/management/snap-sync.mdx similarity index 88% rename from pages/builders/node-operators/management/snap-sync.mdx rename to pages/operators/node-operators/management/snap-sync.mdx index 68bf869c9..bef6bbc91 100644 --- a/pages/builders/node-operators/management/snap-sync.mdx +++ b/pages/operators/node-operators/management/snap-sync.mdx @@ -23,8 +23,8 @@ This means that performing a Snap Sync is significantly faster than performing a For snap sync, all `op-geth` nodes should expose port `30303` TCP and `30303` UDP to easily find other op-geth nodes to sync from. - * If you set the port with [`--discovery.port`](/builders/node-operators/configuration/execution-config#discoveryport), then you must open the port specified for UDP. - * If you set [`--port`](/builders/node-operators/configuration/execution-config#port), then you must open the port specified for TCP. + * If you set the port with [`--discovery.port`](/operators/node-operators/configuration/execution-config#discoveryport), then you must open the port specified for UDP. + * If you set [`--port`](/operators/node-operators/configuration/execution-config#port), then you must open the port specified for TCP. * The only exception is for sequencers and transaction ingress nodes. @@ -102,6 +102,6 @@ To enable execution layer sync for these clients, set the following flags on `op ## Next steps -* See the [Node Configuration](/builders/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](/builders/chain-operators/management/snap-sync). +* 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). * 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/builders/node-operators/management/snapshots.mdx b/pages/operators/node-operators/management/snapshots.mdx similarity index 100% rename from pages/builders/node-operators/management/snapshots.mdx rename to pages/operators/node-operators/management/snapshots.mdx diff --git a/pages/builders/node-operators/management/troubleshooting.mdx b/pages/operators/node-operators/management/troubleshooting.mdx similarity index 100% rename from pages/builders/node-operators/management/troubleshooting.mdx rename to pages/operators/node-operators/management/troubleshooting.mdx diff --git a/pages/builders/node-operators/network-upgrades.mdx b/pages/operators/node-operators/network-upgrades.mdx similarity index 99% rename from pages/builders/node-operators/network-upgrades.mdx rename to pages/operators/node-operators/network-upgrades.mdx index 7e342318a..9ef8b8cc1 100644 --- a/pages/builders/node-operators/network-upgrades.mdx +++ b/pages/operators/node-operators/network-upgrades.mdx @@ -72,5 +72,5 @@ then the software is deployed on production networks. ## More information -* To check for the latest node software, see the [Software Releases](/builders/node-operators/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/). diff --git a/pages/builders/node-operators/releases.mdx b/pages/operators/node-operators/releases.mdx similarity index 100% rename from pages/builders/node-operators/releases.mdx rename to pages/operators/node-operators/releases.mdx diff --git a/pages/builders/node-operators/rollup-node.mdx b/pages/operators/node-operators/rollup-node.mdx similarity index 60% rename from pages/builders/node-operators/rollup-node.mdx rename to pages/operators/node-operators/rollup-node.mdx index e957c460b..32bc050a1 100644 --- a/pages/builders/node-operators/rollup-node.mdx +++ b/pages/operators/node-operators/rollup-node.mdx @@ -19,19 +19,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](/builders/node-operators/architecture) guide. - * **Network Upgrades**: Network upgrades for OP Stack rollup nodes are generally [activated by timestamps](/builders/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](/builders/node-operators/network-upgrades#upgrade-process) to avoid chain divergence. + * **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](/builders/node-operators/management/snapshots). This is **not required** for nodes using [snap sync](/builders/node-operators/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](/builders/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](/builders/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](/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 @@ -41,17 +41,17 @@ 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](/builders/node-operators/configuration/base-config#working-base-configuration). - * Set the [recommended flags for `op-geth`](/builders/node-operators/configuration/base-config#recommended-flags-for-op-geth-configuration) to follow best practices for configuring OP Stack rollup nodes. - * Configure `op-node` using the [base configuration](/builders/node-operators/configuration/base-config#working-base-configuration-1). + * 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 `op-node` using the [base configuration](/operators/node-operators/configuration/base-config#working-base-configuration-1). {

Enable Snap Sync

} - * Enable [snap sync](/builders/node-operators/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`](/builders/node-operators/configuration/execution-config) and [`op-node`](/builders/node-operators/configuration/consensus-config), respectively. + Additional configuration options exist for [`op-geth`](/operators/node-operators/configuration/execution-config) and [`op-node`](/operators/node-operators/configuration/consensus-config), respectively.
@@ -65,17 +65,17 @@ 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](/builders/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](/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](/builders/node-operators/tutorials/testnet) tutorial. - * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/builders/node-operators/tutorials/mainnet) 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/testnet) tutorial. + * **Option 2:** Follow the [Running an OP Mainnet Node from Source](/operators/node-operators/tutorials/mainnet) tutorial, if you plan to run a full node or archive node. {

Update Node Log Level

} As part of running your rollup node, you may want to adjust the log level for more or less granular feedback when debugging. - * Update node [log level](/builders/node-operators/configuration/consensus-config#loglevel) based on individual needs. For more details, see the guide on [Geth Logs](https://geth.ethereum.org/docs/fundamentals/logs). + * Update node [log level](/operators/node-operators/configuration/consensus-config#loglevel) based on individual needs. For more details, see the guide on [Geth Logs](https://geth.ethereum.org/docs/fundamentals/logs). ## Monitor your node @@ -85,7 +85,7 @@ It is important to regularly monitor your node, and you can optionally configure {

Enable the Metrics Port

} - * Enable the [metrics port](/builders/node-operators/management/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

} @@ -103,8 +103,8 @@ 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](/builders/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) +* 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). ## Node operator tutorials @@ -123,5 +123,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](/builders/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](/builders/node-operators/management/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/builders/node-operators/tutorials.mdx b/pages/operators/node-operators/tutorials.mdx similarity index 56% rename from pages/builders/node-operators/tutorials.mdx rename to pages/operators/node-operators/tutorials.mdx index de908fd0f..c2979638f 100644 --- a/pages/builders/node-operators/tutorials.mdx +++ b/pages/operators/node-operators/tutorials.mdx @@ -13,11 +13,11 @@ import { Card, Cards } from 'nextra/components' This section provides information on various node operations. It covers running an OP Mainnet node from source, running a node with Docker, building a node from source, and running an OP Sepolia node from source. You'll find tutorials and guides to help you understand and work with these topics. - + - + - + - + diff --git a/pages/builders/node-operators/tutorials/_meta.json b/pages/operators/node-operators/tutorials/_meta.json similarity index 100% rename from pages/builders/node-operators/tutorials/_meta.json rename to pages/operators/node-operators/tutorials/_meta.json diff --git a/pages/builders/node-operators/tutorials/mainnet.mdx b/pages/operators/node-operators/tutorials/mainnet.mdx similarity index 94% rename from pages/builders/node-operators/tutorials/mainnet.mdx rename to pages/operators/node-operators/tutorials/mainnet.mdx index 4ae527e4e..96fa233a4 100644 --- a/pages/builders/node-operators/tutorials/mainnet.mdx +++ b/pages/operators/node-operators/tutorials/mainnet.mdx @@ -44,7 +44,7 @@ Based on these trends, node operators should plan for future storage needs and c ### Assess blob archiver Assess if you need to configure a blob archiver service by reading the -[Configure a Blob Archiver documentation](/builders/node-operators/management/blobs#configure-a-blob-archiver-archive-nodes). +[Configure a Blob Archiver documentation](/operators/node-operators/management/blobs#configure-a-blob-archiver-archive-nodes). ### Create a JWT secret @@ -89,7 +89,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](/builders/node-operators/configuration/execution-config) for more detailed information about available options. + Refer to the `op-geth` [configuration documentation](/operators/node-operators/configuration/execution-config) for more detailed information about available options. ```bash ./build/bin/geth \ @@ -138,7 +138,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](/builders/node-operators/configuration/consensus-config) 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 @@ -146,7 +146,7 @@ Once you've started `op-geth`, you can start `op-node`. - Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/builders/node-operators/management/snap-sync) + Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/operators/node-operators/management/snap-sync) and remove the need to initialize the node with a data directory. @@ -275,7 +275,7 @@ In this section, you'll learn how to download and verify the pre-migrated databa Click the link below to find the latest publicly available database snapshots for OP Mainnet. Snapshots are available for multiple dates and snapshots get larger as they get closer to the current date. Snapshots are large files and may take some time to download. - [OP Mainnet Snapshots](/builders/node-operators/management/snapshots#op-mainnet) + [OP Mainnet Snapshots](/operators/node-operators/management/snapshots#op-mainnet) {

Verify the Download

} @@ -300,7 +300,7 @@ In this section, you'll learn how to download and verify the pre-migrated databa ``` Your exact output will depend on the snapshot you've downloaded. - Check the [OP Mainnet Snapshots](/builders/node-operators/management/snapshots#op-mainnet) page for the correct checksum for the snapshot you've downloaded. + Check the [OP Mainnet Snapshots](/operators/node-operators/management/snapshots#op-mainnet) page for the correct checksum for the snapshot you've downloaded. {

Extract the Data Directory

} @@ -337,7 +337,7 @@ If you want to run a full node then you can safely skip this section. Click the link below to download the latest publicly available database snapshot for Legacy Geth. This is a very large file (2.9TB), so expect the download to take some time to complete. - [Legacy Geth Data Directory (2.9TB)](/builders/node-operators/management/snapshots#op-mainnet-legacy) + [Legacy Geth Data Directory (2.9TB)](/operators/node-operators/management/snapshots#op-mainnet-legacy) {

Verify the Download

} diff --git a/pages/builders/node-operators/tutorials/node-from-docker.mdx b/pages/operators/node-operators/tutorials/node-from-docker.mdx similarity index 100% rename from pages/builders/node-operators/tutorials/node-from-docker.mdx rename to pages/operators/node-operators/tutorials/node-from-docker.mdx diff --git a/pages/builders/node-operators/tutorials/node-from-source.mdx b/pages/operators/node-operators/tutorials/node-from-source.mdx similarity index 100% rename from pages/builders/node-operators/tutorials/node-from-source.mdx rename to pages/operators/node-operators/tutorials/node-from-source.mdx diff --git a/pages/builders/node-operators/tutorials/testnet.mdx b/pages/operators/node-operators/tutorials/testnet.mdx similarity index 94% rename from pages/builders/node-operators/tutorials/testnet.mdx rename to pages/operators/node-operators/tutorials/testnet.mdx index bec9846dc..96b6bda28 100644 --- a/pages/builders/node-operators/tutorials/testnet.mdx +++ b/pages/operators/node-operators/tutorials/testnet.mdx @@ -29,7 +29,7 @@ Below are suggested minimum hardware requirements for each type of node. ## Assess blob archiver Assess if you need to configure a blob archiver service by reading the -[Configure a Blob Archiver documentation](/builders/node-operators/management/blobs#configure-a-blob-archiver-archive-nodes). +[Configure a Blob Archiver documentation](/operators/node-operators/management/blobs#configure-a-blob-archiver-archive-nodes). ## Create a JWT secret @@ -75,7 +75,7 @@ export DATADIR_PATH=... # Path to the folder where geth data will be stored 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](/builders/node-operators/configuration/execution-config) for more detailed information about available options. +Refer to the `op-geth` [configuration documentation](/operators/node-operators/configuration/execution-config) for more detailed information about available options. * Set `--syncmode=execution-layer` on `op-node` if you don't set `--syncmode=full` here on op-geth. @@ -132,7 +132,7 @@ export L1_BEACON_URL=... # URL address for the L1 Beacon-node HTTP endpoint to u {

Start op-node

} Use the following command to start `op-node` in a default configuration. -Refer to the `op-node` [configuration documentation](/builders/node-operators/configuration/consensus-config) 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 @@ -140,7 +140,7 @@ Refer to the `op-node` [configuration documentation](/builders/node-operators/co -Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/builders/node-operators/management/snap-sync). +Sync mode is set to `--syncmode=execution-layer` to enable [snap sync](/operators/node-operators/management/snap-sync). ```bash diff --git a/pages/stack/_meta.json b/pages/stack/_meta.json index 83c33a773..be8940ea9 100644 --- a/pages/stack/_meta.json +++ b/pages/stack/_meta.json @@ -1,5 +1,9 @@ { - "getting-started": "Getting started: OP Stack", + "--- OP Stack": { + "title": "OP Stack", + "type": "separator" + }, + "getting-started": "Getting Started with OP Stack", "fact-sheet": "Fact sheet", "differences": "Differences between Ethereum and OP Stack chains", "design-principles": "Design philosophy & principles", @@ -11,8 +15,16 @@ "transactions": "Transactions", "features": "Features", "security": "Security", - "--- EXPERIMENTAL": { - "title": "EXPERIMENTAL", + "chain": { + "title": "OP Mainnet", + "display": "hidden" + }, + "+++ Experimental": { + "title": "", + "type": "separator" + }, + "--- Experimental": { + "title": "Experimental", "type": "separator" }, "opcm": "OP Contracts Manager", diff --git a/pages/stack/beta-features/alt-da-mode.mdx b/pages/stack/beta-features/alt-da-mode.mdx index 61546d8e9..a72c26e02 100644 --- a/pages/stack/beta-features/alt-da-mode.mdx +++ b/pages/stack/beta-features/alt-da-mode.mdx @@ -41,7 +41,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](/builders/chain-operators/features/alt-da-mode). +* 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). ## FAQs diff --git a/pages/stack/beta-features/custom-gas-token.mdx b/pages/stack/beta-features/custom-gas-token.mdx index 3e25e1a86..f4afb9271 100644 --- a/pages/stack/beta-features/custom-gas-token.mdx +++ b/pages/stack/beta-features/custom-gas-token.mdx @@ -71,7 +71,7 @@ The custom token being used must adhere to the following constraints to be able ## Next steps -* Ready to get started? Read our guide on how to [deploy your custom gas token chain](/builders/chain-operators/features/custom-gas-token). +* Ready to get started? Read our guide on how to [deploy your custom gas token chain](/operators/chain-operators/features/custom-gas-token). * For more info about how the custom gas token feature works under the hood, [check out the specs](https://specs.optimism.io/experimental/custom-gas-token.html). ## FAQs diff --git a/pages/stack/components.mdx b/pages/stack/components.mdx index bb658e97f..2c879bbef 100644 --- a/pages/stack/components.mdx +++ b/pages/stack/components.mdx @@ -83,7 +83,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) (called [withdrawal transactions](/builders/app-developers/bridging/messaging)) +* [Specifications](https://specs.optimism.io/protocol/withdrawals.html) (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/dev-node.mdx b/pages/stack/dev-node.mdx index 00dc18d14..846356cb5 100644 --- a/pages/stack/dev-node.mdx +++ b/pages/stack/dev-node.mdx @@ -19,7 +19,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](/builders/chain-operators/deploy/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 diff --git a/pages/stack/fault-proofs/challenger.mdx b/pages/stack/fault-proofs/challenger.mdx index d6e12aa17..d1d9b4480 100644 --- a/pages/stack/fault-proofs/challenger.mdx +++ b/pages/stack/fault-proofs/challenger.mdx @@ -84,7 +84,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](/builders/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/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). ## FAQs diff --git a/pages/stack/features/send-raw-transaction-conditional.mdx b/pages/stack/features/send-raw-transaction-conditional.mdx index 7f237b9bb..1d0e6bf3b 100644 --- a/pages/stack/features/send-raw-transaction-conditional.mdx +++ b/pages/stack/features/send-raw-transaction-conditional.mdx @@ -59,5 +59,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](/builders/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 bf437307b..db0e20185 100644 --- a/pages/stack/getting-started.mdx +++ b/pages/stack/getting-started.mdx @@ -16,7 +16,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](/builders/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](/builders/app-developers/overview) and [wallet](/builders/app-developers/overview). +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/overview) and [wallet](/app-developers/overview). ## The OP Stack powers Optimism diff --git a/pages/stack/interop/explainer.mdx b/pages/stack/interop/explainer.mdx index 759694683..2ad26b111 100644 --- a/pages/stack/interop/explainer.mdx +++ b/pages/stack/interop/explainer.mdx @@ -31,7 +31,7 @@ Interoperability provides the following benefits: 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). Interoperability among OP Stack chains is enabled via a new service called [*OP Supervisor*](/stack/interop/op-supervisor). -Every node operator is expected to run this service in addition to the [rollup node](/builders/node-operators/architecture#rollup-node) and [execution client](/builders/node-operators/architecture#execution-client). +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 @@ -138,7 +138,7 @@ flowchart LR B1 --> C0 ``` -Interop expands the scope of trust for unsafe blocks (blocks that are shared through [the gossip protocol](/builders/chain-operators/architecture#sequencer)). +Interop expands the scope of trust for unsafe blocks (blocks that are shared through [the gossip protocol](/operators/chain-operators/architecture#sequencer)). If a sequencer chooses to accept unsafe messages, the sequencer must trust the sequencer that produces the inbound message as well as any referenced unsafe messages produced from sequencers in the transitive dependency set.
diff --git a/pages/stack/research/block-time-research.mdx b/pages/stack/research/block-time-research.mdx index ca8678765..a5832a82b 100644 --- a/pages/stack/research/block-time-research.mdx +++ b/pages/stack/research/block-time-research.mdx @@ -59,7 +59,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](/builders/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](/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/overview.mdx b/pages/stack/rollup/overview.mdx index b29615ea6..e07ec94f6 100644 --- a/pages/stack/rollup/overview.mdx +++ b/pages/stack/rollup/overview.mdx @@ -21,7 +21,7 @@ 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](/builders/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](/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#batch-submission-wire-format) to reduce costs. @@ -71,7 +71,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](/builders/app-developers/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 @@ -113,4 +113,4 @@ The fault proof process is currently undergoing major redevelopment as a side-ef ## 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](/builders/chain-operators/self-hosted) or go directly to the tutorial on [creating your own L2 rollup](/builders/chain-operators/tutorials/create-l2-rollup). +* 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/faq-sec-model.mdx b/pages/stack/security/faq-sec-model.mdx index 1defd433b..ad05d298e 100644 --- a/pages/stack/security/faq-sec-model.mdx +++ b/pages/stack/security/faq-sec-model.mdx @@ -41,6 +41,7 @@ Each submitted proposal creates a [`FaultDisputeGame`](https://github.com/ethere 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. + Each proposal must wait for a delay period during which the Guardian can prevent invalid proposals from being used to withdraw ETH or tokens through a number of safety hatches. The Guardian can also choose to shift the system to use a `PermissionedDisputeGame` in which only specific `PROPOSER` and `CHALLENGER` roles can submit and challenge proposals. diff --git a/pages/stack/smart-contracts.mdx b/pages/stack/smart-contracts.mdx index daf88e6e9..9070c00e3 100644 --- a/pages/stack/smart-contracts.mdx +++ b/pages/stack/smart-contracts.mdx @@ -37,7 +37,7 @@ Contract releases have a component name of `op-contracts` and therefore are tagg The release fixes security vulnerabilities found in Fault Proof contracts. They were made in response to security vulnerabilities identified during a series of third-party security audits by Spearbit, Cantina, and Code4rena. None of the vulnerabilities have been exploited, and user assets are not and were never at risk. -The upgrade was coupled with the [Granite network upgrade](/builders/node-operators/network-upgrades#granite) to improve the stability and performance of the Fault Proof System. In addition, the capabilities of the Guardian and DeputyGuardian have been extended to set the anchor state for the Fault Proof System in order to prevent referencing invalid anchor states. +The upgrade was coupled with the [Granite network upgrade](/operators/node-operators/network-upgrades#granite) to improve the stability and performance of the Fault Proof System. In addition, the capabilities of the Guardian and DeputyGuardian have been extended to set the anchor state for the Fault Proof System in order to prevent referencing invalid anchor states. * [Official - Fault Proof Fixes Release](https://github.com/ethereum-optimism/optimism/releases/tag/op-contracts%2Fv1.6.0) * [Governance Post](https://gov.optimism.io/t/upgrade-proposal-10-granite-network-upgrade/8733) diff --git a/pages/stack/transactions/fees.mdx b/pages/stack/transactions/fees.mdx index 4934845e4..ed669c52c 100644 --- a/pages/stack/transactions/fees.mdx +++ b/pages/stack/transactions/fees.mdx @@ -96,7 +96,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](/builders/node-operators/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: @@ -130,7 +130,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](/builders/node-operators/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 @@ -171,13 +171,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](/builders/chain-operators/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](/builders/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](/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. @@ -229,4 +229,4 @@ 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 [L2 to L1 Transactions](/builders/app-developers/bridging/messaging#for-l1-to-l2-transactions) 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 60b61d9b7..2d7eb6272 100644 --- a/pages/stack/transactions/transaction-finality.mdx +++ b/pages/stack/transactions/transaction-finality.mdx @@ -62,7 +62,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](/builders/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/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 9717fa3c7..2a9e07132 100644 --- a/pages/stack/transactions/withdrawal-flow.mdx +++ b/pages/stack/transactions/withdrawal-flow.mdx @@ -17,7 +17,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 do this [in the bridging tutorials](/builders/app-developers/tutorials/cross-dom-bridge-erc20). + You can see an example of how to do this [in the bridging tutorials](/app-developers/tutorials/cross-dom-bridge-erc20). ## Withdrawal initiating transaction diff --git a/pages/superchain/_meta.json b/pages/superchain/_meta.json index 47b18a2f5..7a2240385 100644 --- a/pages/superchain/_meta.json +++ b/pages/superchain/_meta.json @@ -1,6 +1,14 @@ { + "--- Superchain": { + "title": "The Superchain", + "type": "separator" + }, "superchain-explainer": "The Superchain explainer", "superchain-registry": "The Superchain Registry", "blockspace-charter": "Blockspace Charters and the Standard Rollup Charter", - "standard-configuration": "What makes a chain standard" + "standard-configuration": "What makes a chain standard", + "tokenlist": "Bridged token addresses", + "addresses": "Contract addresses", + "networks": "OP Stack networks and public RPC endpoints", + "privileged-roles": "Privileged Roles in OP Stack Chains" } diff --git a/pages/superchain/networks.mdx b/pages/superchain/networks.mdx index a66e4bb62..b3930cc04 100644 --- a/pages/superchain/networks.mdx +++ b/pages/superchain/networks.mdx @@ -12,7 +12,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](/builders/node-operators/rollup-node) or signing up for a [third-party RPC provider](/builders/tools/connect/rpc-providers). + 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/standard-configuration.mdx b/pages/superchain/standard-configuration.mdx index 7143976cd..5e9a4490f 100644 --- a/pages/superchain/standard-configuration.mdx +++ b/pages/superchain/standard-configuration.mdx @@ -11,7 +11,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](/builders/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? @@ -33,7 +33,7 @@ Chains that deviate from these principles, such as introducing unsupported featu ## Role of op-deployer in standardization -The [op-deployer](/builders/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:** diff --git a/pages/superchain/superchain-registry.mdx b/pages/superchain/superchain-registry.mdx index 28eb28f72..faa37dc11 100644 --- a/pages/superchain/superchain-registry.mdx +++ b/pages/superchain/superchain-registry.mdx @@ -23,7 +23,7 @@ This configuration targets the Optimism Collective's highest bar for security, u You can find more details in the [Standard Rollup Charter documentation](/superchain/blockspace-charter). - We **strongly** recommend using the [op-deployer](/builders/chain-operators/tools/op-deployer) to deploy L1 contracts and generate the L2 genesis file that meet the configuration requirements outlined in the [Standard Rollup Charter](/superchain/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 meet the configuration requirements outlined in the [Standard Rollup Charter](/superchain/blockspace-charter). ## Joining the Registry diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a0172cbc..b912c9e94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,8 +149,11 @@ importers: remark-preset-lint-recommended: specifier: ^6.1.3 version: 6.1.3 + ts-node: + specifier: 10.9.2 + version: 10.9.2(@types/node@18.11.10)(typescript@5.3.2) typescript: - specifier: ^5.2.2 + specifier: ^5.3.2 version: 5.3.2 unified-lint-rule: specifier: ^2.1.2 @@ -421,6 +424,10 @@ packages: resolution: {integrity: sha512-GhWyximzk8tumo0zhrDV3+nFYiETYefiTBWAEVbXJMibuvitFocVZwddqN85J0UdZ2M7q6tvBleEaI9ME/16gA==} engines: {node: '>=18'} + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + '@double-great/alt-text@3.1.0': resolution: {integrity: sha512-5gSW9AI0KUO2GQe9K+KjyiCisxl4xL0kesQCxUsko4T9s8zler/stW0qcH5XryUgtKebb293qX9sz1nCmQpdTw==} @@ -648,6 +655,16 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} @@ -940,6 +957,18 @@ packages: '@theguild/remark-npm2yarn@0.2.1': resolution: {integrity: sha512-jUTFWwDxtLEFtGZh/TW/w30ySaDJ8atKWH8dq2/IiQF61dPrGfETpl0WxD0VdBfuLOeU14/kop466oBSRO/5CA==} + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -1069,6 +1098,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} @@ -1127,6 +1160,9 @@ packages: arg@1.0.0: resolution: {integrity: sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw==} + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -1364,6 +1400,9 @@ packages: cose-base@2.2.0: resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -1632,6 +1671,10 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -2446,6 +2489,9 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + markdown-extensions@1.1.1: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} @@ -3543,6 +3589,20 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -3683,6 +3743,9 @@ packages: engines: {node: '>=8'} hasBin: true + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + vfile-location@4.1.0: resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} @@ -3856,6 +3919,10 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -4154,6 +4221,10 @@ snapshots: '@cspell/strong-weak-map@8.1.3': {} + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + '@double-great/alt-text@3.1.0': dependencies: emoji-regex: 10.3.0 @@ -4614,6 +4685,15 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ono@7.1.3': {} '@mdx-js/mdx@2.3.0': @@ -4913,6 +4993,14 @@ snapshots: npm-to-yarn: 2.1.0 unist-util-visit: 5.0.0 + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.5 @@ -5023,6 +5111,10 @@ snapshots: dependencies: acorn: 8.11.2 + acorn-walk@8.3.4: + dependencies: + acorn: 8.11.2 + acorn@8.11.2: {} aes-js@3.0.0: {} @@ -5085,6 +5177,8 @@ snapshots: arg@1.0.0: {} + arg@4.1.3: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -5327,6 +5421,8 @@ snapshots: dependencies: layout-base: 2.0.1 + create-require@1.1.1: {} + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -5690,6 +5786,8 @@ snapshots: dependencies: dequal: 2.0.3 + diff@4.0.2: {} + diff@5.1.0: {} dir-glob@3.0.1: @@ -6629,6 +6727,8 @@ snapshots: lz-string@1.5.0: {} + make-error@1.3.6: {} + markdown-extensions@1.1.1: {} markdown-table@3.0.3: {} @@ -8433,6 +8533,24 @@ snapshots: ts-dedent@2.2.0: {} + ts-node@10.9.2(@types/node@18.11.10)(typescript@5.3.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.11.10 + acorn: 8.11.2 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + tslib@2.6.2: {} tslib@2.8.1: {} @@ -8641,6 +8759,8 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 + v8-compile-cache-lib@3.0.1: {} + vfile-location@4.1.0: dependencies: '@types/unist': 2.0.9 @@ -8853,6 +8973,8 @@ snapshots: yaml@2.3.4: {} + yn@3.1.1: {} + yocto-queue@0.1.0: {} yocto-queue@1.0.0: {} diff --git a/public/_redirects b/public/_redirects index b6d96267f..443488511 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1,82 +1,84 @@ # Redirects from what the browser requests to what we serve -/builders/tools/rpc-providers /builders/tools/connect/rpc-providers -/builders/tools/block-explorers /builders/tools/build/block-explorers -/builders/tools/faucets /builders/tools/build/faucets -/builders/tools/oracles /builders/tools/build/oracles -/builders/tools/nft-tools /builders/tools/build/nft-tools -/builders/tools/account-abstraction /builders/tools/build/account-abstraction -/builders/tools/analytics-tools /builders/tools/monitor/analytics-tools -/builders/tools/regenesis-history /builders/tools/monitor/regenesis-history -/builders/dapp-developers/contracts/account-abstraction /builders/tools/build/account-abstraction +/builders/tools/rpc-providers /app-developers/tools/connect/rpc-providers +/builders/tools/block-explorers /app-developers/tools/build/block-explorers +/builders/tools/faucets /app-developers/tools/build/faucets +/builders/tools/oracles /app-developers/tools/build/oracles +/builders/tools/nft-tools /app-developers/tools/build/nft-tools +/builders/tools/account-abstraction /app-developers/tools/build/account-abstraction +/builders/tools/analytics-tools /app-developers/tools/monitor/analytics-tools +/builders/tools/regenesis-history /app-developers/tools/monitor/regenesis-history +/builders/dapp-developers/contracts/account-abstraction /app-developers/tools/build/account-abstraction /stack/security/forced-transfers /stack/security/faq -/builders/dapp-developers/dapp-developer-overview /builders/app-developers/overview +/builders/dapp-developers/dapp-developer-overview /app-developers/overview /tokenlist /chain/tokenlist /addresses /chain/addresses /identity/optimist-profile /chain/identity/overview /chain/identity/optimist-profile /chain/identity/overview /stack/transactions/transaction-fees /stack/transactions/fees -/builders/tools/monitoring/regenesis-history /builders/tools/monitor/regenesis-history -/builders/dapp-developers/bridging/basics /builders/app-developers/bridging/basics +/builders/tools/monitoring/regenesis-history /app-developers/tools/monitor/regenesis-history +/builders/dapp-developers/bridging/basics /app-developers/bridging/basics /resources/glossary /connect/resources/glossary /differences-op-stack /stack/differences /differences /chain/differences -/chain-operators/sample-hacks/modifying-predeploys /builders/chain-operators/tutorials/modifying-predeploys +/chain-operators/sample-hacks/modifying-predeploys /operators/chain-operators/tutorials/modifying-predeploys /chain/testing/testing-dapps /chain/testing/testing-apps +/chain-operators/hacks/derivation /operators/chain-operators/hacks/derivation +/chain-operators/hacks/overview /operators/chain-operators/hacks/overview /getting-started-op-stack /stack/getting-started -/builders/tools/javascript/sdk /builders/chain-operators/tutorials/sdk -/builders/tools/monitoring/analytics-tools /builders/tools/monitor/analytics-tools -/builders/chain-operators/operations /builders/chain-operators/management/operations -/builders/dapp-developers/contracts/cheap-dapp /builders/app-developers/contracts/optimization -/builders/dapp-developers/contracts/compatibility /builders/app-developers/contracts/compatibility -/builders/dapp-developers/contracts/system-contracts /builders/app-developers/contracts/system-contracts -/dapp-developers/creating-a-nft /builders/tools/build/nft-tools -/chain-operators/chain-troubleshooting /builders/chain-operators/management/troubleshooting +/builders/tools/javascript/sdk /operators/chain-operators/tutorials/sdk +/builders/tools/monitoring/analytics-tools /app-developers/tools/monitor/analytics-tools +/builders/chain-operators/operations /operators/chain-operators/management/operations +/builders/dapp-developers/contracts/cheap-dapp /app-developers/contracts/optimization +/builders/dapp-developers/contracts/compatibility /app-developers/contracts/compatibility +/builders/dapp-developers/contracts/system-contracts /app-developers/contracts/system-contracts +/dapp-developers/creating-a-nft /app-developers/tools/build/nft-tools +/chain-operators/chain-troubleshooting /operators/chain-operators/management/troubleshooting /builders/notices/ecotone-fee-changes /stack/transactions/fees#ecotone -/builders/node-operators/network-upgrades/overview /builders/node-operators/network-upgrades -/builders/node-operators/network-upgrades/canyon /builders/node-operators/network-upgrades -/builders/node-operators/network-upgrades/delta /builders/node-operators/network-upgrades -/builders/node-operators/network-upgrades/ecotone /builders/node-operators/network-upgrades -/builders/dapp-developers/code-examples/ecosystem-overview /builders/app-developers/tools/ecosystem-overview -/builders/dapp-developers/quick-start /builders/app-developers/quick-start -/builders/dapp-developers/bridging/messaging /builders/app-developers/bridging/messaging -/builders/dapp-developers/bridging/standard-bridge /builders/app-developers/bridging/standard-bridge -/builders/dapp-developers/bridging/custom-bridge /builders/app-developers/bridging/custom-bridge -/builders/dapp-developers/tutorials/first-contract /builders/app-developers/tutorials/first-contract -/builders/dapp-developers/tutorials/cross-dom-bridge-eth /builders/app-developers/tutorials/cross-dom-bridge-eth -/builders/dapp-developers/tutorials/cross-dom-bridge-erc20 /builders/app-developers/tutorials/cross-dom-bridge-erc20 -/builders/dapp-developers/tutorials/sdk-estimate-costs /builders/app-developers/tutorials/sdk-estimate-costs -/builders/dapp-developers/tutorials/sdk-view-txns /builders/app-developers/tutorials/sdk-view-txns -/builders/dapp-developers/tutorials/sdk-trace-txns /builders/app-developers/tutorials/sdk-trace-txns -/builders/dapp-developers/tutorials/send-tx-from-eth /builders/app-developers/tutorials/send-tx-from-eth -/builders/dapp-developers/tutorials/cross-dom-solidity /builders/app-developers/tutorials/cross-dom-solidity -/builders/dapp-developers/tutorials/standard-bridge-standard-token /builders/app-developers/tutorials/standard-bridge-standard-token -/builders/dapp-developers/tutorials/standard-bridge-custom-token /builders/app-developers/tutorials/standard-bridge-custom-token -/builders/dapp-developers/transactions/estimates /builders/app-developers/transactions/estimates -/builders/dapp-developers/transactions/fees /builders/app-developers/transactions/fees -/builders/dapp-developers/transactions/transactions/parameters /builders/app-developers/transactions/parameters -/builders/dapp-developers/transactions/statuses /builders/app-developers/transactions/statuses -/builders/dapp-developers/transactions/troubleshooting /builders/app-developers/transactions/troubleshooting -/builders/chain-operators/overview /builders/chain-operators/self-hosted -/transaction-fees/overview /builders/app-developers/transactions/fees -/dapp-developers/contracts/meta-tx /builders/app-developers/contracts/optimization -/builders/tools/build/overview /builders/tools/overview +/builders/node-operators/network-upgrades/overview /operators/node-operators/network-upgrades +/builders/node-operators/network-upgrades/canyon /operators/node-operators/network-upgrades +/builders/node-operators/network-upgrades/delta /operators/node-operators/network-upgrades +/builders/node-operators/network-upgrades/ecotone /operators/node-operators/network-upgrades +/builders/dapp-developers/code-examples/ecosystem-overview /app-developers/tools/ecosystem-overview +/builders/dapp-developers/quick-start /app-developers/quick-start +/builders/dapp-developers/bridging/messaging /app-developers/bridging/messaging +/builders/dapp-developers/bridging/standard-bridge /app-developers/bridging/standard-bridge +/builders/dapp-developers/bridging/custom-bridge /app-developers/bridging/custom-bridge +/builders/dapp-developers/tutorials/first-contract /app-developers/tutorials/first-contract +/builders/dapp-developers/tutorials/cross-dom-bridge-eth /app-developers/tutorials/cross-dom-bridge-eth +/builders/dapp-developers/tutorials/cross-dom-bridge-erc20 /app-developers/tutorials/cross-dom-bridge-erc20 +/builders/dapp-developers/tutorials/sdk-estimate-costs /app-developers/tutorials/sdk-estimate-costs +/builders/dapp-developers/tutorials/sdk-view-txns /app-developers/tutorials/sdk-view-txns +/builders/dapp-developers/tutorials/sdk-trace-txns /app-developers/tutorials/sdk-trace-txns +/builders/dapp-developers/tutorials/send-tx-from-eth /app-developers/tutorials/send-tx-from-eth +/builders/dapp-developers/tutorials/cross-dom-solidity /app-developers/tutorials/cross-dom-solidity +/builders/dapp-developers/tutorials/standard-bridge-standard-token /app-developers/tutorials/standard-bridge-standard-token +/builders/dapp-developers/tutorials/standard-bridge-custom-token /app-developers/tutorials/standard-bridge-custom-token +/builders/dapp-developers/transactions/estimates /app-developers/transactions/estimates +/builders/dapp-developers/transactions/fees /app-developers/transactions/fees +/builders/dapp-developers/transactions/transactions/parameters /app-developers/transactions/parameters +/builders/dapp-developers/transactions/statuses /app-developers/transactions/statuses +/builders/dapp-developers/transactions/troubleshooting /app-developers/transactions/troubleshooting +/builders/chain-operators/overview /operators/chain-operators/self-hosted +/transaction-fees/overview /app-developers/transactions/fees +/dapp-developers/contracts/meta-tx /app-developers/contracts/optimization +/builders/tools/build/overview /app-developers/tools/overview /protocol-specifications/optimistic-rollup/block-production /stack/rollup/overview#block-production -/builders/node-operators/metrics /builders/node-operators/management/metrics +/builders/node-operators/metrics /operators/node-operators/management/metrics /stack /stack/getting-started /chain/sec /chain/security/faq -/builders/chain-operators/management/tools/explorer /builders/chain-operators/tools/explorer -/builders/node-operators/management/configuration /builders/node-operators/configuration/base-config +/builders/chain-operators/management/tools/explorer /operators/chain-operators/tools/explorer +/builders/node-operators/management/configuration /operators/node-operators/configuration/base-config /stack/protocol/deposit-flow /stack/transactions/deposit-flow /stack/protocol/transaction-flow /stack/transactions/transaction-flow /stack/protocol/withdrawal-flow /stack/transactions/withdrawal-flow /stack/protocol/smart-contracts /stack/smart-contracts /stack/protocol/overview /stack/rollup/overview /stack/protocol/design-principles /stack/design-principles -/builders/node-operators/overview /builders/node-operators/rollup-node +/builders/node-operators/overview /operators/node-operators/rollup-node /builders/notices/ecotone-changes /stack/transactions/fees#ecotone /stack/protocol/fault-proofs/overview /stack/fault-proofs/explainer -/builders/chain-operators/management/configuration /builders/chain-operators/configuration/overview -/builders/chain-operators/management/custom-gas-token /builders/chain-operators/features/custom-gas-token +/builders/chain-operators/management/configuration /operators/chain-operators/configuration/overview +/builders/chain-operators/management/custom-gas-token /operators/chain-operators/features/custom-gas-token /stack/protocol/rollup/smart-contracts /stack/smart-contracts /stack/protocol/fault-proofs/challenger /stack/fault-proofs/challenger /stack/protocol/fault-proofs/fp-security /stack/fault-proofs/fp-security @@ -98,25 +100,25 @@ /stack/protocol/rollup/transaction-flow /stack/transactions/transaction-flow /stack/protocol/rollup/deposit-flow /stack/transactions/deposit-flow /stack/protocol/outages /stack/rollup/outages -/stack/operators/features/op-txproxy /builders/chain-operators/tools/op-txproxy -/stack/operators/features/proxyd /builders/chain-operators/tools/proxyd +/stack/operators/features/op-txproxy /operators/chain-operators/tools/op-txproxy +/stack/operators/features/proxyd /operators/chain-operators/tools/proxyd /builders/notices/granite-changes https://github.com/ethereum-optimism/docs/blob/ef619668ae44276edecdfd657157254b9809e2d6/pages/builders/notices/granite-changes.mdx /builders/notices/fp-changes https://github.com/ethereum-optimism/docs/blob/ef619668ae44276edecdfd657157254b9809e2d6/pages/builders/notices/fp-changes.mdx /chain/differences /stack/differences -/builders/app-developers/contracts/optimization /builders/app-developers/overview +/builders/app-developers/contracts/optimization /app-developers/overview /builders/app-developers/contracts/system-contracts /stack/smart-contracts /builders/app-developers/contracts/compatibility /stack/differences -/builders/app-developers/tutorials/first-contract /builders/app-developers/overview -/builders/cex-wallet-developers/cex-support /builders/app-developers/overview -/builders/cex-wallet-developers/wallet-support /builders/app-developers/overview -/builders/cex-wallet-developers /builders/app-developers/overview +/builders/app-developers/tutorials/first-contract /app-developers/overview +/builders/cex-wallet-developers/cex-support /app-developers/overview +/builders/cex-wallet-developers/wallet-support /app-developers/overview +/builders/cex-wallet-developers /app-developers/overview /stack/interop/assets/superchain-erc20 /stack/interop/superchain-erc20 /stack/interop/assets/superchain-weth /stack/interop/superchain-weth /stack/interop/transfer-superchainERC20 /stack/interop/tutorials/transfer-superchainERC20 /stack/interop/assets/transfer-superchainERC20 /stack/interop/tutorials/transfer-superchainERC20 /stack/interop/assets/deploy-superchain-erc20 /stack/interop/tutorials/deploy-superchain-erc20 /builders/app-developers/contracts/superchain-erc20 /stack/interop/superchain-erc20 -/builders/chain-operators/tutorials/sdk /builders/app-developers/overview +/builders/chain-operators/tutorials/sdk /app-developers/overview /stack/explainer /superchain/superchain-explainer /stack/interop/architecture /stack/interop/explainer#interoperability-architecture /stack/interop/cross-chain-message /stack/interop/explainer#how-messages-get-from-one-chain-to-the-other @@ -129,6 +131,9 @@ /chain/identity/overview https://community.optimism.io/identity/overview /chain/identity/projects https://community.optimism.io/identity/projects /chain/identity/schemas https://community.optimism.io/identity/schemas +/builders/tools/fee-calculator /operators/chain-operators/tools/fee-calculator +/builders/app-developers/tools/supersim /app-developers/tools/supersim +/builders/app-developers/tools/ecosystem-overview /app-developers/tools/ecosystem-overview /chain/getting-started /builders/app-developers/getting-started /chain/networks /superchain/networks /chain/addresses /superchain/addresses @@ -137,4 +142,4 @@ /chain/testing/dev-node /stack/dev-node /chain/security/privileged-roles /superchain/privileged-roles /chain/security/faq /stack/security/faq-sec-model -/chain/security/security-policy /stack/security/security-policy \ No newline at end of file +/chain/security/security-policy /stack/security/security-policy diff --git a/styles/global.css b/styles/global.css index 23c8cc467..d35079960 100644 --- a/styles/global.css +++ b/styles/global.css @@ -49,7 +49,7 @@ span.shasum code { border: none; background-color: transparent !important; } - +/* Custom WIP callout */ div.custom-callouts { position: -webkit-sticky; position: sticky; @@ -87,3 +87,200 @@ html.dark a.callout-link { color: red; font-size: 14px; } +/* Custom 4 column footer */ +/* div.footer-root { + flex: 1; + font-size: 0.875rem; + color: #666; + + :global(.dark) & { + color: #666; + } + + a.footer-root { + color: #666; + text-decoration: none; + + :global(.dark) & { + color: #666; + } + + &:hover { + color: rgb(17, 24, 39); + + :global(.dark) & { + color: rgb(249, 250, 251); + } + } + } +} + +div.footer-columns { + margin-bottom: 2rem; + display: grid; + gap: 32px; + grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); + +.footer-columns h3 { + margin-bottom: 20px; + color: rgb(17, 24, 39); + font-weight: 500; + line-height: 20px; + + :global(.dark) & { + color: rgb(243, 244, 246); + } + } + + li.footer-columns { + line-height: 21px; + margin-bottom: 12px; + } +} */ +.footer-root { + width: 100%; + padding: 1.5rem 1rem 1rem; /* Reduced from 4rem 2rem 2rem */ +} + + .footer-container { + max-width: 1200px; + margin: 0 auto; + } + + .footer-top { + display: flex; + gap: 4rem; + margin-bottom: 3rem; + } + + .footer-content { + flex: 1; + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 0.5rem; /* Reduced from 2rem */ +} + +.footer-side { + width: 100px; /* Slightly reduced from 200px */ +} + +.footer-side .logo { + margin-bottom: 0.5rem; /* Reduced from 2rem */ +} + + .footer-side .logo { + margin-bottom: 2rem; + } + + .footer-content section h3, + .footer-side section h3 { + color: var(--nxds-text-primary); + font-size: 1rem; + font-weight: 500; + margin-bottom: 1rem; + } + + .footer-content section ul { + list-style: none; + padding: 0; + } + + .footer-content section ul li { + margin-bottom: 0.75rem; + } + + .footer-content section ul li a, + .icon-link { + color: #808080; + text-decoration: none; + transition: opacity 0.2s; + } + + .footer-content section ul li a:hover, + .icon-link:hover { + opacity: 0.7; + } + + .social-icons { + display: flex; + gap: 1rem; + } + + .footer-bottom { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: 2rem; + border-top: 1px solid rgba(128, 128, 128, 0.2); + } + + .policy-links { + display: flex; + gap: 2rem; + } + + .policy-links a { + color: #808080; + text-decoration: none; + transition: opacity 0.2s; + font-size: 0.875rem; + } + + .policy-links a:hover { + opacity: 0.7; + } + + .copyright { + color: #808080; + font-size: 0.875rem; + } + + .copyright a { + color: #808080 !important; + text-decoration: none; + } + + @media (max-width: 1024px) { + .footer-top { + flex-direction: column; + } + + .footer-side { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + order: -1; + } + + .footer-content { + grid-template-columns: repeat(2, 1fr); + } + + .footer-bottom { + flex-direction: column-reverse; + gap: 2rem; + } + + .policy-links { + flex-wrap: wrap; + justify-content: center; + gap: 1rem; + } + + .copyright { + text-align: center; + } + } + + @media (max-width: 640px) { + .footer-content { + grid-template-columns: 1fr; + } + + .footer-side { + flex-direction: column; + align-items: center; + gap: 2rem; + } + } \ No newline at end of file diff --git a/theme.config.tsx b/theme.config.tsx index 17a496f8f..f15256b6e 100644 --- a/theme.config.tsx +++ b/theme.config.tsx @@ -5,6 +5,7 @@ import { useConfig } from 'nextra-theme-docs'; import { FeelbackYesNo, PRESET_LIKE_DISLIKE } from '@feelback/react'; import '@feelback/react/styles/feelback.css'; import { Search } from './components/Search'; +import { Footer } from './components/Footer'; import { AskAIButton } from './components/AskAIButton'; import { useFeature } from '@growthbook/growthbook-react'; @@ -26,7 +27,7 @@ const config: DocsThemeConfig = { darkMode: true, banner: { key: 'viem/op-stack', - text: 🎉 We are deprecating the Optimism SDK and migrating all tutorials to use viem/op-stack. Read more → + text: 🎉 We are deprecating the Optimism SDK and migrating all tutorials to use viem/op-stack. Read more → }, search: { component: Search @@ -36,51 +37,7 @@ const config: DocsThemeConfig = { }, docsRepositoryBase: 'https://github.com/ethereum-optimism/docs/blob/main/', footer: { - text: ( -
-
© 2025 Optimism Foundation. All rights reserved.
- -
- - Optimism Community Agreement - - - Terms of Service - - - Privacy Policy - -
- -
- - - - - - - - - - - - - - - -
-
- ) + text: