diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 000000000..5d3f23deb --- /dev/null +++ b/.cursorrules @@ -0,0 +1,76 @@ +// Primary Context + +When assisting with this project: + + Recognize this is a technical writing project for Optimism documentation + Default to Microsoft Style Guide conventions, specifically: + - Use sentence-style capitalization for headings + - Use active voice and plain language + - Structure lists clearly and concisely + - Avoid unnecessary jargon or complex phrasing + Align with Optimism’s style guide, focusing on: + - Consistent use of terminology + - Clear and direct explanations of technical concepts + - Accurate and up-to-date references to tools and resources + Maintain a professional yet approachable tone, prioritizing clarity and consistency + +// Writing Style Rules + + Ensure headings use sentence-style capitalization (e.g., "Writing style rules" instead of "Writing Style Rules") + Use active voice and concise technical language (e.g., "Deploy the contract" instead of "The contract was deployed") + Maintain consistent terminology across sections, referring to the Optimism glossary (e.g., always refer to "Layer 2 scaling" instead of "L2" unless defined) + Follow Microsoft guidelines for bulleted and numbered lists, ensuring parallel structure (e.g., each bullet in a list should start with a verb if others do) + Avoid idiomatic expressions or informal language + Ensure all tables, figures, and examples are correctly labeled and referenced + Validate cross-references to ensure accuracy (e.g., check that section numbers and hyperlinks point to the correct locations) + Ensure any changes to a term, reference, or hyperlink are reflected throughout the document + +// Code Snippet Rules + + Ensure code snippets are syntactically correct and properly formatted + Use consistent indentation and naming conventions within snippets + Provide comments explaining non-obvious code logic + Validate that all code examples are functional and tested + Ensure code snippets are referenced correctly in accompanying text + +// Hyperlink and Reference Rules + + Ensure all hyperlinks use descriptive text (e.g., “Learn more about Optimism” instead of “Click here”) + Verify all hyperlinks are valid and up to date + Follow Microsoft guidelines for citing external references, ensuring clarity and relevance + +// Accessibility and Inclusivity Rules + + Use gender-neutral language + Avoid cultural references that may not be universally understood + Ensure content is easily translatable by avoiding idioms and complex sentence structures + Provide alt text for all images and diagrams, describing their purpose and content + +// Document Structure Rules + + Maintain a clear and logical document hierarchy with appropriate use of headings + Use introductory paragraphs to outline the purpose of each section + Ensure transition sentences between sections for smooth reading flow + +// Response Format + + Provide direct, implementable suggestions for improvements + Highlight areas where consistency or accuracy issues may arise + Separate code, text, and LaTeX suggestions for clarity + Flag outdated or broken links and provide corrected URLs or suggestions for updates + Note any assumptions made in the response + +// Quality Assurance + + Validate adherence to the key Microsoft Style Guide principles listed + Check consistency of terminology, formatting, and references as per the Optimism style guide + Ensure all tables, figures, and code snippets are properly labeled and integrated + Verify cross-reference accuracy within the document + +// Meta Instructions + + Anticipate and suggest potential improvements for related sections + Maintain consistent tone and terminology throughout + Flag potential inconsistencies or deviations from the style guide + Proactively highlight areas for refinement or optimization + diff --git a/pages/chain/addresses.mdx b/pages/chain/addresses.mdx index b768b476d..e88b3ae9c 100644 --- a/pages/chain/addresses.mdx +++ b/pages/chain/addresses.mdx @@ -11,7 +11,7 @@ import { SuperchainContractTable } from '@/components/SuperchainContractTable' # Contract Addresses -This reference guide lists all the contract addresses for Mainnet and Testnet, as found on the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry/tree/main). +This reference guide lists all the contract addresses for OP Stack chains, as found on the [superchain-registry](https://github.com/ethereum-optimism/superchain-registry/tree/main). See the [Smart Contracts Overview](/stack/smart-contracts) for high-level details and access to the source code. diff --git a/pages/chain/getting-started.mdx b/pages/chain/getting-started.mdx index d4af9faea..a606cd9f6 100644 --- a/pages/chain/getting-started.mdx +++ b/pages/chain/getting-started.mdx @@ -1,19 +1,19 @@ --- -title: Getting started developing for OP Mainnet +title: Getting started developing for OP Stack chains lang: en-US -description: Learn the basics of OP Mainnet development. +description: Learn the basics of OP Stack development. --- import { Steps } from 'nextra/components' -# Getting started developing for OP Mainnet +# Getting started developing for OP Stack chains -This guide explains the basics of OP Mainnet development. -OP Mainnet is [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306), meaning we run a slightly modified version of the same `geth` you run on mainnet. -Therefore, the differences between OP Mainnet development and Ethereum development are minor. +This guide explains the basics of OP Stack development. +OP Stack chains are [EVM equivalent](https://web.archive.org/web/20231127160757/https://medium.com/ethereum-optimism/introducing-evm-equivalence-5c2021deb306), meaning they run a slightly modified version of the same `geth` you run on mainnet. +Therefore, the differences between OP Stack development and Ethereum development are minor. But a few differences [do exist](/stack/differences). -## OP Mainnet and OP Sepolia endpoint URLs +## 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. @@ -23,14 +23,14 @@ For development purposes we recommend you use either a local development node or That way you don't need to spend real money. If you need ETH on OP Sepolia for testing purposes, [you can use this faucet](https://console.optimism.io/faucet?utm_source=docs). -## Interacting with contracts on OP Mainnet or OP Sepolia +## Interacting with contracts on OP Stack chains We have Hardhat's Greeter contract on OP Sepolia at address [0x9d334aFBa83865E67a9219830ADA57aaA9406681](https://sepolia-optimism.etherscan.io/address/0x9d334aFBa83865E67a9219830ADA57aaA9406681#code). You can verify your development stack configuration by interacting with it. ## Development stacks -As you can see in the different development stacks below, the way you deploy contracts and interact with them on OP Mainnet or OP Sepolia is almost identical to the way you do it with L1 Ethereum. +As you can see in the different development stacks below, the way you deploy contracts and interact with them on OP Stack chains is almost identical to the way you do it with L1 Ethereum. The most visible difference is that you have to specify a different endpoint (of course). The list of other differences is [here](differences). @@ -52,7 +52,7 @@ Not only is it faster, but such EVMs often have extra features, such as the [abi ### Debug before deploying After you are done with that development, debug your decentralized application using either a [development node](/chain/testing/dev-node) or the [Sepolia test network](/chain/networks). -This lets you debug parts that are OP Mainnet specific such as calls to bridges to transfer ETH or tokens between layers. +This lets you debug parts that are OP Stack chains specific such as calls to bridges to transfer ETH or tokens between layers. Only when you have a version that works well on a test network should you deploy to the production network, where every transaction has a cost. @@ -62,4 +62,4 @@ You don't have to upload your source code to [block explorers](/builders/tools/b 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. -Just remember, if you use [the Etherscan API](https://explorer.optimism.io/apis), you need one API key for OP Mainnet and a separate one for OP Sepolia. +Just remember, if you use [the Etherscan API](https://explorer.optimism.io/apis), you need one API key for OP Stack chains and a separate one for OP Sepolia. diff --git a/pages/chain/networks.mdx b/pages/chain/networks.mdx index a7e97799d..ae7528562 100644 --- a/pages/chain/networks.mdx +++ b/pages/chain/networks.mdx @@ -1,14 +1,14 @@ --- -title: OP networks and public RPC endpoints +title: OP Stack networks and public RPC endpoints lang: en-US -description: Learn about the different OP networks and public RPC endpoints. +description: Learn about the different OP Stack networks and public RPC endpoints. --- import { Callout } from 'nextra/components' -# OP networks and public RPC endpoints +# OP Stack networks and public RPC endpoints -This reference guide provides a listing of the different OP networks and public RPC endpoints. +This reference guide provides a listing of the different OP Stack networks and public RPC endpoints. The public RPC URLs provided below are rate limited and do not support websocket connections. diff --git a/pages/chain/security/faq.mdx b/pages/chain/security/faq.mdx index 002244cc8..7c9eca25f 100644 --- a/pages/chain/security/faq.mdx +++ b/pages/chain/security/faq.mdx @@ -1,40 +1,40 @@ --- -title: OP Mainnet security model +title: OP Stack security model lang: en-US -description: Learn about the OP Mainnet security model and answers to common questions. +description: Learn about the OP Stack security model and answers to common questions. --- import { Callout } from 'nextra/components' -# OP Mainnet security model +# OP Stack security model -OP Mainnet is a work in progress. -Constant, iterative improvement of the security mechanisms that safeguard OP Mainnet users is a top priority for the entire [Optimism Collective](https://community.optimism.io/docs/governance/). -The Optimism Collective strives to be clear and transparent about the security of OP Mainnet and the OP Stack as a whole. +Many OP Stack chains, such as OP Mainnet, are a work in progress. +Constant, iterative improvement of the security mechanisms that safeguard OP Stack users is a top priority for the entire [Optimism Collective](https://community.optimism.io/docs/governance/). +The Optimism Collective strives to be clear and transparent about the security of OP Stack chains and the OP Stack as a whole. ## Bottom line The security model of any blockchain system is only as strong as its lowest common denominator. -At the moment, **it's important to understand that the security of OP Mainnet is dependent on a [multisig](https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A)** managed jointly by the [Optimism Security Council](https://gov.optimism.io/t/intro-to-optimisms-security-council/6885) and the Optimism Foundation. -OP Mainnet and the OP Stack in general **may also contain unknown bugs that could lead to the loss of some or all of the ETH or tokens held within the system**. +At the moment, **it's important to understand that the security of OP Stack chains is dependent on a [multisig](https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A)** managed jointly by the [Optimism Security Council](https://gov.optimism.io/t/intro-to-optimisms-security-council/6885) and the Optimism Foundation. +OP Stack chains **may also contain unknown bugs that could lead to the loss of some or all of the ETH or tokens held within the system**. -## OP Mainnet multisig +## OP Stack multisig -The security of OP Mainnet is currently dependent on a multisig managed jointly by the [Optimism Security Council](https://gov.optimism.io/t/intro-to-optimisms-security-council/6885) and the Optimism Foundation. +The security of OP Stack chains is currently dependent on a multisig managed jointly by the [Optimism Security Council](https://gov.optimism.io/t/intro-to-optimisms-security-council/6885) and the Optimism Foundation. This multisig is a [2-of-2 nested multisig](https://etherscan.io/address/0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A) which is in turn governed by a [10-of-13 multisig](https://etherscan.io/address/0xc2819DC788505Aac350142A7A707BF9D03E3Bd03) managed by the Optimism Security Council and a [5-of-7 multisig](https://etherscan.io/address/0x847B5c174615B1B7fDF770882256e2D3E95b9D92) managed by the Optimism Foundation. -This multisig can be used to upgrade core OP Mainnet smart contracts **without upgrade delays** to allow for quick responses to potential security concerns. -All upgrades to the OP Mainnet system must be approved by both component multisigs and either can veto an upgrade. +This multisig can be used to upgrade core OP Stack smart contracts **without upgrade delays** to allow for quick responses to potential security concerns. +All upgrades to the OP Stack system must be approved by both component multisigs and either can veto an upgrade. ## Fault proofs It is important to understand that **fault proofs are not a silver bullet** and that **fault proofs provide limited improvements to the security of a system if the system still has a multisig or security council that can instantly upgrade the system**. - OP Mainnet is following a multi-client and multi-proof approach designed to eventually remove the need for instant upgrades entirely. + OP Stack chains are following a multi-client and multi-proof approach designed to eventually remove the need for instant upgrades entirely. -Users can withdraw ETH and tokens from OP Mainnet to Ethereum by submitting a withdrawal proof that shows the withdrawal was actually included inside of OP Mainnet. -Withdrawals are proven against proposals about the state of OP Mainnet that are published through the [`DisputeGameFactory`](https://github.com/ethereum-optimism/optimism/blob/363c5d7f4fb14180a0e2a28cc948fe2146f03dce/packages/contracts-bedrock/src/dispute/DisputeGameFactory.sol) contract. +Users can withdraw ETH and tokens from OP Stack chains to Ethereum by submitting a withdrawal proof that shows the withdrawal was actually included inside of the OP Stack chain. +Withdrawals are proven against proposals about the state of the chain that are published through the [`DisputeGameFactory`](https://github.com/ethereum-optimism/optimism/blob/363c5d7f4fb14180a0e2a28cc948fe2146f03dce/packages/contracts-bedrock/src/dispute/DisputeGameFactory.sol) contract. Proposals can be submitted to the `DisputeGameFactory` contract by any user and submissions do not require any special permissions. Each submitted proposal creates a [`FaultDisputeGame`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/dispute/FaultDisputeGame.sol) contract that allows any other user to challenge the validity of a proposal by participating in a "fault proof" process. @@ -49,31 +49,31 @@ The Guardian can also choose to shift the system to use a `PermissionedDisputeGa Please also keep in mind that just like any other system, **the Optimism codebase may contain unknown bugs** that could lead to the loss of some or all of the ETH or tokens held within the system. The OP Stack has been audited [on many occasions](https://github.com/ethereum-optimism/optimism/tree/v1.1.4/technical-documents/security-reviews), but **audits are not a stamp of approval** and **a completed audit does not mean that the audited codebase is free of bugs.** -It's important to understand that using OP Mainnet inherently exposes you to the risk of bugs within the Optimism codebase, and that you use OP Mainnet at your own risk. +It's important to understand that using OP Stack chains inherently exposes you to the risk of bugs within the Optimism codebase, and that you use these chains at your own risk. ## Work in progress ### Sequencer decentralization -The Optimism Foundation currently operates the sole sequencer on OP Mainnet. +The Optimism Foundation currently operates the sole sequencer on OP Stack chains. Although users can always bypass the Sequencer by sending transactions directly to the [`OptimismPortal`](https://github.com/ethereum-optimism/optimism/blob/5877ee24cc9aaef5848c1372e0e196707fb336a0/packages/contracts-bedrock/src/L1/OptimismPortal.sol) contract, sequencer decentralization can still help mitigate the effect of short-term outages for users. ## Security model FAQ -### Does OP Mainnet have fault proofs? +### Do OP Stack chains have fault proofs? -**Yes**, OP Mainnet has fault proofs. +**Yes**, fault proofs are available to OP Stack chains. It is important to note that **fault proofs are not a silver bullet** and that **fault proofs provide limited improvements to the security of a system if the system still has a multisig or security council that can instantly upgrade the system**. A system with fast upgrade keys, such as OP Mainnet, is fully dependent on the upgrade keys for security. -OP Mainnet's goal is to be the first system that deploys fault proofs that can secure the system by themselves, without fast upgrade keys. +The goal is to be the first system that deploys fault proofs that can secure the system by themselves, without fast upgrade keys. ### How is Optimism planning to remove the multisig? -Check out Optimism's detailed [Pragmatic Path to Decentralization](https://web.archive.org/web/20230331065342/https://medium.com/ethereum-optimism/our-pragmatic-path-to-decentralization-cb5805ca43c1) post for a detailed view into how the multisig may be removed in a way that makes OP Mainnet the first chain with true fault proof security. +Check out Optimism's detailed [Pragmatic Path to Decentralization](https://web.archive.org/web/20230331065342/https://medium.com/ethereum-optimism/our-pragmatic-path-to-decentralization-cb5805ca43c1) post for a detailed view into how the multisig may be removed in a way that makes OP Stack chains the first with true fault proof security. -### How can I help make OP Mainnet more secure? +### How can I help make OP Stack chains more secure? -[OP Mainnet has one of the biggest bug bounties (ever)](/chain/security/security-policy). +[OP Stack has one of the biggest bug bounties (ever)](/chain/security/security-policy). You can earn up to $2,000,042 by finding critical bugs in the Optimism codebase. You can also run your own verifier node to detect network faults. diff --git a/pages/chain/security/privileged-roles.mdx b/pages/chain/security/privileged-roles.mdx index 040d2b940..efd9563fb 100644 --- a/pages/chain/security/privileged-roles.mdx +++ b/pages/chain/security/privileged-roles.mdx @@ -1,20 +1,20 @@ --- -title: Privileged Roles in OP Mainnet +title: Privileged Roles in OP Stack Chains lang: en-US -description: Learn about the privileged roles in OP Mainnet. +description: Learn about the privileged roles in OP Stack chains. --- import { Callout } from 'nextra/components' -# Privileged Roles in OP Mainnet +# Privileged Roles in OP Stack Chains -OP Mainnet is on a [Pragmatic Path to Decentralization](https://blog.oplabs.co/decentralization-roadmap/). -In its current state, OP Mainnet still includes some "privileged" roles that give certain addresses the ability to carry out specific actions. +OP Stack chains follow a [Pragmatic Path to Decentralization](https://blog.oplabs.co/decentralization-roadmap/). +In their current state, OP Stack chains still include some "privileged" roles that give certain addresses the ability to carry out specific actions. Read this page to understand these roles, why they exist, and what risks they pose. ## L1 Proxy Admin -The L1 Proxy Admin is an address that can be used to upgrade most OP Mainnet system contracts. +The L1 Proxy Admin is an address that can be used to upgrade most OP Stack chains system contracts. ### Risks @@ -33,12 +33,12 @@ The L1 Proxy Admin is an address that can be used to upgrade most OP Mainnet sys ## L2 Proxy Admin -The L2 Proxy Admin is an address that can be used to upgrade most OP Mainnet system contracts on L2. The L2 Proxy Admin owner is the [aliased address](/chain/differences#address-aliasing) of the L1ProxyAdmin owner, which means the L2 ProxyAdmin Owner is equal to the L1 ProxyAdmin Owner, but due to aliasing it's a different address. Here's how that works: +The L2 Proxy Admin is an address that can be used to upgrade most OP Stack chains system contracts on L2. The L2 Proxy Admin owner is the [aliased address](/chain/differences#address-aliasing) of the L1ProxyAdmin owner, which means the L2 ProxyAdmin Owner is equal to the L1 ProxyAdmin Owner, but due to aliasing it's a different address. Here's how that works: * Given an L1 contract address, the aliased L2 address is equal to `L1_contract_address` + `0x1111000000000000000000000000000000001111`. * Using `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` as an example, the `0x6B` address is the L2 address that's been aliased, so to figure out the original L1 address you calculate `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` - `0x1111000000000000000000000000000000001111`. * That result gives an L1 contract address of `0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A`, which should be the 2/2 Safe owned by Foundation + Security Council that is L1 ProxyAdmin Owner. -* No one has the private key for `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` on OP Mainnet, which means the only way for the L2 ProxyAdmin owner to send transactions is via deposit transactions from the L1 `0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A` address. +* No one has the private key for `0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b` on OP Stack chains, which means the only way for the L2 ProxyAdmin owner to send transactions is via deposit transactions from the L1 `0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A` address. * For help with the calculations, see the [`AddressAliasHelper` library](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/vendor/AddressAliasHelper.sol). ### Risks @@ -58,7 +58,7 @@ The L2 Proxy Admin is an address that can be used to upgrade most OP Mainnet sys read the descriptions above for more details. -* **OP Mainnet**: [`0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b`](https://optimistic.etherscan.io/address/0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b) +* **OP Stack chains**: [`0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b`](https://optimistic.etherscan.io/address/0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b) * **OP Sepolia:** [`0x2FC3ffc903729a0f03966b917003800B145F67F3`](https://sepolia-optimism.etherscan.io/address/0x2FC3ffc903729a0f03966b917003800B145F67F3) @@ -86,8 +86,8 @@ The System Config Owner is an address that can be used to change the values with ### Description -The Batcher is a software service that submits batches of transactions to Ethereum on behalf of the current OP Mainnet Sequencer. -OP Mainnet nodes will look for transactions from this address to find new batches of L2 transactions to process. +The Batcher is a software service that submits batches of transactions to Ethereum on behalf of the current OP Stack chains Sequencer. +OP Stack chains nodes will look for transactions from this address to find new batches of L2 transactions to process. ### Risks @@ -162,13 +162,13 @@ The Challenger is an address that can participate in and challenge `Permissioned ### Description -The Guardian is an address that can be used to pause several system contracts on OP Mainnet. +The Guardian is an address that can be used to pause several system contracts on OP Stack chains. This is a backup safety mechanism that allows for a temporary halt, particularly of withdrawal logic, in the event of a security concern. The Guardian can also manage various aspects of the `OptimismPortal` contract to address active security concerns. ### Capabilities -* Pause several system contracts on OP Mainnet. +* Pause several system contracts on OP Stack chains. * Disable the ability for specific dispute game types from being used to execute withdrawals. * Disable the ability for specific dispute game instances from being used to execute withdrawals. @@ -188,7 +188,7 @@ The Guardian can also manage various aspects of the `OptimismPortal` contract to ## Mint Manager Owner -The Mint Manager Owner is an address that controls the [`MintManager`](https://github.com/ethereum-optimism/optimism/blob/62c7f3b05a70027b30054d4c8974f44000606fb7/packages/contracts-bedrock/contracts/governance/MintManager.sol) contract that can be used to mint new OP tokens on OP Mainnet. +The Mint Manager Owner is an address that controls the [`MintManager`](https://github.com/ethereum-optimism/optimism/blob/62c7f3b05a70027b30054d4c8974f44000606fb7/packages/contracts-bedrock/contracts/governance/MintManager.sol) contract that can be used to mint new OP tokens on OP Stack chains. ### Risks diff --git a/pages/chain/security/security-policy.mdx b/pages/chain/security/security-policy.mdx index 1e50b5093..b68cf0be5 100644 --- a/pages/chain/security/security-policy.mdx +++ b/pages/chain/security/security-policy.mdx @@ -1,7 +1,7 @@ --- title: Security policy and bug bounty program lang: en-US -description: Learn about the bug bounty program and best practices for reporting bugs in OP Stack and OP Mainnet codebase. +description: Learn about the bug bounty program and best practices for reporting bugs in the OP Stack codebase. --- import { Callout } from 'nextra/components' @@ -28,7 +28,7 @@ Optimism has a very detailed [Bug Bounty Page on Immunefi](https://immunefi.com/ ### Unscoped bugs -If you think you have found a significant bug or vulnerabilities in OP Stack smart contracts, infrastructure, etc., even if that component is not covered by an existing bug bounty, please report it to via the [OP Mainnet Immunefi program](https://immunefi.com/bounty/optimism/). The impact of any and all reported issues will be considered and the program has previously rewarded security researchers for bugs not within its stated scope. +If you think you have found a significant bug or vulnerabilities in OP Stack smart contracts, infrastructure, etc., even if that component is not covered by an existing bug bounty, please report it via the [Immunefi program](https://immunefi.com/bounty/optimism/). The impact of any and all reported issues will be considered and the program has previously rewarded security researchers for bugs not within its stated scope. ## Reporting other vulnerabilities diff --git a/pages/chain/testing/testing-apps.mdx b/pages/chain/testing/testing-apps.mdx index 2eac879a2..f104a4460 100644 --- a/pages/chain/testing/testing-apps.mdx +++ b/pages/chain/testing/testing-apps.mdx @@ -1,28 +1,28 @@ --- -title: Testing apps for OP Mainnet +title: Testing apps for OP Stack chains lang: en-US -description: Learn best practices for OP Mainnet testing. +description: Learn best practices for OP Stack testing. --- -# Testing apps for OP Mainnet +# Testing apps for OP Stack chains -For the most part, running applications on OP Mainnet is identical to running them on Ethereum, so the testing is identical too. -In this guide, you learn the best practices for OP Mainnet testing where there are differences. +For the most part, running applications on OP Stack chains is identical to running them on Ethereum, so the testing is identical too. +In this guide, you learn the best practices for OP Stack testing where there are differences. ## Unit tests and single layer integration tests -The vast majority of tests do not involve any OP Mainnet-specific features. -In those cases, while you *could* test everything on OP Mainnet or a test network, that would normally be inefficient. +The vast majority of tests do not involve any OP Stack-specific features. +In those cases, while you *could* test everything on an OP Stack chain or a test network, that would normally be inefficient. Most Ethereum development stacks include features that make testing easier, which normal Ethereum clients, such as geth (and our modified version, `op-geth`) don't support. -Therefore, it is a good idea to run the majority of tests, which do not rely on OP Mainnet-specific features, in the development stack. +Therefore, it is a good idea to run the majority of tests, which do not rely on OP Stack-specific features, in the development stack. It is a lot faster. It is a best practice to design and run thorough tests across an OP test network, either in your [local development environment](dev-node) or on [the test network](/chain/networks#op-sepolia), depending on your use case. -Running proper testing is key to identifying fringe cases where the equivalence between OP Mainnet and Ethereum breaks down (or where Ethereum mainnet itself and the development stack may be non-equivalent in a production environment). +Running proper testing is key to identifying fringe cases where the equivalence between OP Stack chains and Ethereum breaks down (or where Ethereum mainnet itself and the development stack may be non-equivalent in a production environment). ## Multilayer integration tests -Some apps need OP Mainnet-specific features that aren't available as part of the development stack. +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. ## Integration with other products @@ -31,5 +31,5 @@ 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 Mainnet. +It works with OP Stack chains. Alternatively, you can connect to our [test network](/chain/networks#op-sepolia) if those contracts are also deployed there (in many cases they are). diff --git a/pages/chain/tokenlist.mdx b/pages/chain/tokenlist.mdx index 73f4f4c9b..6329f2ff5 100644 --- a/pages/chain/tokenlist.mdx +++ b/pages/chain/tokenlist.mdx @@ -9,7 +9,7 @@ import { TokenListTable } from '@/components/TokenListTable' # Bridged token addresses -Various ERC-20 tokens originally deployed to Ethereum also have corresponding "bridged" representations on OP Mainnet. +Various ERC-20 tokens originally deployed to Ethereum also have corresponding "bridged" representations on OP Stack chains. The [Superchain Token List](https://github.com/ethereum-optimism/ethereum-optimism.github.io) exists to help users discover the correct bridged token addresses for each token. This page is automatically generated from the Superchain Token List. @@ -18,10 +18,10 @@ This page is automatically generated from the Superchain Token List. **The presence of a token on this page does not imply any endorsement of the token or its minter.** -### USDC on OP Mainnet +### USDC on OP Stack chains -The legacy bridged version of USDC (USDC.e) at address `0x7f5c764cbc14f9669b88837ca1490cca17c31607` is being deprecated on OP Mainnet. +The legacy bridged version of USDC (USDC.e) at address `0x7f5c764cbc14f9669b88837ca1490cca17c31607` is being deprecated on OP Stack chains. Users and developers should migrate to using the native USDC token issued directly by [Circle](https://www.circle.com/en/), the issuer of [USDC](https://www.circle.com/en/usdc?gad_source=1).