diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2dd99a02b..057966539 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,28 +3,30 @@
Thanks for taking the time to contribute! ❤️
## Table of Contents
-- [Overview](#overview)
-- [Getting Started](#getting-started)
- - [Prerequisites](#prerequisites)
- - [Development Setup](#development-setup)
-- [Contributing Process](#contributing-process)
- - [File Architecture](#file-architecture)
- - [Content Guidelines](#content-guidelines)
- - [Local Testing](#local-testing)
-- [Pull Request Process](#pull-request-process)
- - [Before Submitting](#before-submitting)
- - [Submission Guidelines](#submission-guidelines)
- - [Review Process](#review-process)
-- [Code of Conduct](#code-of-conduct)
-- [Additional Ways to Contribute](#additional-ways-to-contribute)
+- [Contributing to Optimism Docs](#contributing-to-optimism-docs)
+ - [Table of Contents](#table-of-contents)
+ - [Overview](#overview)
+ - [Getting Started](#getting-started)
+ - [Prerequisites](#prerequisites)
+ - [Development Setup](#development-setup)
+ - [Contributing Process](#contributing-process)
+ - [File Architecture](#file-architecture)
+ - [Content Guidelines](#content-guidelines)
+ - [Local Testing](#local-testing)
+ - [Pull Request Process](#pull-request-process)
+ - [Before Submitting](#before-submitting)
+ - [Submission Guidelines](#submission-guidelines)
+ - [Review Process](#review-process)
+ - [Code of Conduct](#code-of-conduct)
+ - [Additional Ways to Contribute](#additional-ways-to-contribute)
## Overview
Optimism's documentation is open-source and hosted on GitHub in the `ethereum-optimism/docs` repository. The documentation is rendered at [docs.optimism.io](https://docs.optimism.io). You can contribute either by:
- Forking the `docs` repository and working locally
-- Using the "Edit this page" button on any documentation page for smaller updates
+- Using the "Suggest edits" button on any documentation page for smaller updates
-All contributions, pull requests, and issues should be in English at this time. We will be running a dedicated project in the future to add language support to the technical docs, so please reach out via our [developer support channel](https://github.com/ethereum-optimism/developers/) if you are interested in helping with that project.
+All contributions, pull requests, and issues should be in English at this time.
## Getting Started
@@ -45,56 +47,33 @@ You can now start changing content and see the website updated live each time yo
## Contributing Process
### File Architecture
-Our documentation is organized into two main sections:
-| Section | Purpose | Location |
-|---------|----------|----------|
-| Pages | Technical documentation content | `/docs/pages/` |
-| Public | Images, icons, and illustrations | `/docs/public/` |
+See the [mintlify docs](https://www.mintlify.com/docs/organize/navigation).
**Warning**: The `public` folder contains `robots.txt` and `sitemap.xml` for SEO purposes. These files are maintained by the Documentation team only.
### Content Guidelines
-We use [Nextra](https://nextra.site/docs), a React and MDX-based framework with the docs theme (as opposed to the blog theme). The content you write is [Markdown](https://daringfireball.net/projects/markdown/syntax) that accepts [React](https://reactjs.org/) components.
+We use [mintlify](https://www.mintlify.com/docs) to power our docs.
-Please refer to our comprehensive [Style Guide](/pages/connect/contribute/style-guide.mdx) for detailed formatting instructions.
+Please refer to our comprehensive [Style Guide](/reference/contribute/style-guide) for detailed formatting instructions.
### Local Testing
-Before submitting your changes:
-1. Stop or delete the terminal server if it's running
-2. Run `pnpm dev` to test builds
-3. Execute `pnpm fix` for automatic linting
-4. Run `pnpm spellcheck:lint` for spell checking
- - Add new words to the dictionary by appending them to `words.txt`
-5. Use `pnpm spellcheck:fix` to update dictionary
-6. Try another `pnpm dev` and repeat until no issues are reported ("client" and "server compiled successfully")
-
-If you encounter build issues:
-- Check terminal output for error messages
-- Verify all links are working
-- Ensure proper formatting according to the style guide
-- Test locally before pushing changes
+
+Follow these [docs](https://www.mintlify.com/docs/installation) for local changes.
## Pull Request Process
### Before Submitting
-- Ensure all local tests pass
- Fix any reported issues
- Verify content accuracy
- Test all links and references
-- Target the `main` branch (unless otherwise specified)
+- Target the `mintlify` branch (`main` needs to be cleaned up)
### Submission Guidelines
1. Create a [new pull request](https://github.com/ethereum-optimism/docs/issues/new/choose)
2. Choose appropriate PR type or use blank template
3. Provide clear title and accurate description
-4. Add required labels:
- - `documentation` (required for all PRs)
- - Content-specific: `tutorial`, `faq`, `troubleshooting`
- - Feature-specific: `oracle`, `rpc-provider`, `faucet`, `attestation`
- - Issue-specific: `user feedback`, `bug`
-
-> **Note**: If label type is not set, the Documentation team will set or update it for you.
+4. Add labels
> **Important**: Add `flag:merge-pending-release` label if the PR content should only be released publicly in sync with a product release.
diff --git a/pages/404.mdx b/pages/404.mdx
deleted file mode 100644
index 8f3137932..000000000
--- a/pages/404.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Page Not Found
-description: 404 page not found and directs users to submit a GitHub issue.
diff --git a/pages/500.mdx b/pages/500.mdx
deleted file mode 100644
index 122cfbc88..000000000
--- a/pages/500.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-title: Internal Server Error
-description: 500 internal server error and directs users to submit a git issue.
diff --git a/pages/app-developers/bridging.mdx b/pages/app-developers/bridging.mdx
deleted file mode 100644
index 7c84c69da..000000000
--- a/pages/app-developers/bridging.mdx
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Bridging guides
-description: Learn about bridging basics, custom bridges, data transmission between L1 and L2, and using the standard bridge in OP Stack.
----
-
-
-# Bridging guides
-
-Looking to build an application that sends ETH, tokens, or data between OP Mainnet and Ethereum?
-You'll find some useful guides and tutorials in this area of the docs.
-For instance, if you want to learn how to bridge a token from Ethereum to OP Mainnet (or vice versa!), you should check out the [Standard Token Bridge](/app-developers/bridging/standard-bridge).
-
-If you're looking for something more advanced, take a look at the guide on [sending data between L1 and L2](/app-developers/bridging/messaging).
-Contracts on one chain can trigger contract functions on the other chain, which is pretty cool!
-The Standard Token Bridge for OP Mainnet even uses this same message-passing infrastructure under the hood.
-
-
-
-
-
-
-
diff --git a/pages/app-developers/bridging/basics.mdx b/pages/app-developers/bridging/basics.mdx
deleted file mode 100644
index c005c01d2..000000000
--- a/pages/app-developers/bridging/basics.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Bridging basics
-description: Learn about the fundamentals of sending data and tokens between Ethereum and OP Mainnet.
----
-
-## Sending tokens
-
-
-## Sending data
-
-
-## Next steps
-
-
-* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20)
-* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth)
-* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token)
-* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token)
diff --git a/pages/app-developers/bridging/custom-bridge.mdx b/pages/app-developers/bridging/custom-bridge.mdx
deleted file mode 100644
index be1e62cdd..000000000
--- a/pages/app-developers/bridging/custom-bridge.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Custom bridges
-description: Important considerations when building custom bridges for OP Mainnet.
----
-
-
-
- Custom bridges can bring a significant amount of complexity and risk to any project.
- Before you commit to a custom bridge, be sure that the [Standard Bridge](./standard-bridge) definitely does not support your use case.
- [Building a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token) is often sufficient for projects that need more flexibility.
-
-
-## Guidelines
-
-
-
-## The Superchain Token List
-
-
-## Next steps
-
-
-* [NFT Bridge](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol)
-* [L2 DAI Token Bridge](https://explorer.optimism.io/address/0x467194771dae2967aef3ecbedd3bf9a310c76c65#code) and [deployed addresses](https://github.com/ethereum-optimism/ethereum-optimism.github.io/blob/master/data/DAI/data.json)
-* [SNX Bridge](https://github.com/ethereum-optimism/ethereum-optimism.github.io/blob/master/data/SNX/data.json)
diff --git a/pages/app-developers/bridging/messaging.mdx b/pages/app-developers/bridging/messaging.mdx
deleted file mode 100644
index b070eb3f1..000000000
--- a/pages/app-developers/bridging/messaging.mdx
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: Sending data between L1 and L2
-description: Learn how bridging works between L1 and L2, how to use it, and what to watch out for.
----
-
-
- This is a high-level overview of the bridging process.
- For a step-by-step tutorial on how to send data between L1 and L2, check out the [Solidity tutorial](/app-developers/tutorials/bridging/cross-dom-solidity).
-
-
-## Understanding contract calls
-
-
-
-```solidity
- function doTheThing(address myContractAddress, uint256 myFunctionParam) public {
- MyOtherContract(myContractAddress).doSomething(myFunctionParam);
- }
-}
-```
-
-
-
-```solidity
- function doTheThing(address myContractAddress, uint256 myFunctionParam) public {
- myContractAddress.call(
- abi.encodeCall(
- MyOtherContract.doSomething,
- (
- myFunctionParam
- )
- )
- );
- }
-}
-```
-
-
-## Basics of communication between layers
-
-
-
-```solidity
- address _target,
- bytes memory _message,
- uint32 _minGasLimit
-) public;
-```
-
-
-1. The `address _target` of the contract to call on the other layer.
-2. The `bytes memory _message` calldata to send to the contract on the other layer.
-3. The `uint32 _minGasLimit` minimum gas limit that can be used when executing the message on the other layer.
-
-
-```solidity
-address(_target).call{gas: _minGasLimit}(_message);
-```
-
-
-
-```solidity
-// Pretend this is on L2
- function doSomething(uint256 myFunctionParam) public {
- // ... some sort of code goes here
- }
-}
-
-// And pretend this is on L1
- function doTheThing(address myOptimisticContractAddress, uint256 myFunctionParam) public {
- messenger.sendMessage(
- myOptimisticContractAddress,
- abi.encodeCall(
- MyOptimisticContract.doSomething,
- (
- myFunctionParam
- )
- ),
- 1000000 // or use whatever gas limit you want
- )
- }
-}
-```
-
-
- You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/superchain/addresses) page.
-
-
-## Communication speed
-
-
-### For L1 to L2 transactions
-
-
-### For L2 to L1 transactions
-
-
-
-1. The L2 transaction that sends a message to L1 is sent to the Sequencer.
- This is just like any other L2 transaction and takes just a few seconds to be confirmed by the Sequencer.
-
-2. The block containing the L2 transaction is proposed to the L1.
- This typically takes approximately 20 minutes.
-
-3. A proof of the transaction is submitted to the [`OptimismPortal`](https://github.com/ethereum-optimism/optimism/blob/111f3f3a3a2881899662e53e0f1b2f845b188a38/packages/contracts-bedrock/src/L1/OptimismPortal.sol#L209) contract on L1.
- This can be done any time after step 2 is complete.
-
-4. The transaction is finalized on L1.
- This can *only* be done after the [fault challenge period](#understanding-the-challenge-period) has elapsed.
- This period is 7 days on Ethereum and a few seconds on Sepolia.
- This waiting period is a core part of the security model of the OP Stack and cannot be circumvented.
-
-## Accessing `msg.sender`
-
-
-
-```solidity
-```
-
-
-```solidity
- require(
- msg.sender == address(messenger)
- && messenger.xDomainMessageSender() == owner
- );
- _;
-}
-```
-
-## Fees for sending data between L1 and L2
-
-### For L1 to L2 transactions
-
-
-
-
- Since the gas amount charged is dynamic, the gas burn can change from block to block.
- You should always add a buffer of at least 20% to the gas limit for your L1 to L2 transaction to avoid running out of gas.
-
-
-### For L2 to L1 transactions
-
-
-1. An L2 transaction that *initiates* the transaction, which is priced the same as any other transaction made on OP Mainnet.
-
-2. An L1 transaction that *proves* the transaction.
- This transaction can only be submitted after L2 block, including your L2 transaction, is proposed on L1.
- This transaction is expensive because it includes verifying a [Merkle trie](/connect/resources/glossary#merkle-patricia-trie) inclusion proof on L1.
-
-3. An L1 transaction that *finalizes* the transaction.
- This transaction can only be submitted after the transaction challenge period (7 days on mainnet) has passed.
-
-
-## Understanding the challenge period
-
-
-
-
-
diff --git a/pages/app-developers/bridging/standard-bridge.mdx b/pages/app-developers/bridging/standard-bridge.mdx
deleted file mode 100644
index 2a9a5aade..000000000
--- a/pages/app-developers/bridging/standard-bridge.mdx
+++ /dev/null
@@ -1,184 +0,0 @@
----
-title: Using the Standard Bridge
-description: Learn the basics of using the Standard Bridge to move tokens between Layer 1 and Layer 2.
----
-
-
- The Standard Bridge **does not** support [**fee on transfer tokens**](https://github.com/d-xo/weird-erc20#fee-on-transfer) or [**rebasing tokens**](https://github.com/d-xo/weird-erc20#balance-modifications-outside-of-transfers-rebasingairdrops) because these types of tokens may cause bridge accounting errors.
-
-
-## Design
-
-### Architecture
-
-
-### Bridged tokens
-
-
-### Bridging native tokens
-
-
-
- {User gives the Standard Bridge an allowance
}
-
- The Standard Bridge must be able to pull tokens from the user to lock them into the bridge contract.
- To do this, the user must first give the bridge an [allowance](https://eips.ethereum.org/EIPS/eip-20#approve) to transfer the number of tokens that the user wishes to convert into a bridged representation.
-
- {User calls the bridging function
}
-
- After providing a sufficient allowance, the user calls the [`bridgeERC20To`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L193-L217) function on the `StandardBridge` contract on the chain where the native token lives (e.g., the `L1StandardBridge` contract if the token is native to Ethereum).
-
- The user must provide the following parameters to this function call:
-
- * `address _localToken`: Address of the native token on the sending side.
- * `address _remoteToken`: Address of the bridged representation on the receiving side.
- * `address _to`: Address of the recipient of these tokens, usually the sender's address.
- * `uint256 _amount`: Number of tokens to transfer.
- * `uint32 _minGasLimit`: Gas to use to complete the transfer on the receiving side.
- * `bytes calldata _extraData`: Optional identify extra data.
-
-
- Users can also trigger the [`bridgeERC20`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L168-L191) function instead of `bridgeERC20To` to avoid needing to specify the `address _to` parameter.
- Doing so will automatically set the `address _to` parameter to the `msg.sender`.
-
- **The `bridgeERC20` function can be potentially dangerous for users with [smart contract wallets](https://web.archive.org/web/20231012141406/https://blockworks.co/news/what-are-smart-contract-wallets) as some smart contract wallets cannot be deployed at the same address on every blockchain.**
- To help users avoid potentially losing access to tokens by accident, the `bridgeERC20` function will always revert when triggered from a smart contract.
- Smart contract wallet users and other smart contracts should therefore use the `bridgeERC20To` function instead.
-
-
- {The Standard Bridge locks the transferred tokens
}
-
- When the user triggers the `bridgeERC20To` function while transferring a native token, the Standard Bridge will pull the `_amount` of `_localToken` tokens from the user's address and lock them inside of the bridge contract.
- A record of all locked tokens is stored within a [`deposits` mapping](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L41-L42) that keeps track of the total number of tokens deposited for a given `_localToken` and `_remoteToken` pair.
-
- Since a native token may have more than one bridged representation, the `deposits` token must keep track of the deposit pools for each `_localToken`/`_remoteToken` pair independently.
-
- To illustrate, suppose that two users deposit 100 units of the same native token, `Token A`, but wish to receive two different bridged tokens, `Token B` and `Token C`.
- Although the Standard Bridge would now have a total balance of 200 units of `Token A`, the mapping would show that the `Token A`/`Token B` pool and the `Token A`/`Token C` pool both have only 100 units.
-
- {The Standard Bridge sends a minting message
}
-
- After locking the native tokens, the Standard Bridge contract on the sending side will trigger a cross-chain message to the Standard Bridge contract on the receiving side via the [`CrossDomainMessenger`](./messaging) system.
- This message tells the receiving side to **mint** tokens according to the parameters specified by the user.
- Specifically, this message is an encoded call to the [`finalizeBridgeERC20`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L250-L287) function on the other Standard Bridge contract.
- At this point, execution ends on the sending side.
-
- {The minting message is executed
}
-
- Once the minting message is sent, it must be relayed to the receiving side.
- Message relaying is automatic when sending from Ethereum to OP Mainnet but requires additional user transactions when sending from OP Mainnet to Ethereum.
- Read more about the message relaying process in the guide to [Sending Data Between L1 and L2](./messaging#communication-speed).
-
- When the message is relayed, the `finalizeBridgeERC20` function will be triggered on the receiving Standard Bridge contract.
- This function will receive the `_minGasLimit` gas defined by the user to execute to completion.
-
- {The minting message is authenticated
}
-
- Upon execution, `finalizeBridgeERC20` verifies a number of things about the incoming request:
-
- * [The request must have originated from the Standard Bridge contract on the other blockchain](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L269).
- * [The Standard Bridge must not be in an emergency paused state](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L271).
- * [The bridged token must properly implement the `IOptimismMintableERC20` interface](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L272).
- * [The bridged token must recognize the original native token as its `remoteToken()`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L273-L276).
-
- {The bridged token is minted
}
-
- If the minting message is fully verified, `finalizeBridgeERC20` will [mint tokens to the recipient](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L278) equal to the number of tokens originally deposited on the other blockchain.
- For this to work properly, the bridged representation of the native token must correctly implement a `mint` function that allows the Standard Bridge to mint tokens arbitrarily.
- This is part of the [`IOptimismMintableERC20`](https://github.com/ethereum-optimism/optimism/blob/8ed8be8806208976e63421bd68779477d12295b5/packages/contracts-bedrock/src/universal/IOptimismMintableERC20.sol) interface.
-
- This completes the process of bridging native tokens.
- This process is identical in both the Ethereum to OP Mainnet and OP Mainnet to Ethereum directions.
-
-
-### Bridging non-native tokens
-
-
-
- {User calls the bridging function
}
-
- Unlike when bridging native tokens, users do not need to provide an approval to trigger a transfer of a bridged token because the Standard Bridge should already have the ability to `burn` these tokens.
- Here, the user calls the [`bridgeERC20To`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L193-L217) function on the `StandardBridge` contract on the chain where the bridged token lives (e.g., the `L2StandardBridge` contract if the token is bridged to OP Mainnet).
-
- The user must provide the following parameters to this function call:
-
- * `address _localToken`: Address of the bridged token on the sending side.
- * `address _remoteToken`: Address of the native token on the receiving side.
- * `address _to`: Address of the recipient of these tokens, usually the sender's address.
- * `uint256 _amount`: Number of tokens to transfer.
- * `uint32 _minGasLimit`: Gas to use to complete the transfer on the receiving side.
- * `bytes calldata _extraData`: Optional identify extra data.
-
- {The Standard Bridge burns the transferred tokens
}
-
- When the user triggers the `bridgeERC20To` function while transferring a bridge token, [the Standard Bridge will burn the corresponding `_amount` of tokens from the sender's address](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L345).
-
- {The Standard Bridge sends an unlock message
}
-
- After burning the bridged tokens, the Standard Bridge contract on the sending side will trigger a cross-chain message to the Standard Bridge contract on the receiving side via the [`CrossDomainMessenger`](./messaging) system.
- This message tells the receiving side to **unlock** tokens according to the parameters specified by the user.
- Specifically, this message is an encoded call to the [`finalizeBridgeERC20`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L250-L287) function on the other Standard Bridge contract.
- At this point, execution ends on the sending side.
-
- {The unlock message is executed
}
-
- Once the unlock message is sent, it must be relayed to the receiving side.
- Message relaying is automatic when sending from Ethereum to OP Mainnet but requires additional user transactions when sending from OP Mainnet to Ethereum.
- Read more about the message relaying process in the guide to [Sending Data Between L1 and L2](./messaging#communication-speed).
-
- When the message is relayed, the `finalizeBridgeERC20` function will be triggered on the receiving Standard Bridge contract.
- This function will receive the `_minGasLimit` gas defined by the user to execute to completion.
-
- {The unlock message is authenticated
}
-
- Upon execution, `finalizeBridgeERC20` verifies a number of things about the incoming request:
-
- * [The request must have originated from the Standard Bridge contract on the other blockchain](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L269).
- * [The Standard Bridge must not be in an emergency paused state](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L271).
-
- {The native token is unlocked
}
-
- If the unlock message is fully verified, `finalizeBridgeERC20` will [unlock and transfer tokens to the recipient](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L280-L281) equal to the number of tokens originally burned on the other blockchain.
-
- This completes the process of bridging native tokens.
- This process is identical in both the Ethereum to OP Mainnet and OP Mainnet to Ethereum directions.
-
-
-### Bridging ETH
-
-
-
- Users can also deposit ETH from Ethereum to OP Mainnet by sending a basic ETH transfer from an EOA to the `L1StandardBridgeProxy`.
- This works because the `L1StandardBridgeProxy` contains a [`receive`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L119-L121) function.
- You can find the mainnet and testnet addresses on the [Contract Addresses](/superchain/addresses) page.
-
-
-## Tutorials
-
-* [Learn how to bridge ERC-20 tokens with viem](/app-developers/tutorials/bridging/cross-dom-bridge-erc20)
-* [Learn how to bridge ETH with viem](/app-developers/tutorials/bridging/cross-dom-bridge-eth)
-* [Learn how to create a standard bridged token](/app-developers/tutorials/bridging/standard-bridge-standard-token)
-* [Learn how to create a custom bridged token](/app-developers/tutorials/bridging/standard-bridge-custom-token)
-
-## Superchain Token List
-
-
-
-### Searching the Token List
-
-
-
-
- {Find the token you want to bridge
}
-
- The Superchain Token List is organized by the token's address and native blockchain.
- [Search the token list](https://github.com/ethereum-optimism/ethereum-optimism.github.io/blob/master/optimism.tokenlist.json) for the token you want to bridge to confirm that it's included in the list.
- Make sure that the chain ID in the entry matches the chain ID of the blockchain you're bridging from.
- Retrieve the token's name and symbol from the list.
-
- {Find the bridged representation of the token
}
-
- Once you've found the token you want to bridge, look for the token's name and symbol in the list.
- Find the entry that matches the name and symbol of the token you want to bridge and where the chain ID matches the chain ID of the blockchain you're bridging to.
- The address of this entry is the address of the bridged representation of the token you want to bridge.
-
diff --git a/pages/app-developers/building-apps.mdx b/pages/app-developers/building-apps.mdx
deleted file mode 100644
index cfa14d455..000000000
--- a/pages/app-developers/building-apps.mdx
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Building apps on the Superchain
-description: Learn the basics of building apps on the Superchain.
----
-
-
-# Building apps on the Superchain
-
-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 Stack chains endpoint URLs
-
-To access any Ethereum type network you need an endpoint. [These providers](/app-developers/tools/connect/rpc-providers) support our networks.
-
-### Network choice
-
-For development purposes we recommend you use either a local development network or [OP Sepolia](https://sepolia-optimism.etherscan.io).
-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=op-docs&utm_medium=docs).
-
-## Interacting with contracts on OP Stack chains
-
-We have Hardhat's Greeter contract on OP Sepolia at address [0x9d334aFBa83865E67a9219830ADA57aaA9406681](https://testnet-explorer.optimism.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 Stack chains is almost identical to the way you do it with L1 Ethereum.
-The most visible difference is that you have to specify a different endpoint (of course).
-For more detail, see the guide on [Differences between Ethereum and OP Stack Chains](/stack/differences).
-
-* [Apeworx](https://www.apeworx.io/)
-* [Brownie](https://eth-brownie.readthedocs.io/en/stable/install.html)
-* [Foundry](https://getfoundry.sh/)
-* [Hardhat](https://hardhat.org/)
-* [Remix](https://remix.ethereum.org)
-* [Truffle](https://trufflesuite.com/)
-* [Waffle](https://getwaffle.io/)
-
-## Best practices
-
-### Use provided EVM
-
-It is best to start development with the EVM provided by the development stack.
-Not only is it faster, but such EVMs often have extra features, such as the [ability to log messages from Solidity](https://hardhat.org/tutorial/debugging-with-hardhat-network.html) or a [graphical user interface](https://trufflesuite.com/ganache/).
-
-### Debug before deploying
-
-After you are done with that development, debug your decentralized application using either a [development network](/operators/chain-operators/tutorials/chain-dev-net) or a [Sepolia test network](/superchain/networks).
-This lets you debug parts that are OP Stack chains specific such as calls to bridges to transfer ETH or tokens between layers.
-
-Only when you have a version that works well on a test network should you deploy to the production network, where every transaction has a cost.
-
-### Contract source verification
-
-You don't have to upload your source code to [block explorers](/app-developers/tools/build/block-explorers), but it is a good idea.
-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?utm_source=op-docs&utm_medium=docs), you need one API key for OP Stack chains and a separate one for OP Sepolia.
diff --git a/pages/app-developers/testing-apps.mdx b/pages/app-developers/testing-apps.mdx
deleted file mode 100644
index d3f9a0f3d..000000000
--- a/pages/app-developers/testing-apps.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Testing apps for the Superchain
-description: Learn best practices for testing apps on the Superchain.
----
-
-
-# Testing apps for the Superchain
-
-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 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 Stack-specific features, in the development stack.
-It is a lot faster.
-
-It is a best practice to design and run thorough tests across an OP test network, either in your [local multichain development environment](/app-developers/tools/supersim), our [devnets](/stack/public-devnets), or on [the test network](/superchain/networks#op-sepolia), depending on your use case. Alternatively, with [Tenderly Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism)you can run tests with complete integration with existing protocols, access to unlimited faucets, continuous state sync, and access to development tools such as Debugger and Simulator UI.
-Running proper testing is key to identifying fringe cases where the equivalence between OP Stack chains and Ethereum breaks down (or where Ethereum mainnet itself and the development stack may be non-equivalent in a production environment).
-
-## Multilayer integration tests
-
-Some apps need OP Stack-specific features that aren't available as part of the development stack.
-For example, if your decentralized application relies on [inter-domain communication](/app-developers/bridging/messaging), the effort of developing a stub to let you debug it in a development stack is probably greater than the hassle of having the automated test go to [a local multichain development environment](/app-developers/tools/supersim) each time.
-
-## Testing and Staging with Tenderly
-
-Tenderly [Virtual TestNets](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism) provide a powerful environment for testing OP Stack applications with mainnet-like conditions. They offer several advantages for testing OP Stack applications:
-
-* **Mainnet State Replication**: Virtual TestNets can sync with the latest OP Stack mainnet state, allowing you to test against real network conditions and interact with up-to-date protocols without spending real assets.
-* **Unlimited Faucet**: Access [unlimited test tokens](https://docs.tenderly.co/virtual-testnets/unlimited-faucet?mtm_campaign=ext-docs&mtm_kwd=optimism) for both native currency and ERC-20 tokens, enabling comprehensive testing of complex DeFi interactions.
-* **Collaborative Testing**: Your entire team can access the same testing environment, making it easier to debug issues and validate fixes.
-* **CI/CD Integration**: Incorporate automated testing in your deployment pipeline using [Virtual TestNets' API](https://docs.tenderly.co/reference/api#/operations/createAlert?mtm_campaign=ext-docs&mtm_kwd=optimism) and [GitHub Actions integration](https://docs.tenderly.co/virtual-testnets/ci-cd/github-actions-foundry?mtm_campaign=ext-docs&mtm_kwd=optimism).
-* **Development tools**: Rely on the built-in [developer explorer](https://docs.tenderly.co/developer-explorer?mtm_campaign=ext-docs&mtm_kwd=optimism) and debugging tools to analyze test transactions and contract interactions.
-
-## Integration with other products
-
-In many cases a decentralized application requires the services of other contracts.
-For example, [Perpetual v. 2](https://docs.perp.com/docs/guides/integration-guide) cannot function without [Uniswap v. 3](https://uniswap.org/blog/uniswap-v3).
-
-* If that is the case, you can use [mainnet forking](/app-developers/tutorials/supersim/reference/fork). It works with OP Stack chains.
-* Create a Virtual TestNet to get access to third party contracts (e.g. Uniswap) and it's latest or historical state.
-* Alternatively, you can connect to our [test network](/superchain/networks#op-sepolia) if those contracts are also deployed there (in many cases they are).
diff --git a/pages/app-developers/tools.mdx b/pages/app-developers/tools.mdx
deleted file mode 100644
index c715b896d..000000000
--- a/pages/app-developers/tools.mdx
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: App developer tools
-description: Learn about app developer tools for the OP Stack.
----
-
-
-# App developer tools
-
-Welcome to the app developer tools!
-
-If you are already familiar with [building on the OP Stack](/stack/getting-started) and just need the tools to get cracking, you are in the right place!
-
-## Connecting
-
-
-
-
-
-
-
-## Building
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## Data and dashboards
-
-
-
-
-
-
-
-
diff --git a/pages/app-developers/tools/build.mdx b/pages/app-developers/tools/build.mdx
deleted file mode 100644
index e2eecde0e..000000000
--- a/pages/app-developers/tools/build.mdx
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Build tools
-description: This guide provides detailed information and resources about building in the Optimism ecosystem.
----
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pages/app-developers/tools/build/account-abstraction.mdx b/pages/app-developers/tools/build/account-abstraction.mdx
deleted file mode 100644
index c9cc6f1f7..000000000
--- a/pages/app-developers/tools/build/account-abstraction.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Account abstraction
-description: This guide explains how to use account abstraction to remove friction from your app experience
----
-
-
-
- As of today, this endpoint is not enabled by default in the stack. The operator must explicitly configure this.
-
-
-## Superchain paymaster
-
-
-## Account abstraction tools
-
-
-* [Alchemy](https://www.alchemy.com/account-abstraction):
- Account Kit is a complete solution for account abstraction. Using Account Kit, you can create a smart contract wallet for every user that leverages account abstraction to simplify every step of your app's onboarding experience. It also offers Gas Manager and Bundler APIs for sponsoring gas and batching transactions.
-
-* [Biconomy](https://docs.biconomy.io/): is an Account Abstraction toolkit that enables you to provide the simplest UX for your app or wallet. It offers modular smart accounts, as well as paymasters and bundlers as a service for sponsoring gas and executing transactions at scale.
-
-* [GroupOS](https://docs.groupos.xyz/introduction/group-os): provides Smart Wallets that are ERC-4337 compliant smart wallets, offering full flexibility, programmability and extensibility as well as out-of-the-box toolkit groups need to gaslessly onboard and activate wallets to games, applications, and/or protocols.
-
-* [Openfort](https://openfort.io/docs): is an open-source alternative to wallet infrastructure solutions. The core offerings—Openfort Kit, Invisible Wallet, and Cross-app Wallet - enable rapid integration of wallet functionality, intuitive onboarding, and flexible user journeys for any application or ecosystem.
-
-* [Pimlico](https://docs.pimlico.io/): provides an infrastructure platform that makes building smart accounts simpler. If you are developing, an ERC-4337 smart account, they provide bundlers, verifying paymasters, ERC-20 paymasters, and much more.
-
-* [Reown](https://reown.com/?utm_source=optimism&utm_medium=docs&utm_campaign=backlinks) gives developers the tools to build user experiences that make digital ownership effortless, intuitive, and secure. Using Reown's AppKit SDK, you can enable your users to create a smart wallet using their social logins, configure a paymaster to sponsor gas fees, enable chain abstraction and a lot more.
-
-* [Safe](https://docs.safe.global/home/what-is-safe): provides modular smart account infrastructure and account abstraction stack via their Safe\{Core\} Account Abstraction SDK, API, and Protocol.
-
-* [Stackup](https://docs.stackup.sh/docs): provides smart account tooling for building account abstraction within your apps. They offer Paymaster and Bundler APIs for sponsoring gas and sending account abstraction transactions.
-
-* [thirdweb](https://portal.thirdweb.com/react/v5/account-abstraction/get-started?utm_source=opdocs&utm_medium=docs):
- offers the complete tool-kit to leverage account abstraction technology to enable seamless user experiences for your users. This includes Account Factory contracts that lets your users spin up Smart Accounts, Bundler for UserOps support, and Paymaster to enable gas sponsorships.
-
-## Helpful tips
-
-* [EIP-1271 Signature Validation](https://eip1271.io/)
-* [Making smart accounts work with WalletConnect v2](https://safe-global.notion.site/WalletConnect-v2-update-Issues-and-solutions-for-smart-wallets-3fc32fad6af4485fa5823eaebd486819)
-
-## Inclusion criteria
-
-
-1. **ongoing partnership** with Optimism whether formal agreement, RPGF, RFP, collaborated on specific initiatives, etc.;
-2. **established user base** and OP ecosystem engagement such as governance participation, [Community Discord](https://discord.gg/optimism) or [Superchain Developer Discord](https://guild.xyz/superchain-devs) participation, etc.; and
-3. **actively maintained developer tool** that aligns with OP's commitment to a magical developer experience (e.g., easy-to-use, easy-to-integrate, great DevX, highly rated by community, etc.)
-
diff --git a/pages/app-developers/tools/build/analytics-tools.mdx b/pages/app-developers/tools/build/analytics-tools.mdx
deleted file mode 100644
index 967807a39..000000000
--- a/pages/app-developers/tools/build/analytics-tools.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Analytics tools
-description: Learn about platforms you can use to gather analytics and setup customizations about OP Mainnet.
----
-
-## Blocknative
-
-[Blocknative](https://www.blocknative.com/) lets you [decode](http://docs.blocknative.com/ethernow/batch-decoder-api) and [analyze](https://docs.blocknative.com/blocknative-data-archive/blob-archive) OP Stack Batches submitted to the Ethereum L1. You can inspect, analyze, decode, and download the data of any batch – confirmed on-chain or not – via public APIs or visually through the [Ethernow Explorer](http://ethernow.xyz). Below you can find links to the different resources:
-
-* [Batch Decoding API](http://docs.blocknative.com/ethernow/batch-decoder-api): decode OP Stack Batch transactions into its human-readable, JSON format.
-* [Blob Archive API](https://docs.blocknative.com/blocknative-data-archive/blob-archive): take any versioned hash of an OP Stack Blob and receive the blob data (even beyond the 4096 epoch window of storage).
-* [Mempool Archive](https://docs.blocknative.com/blocknative-data-archive/mempool-archive): Analyze any OP Stack transaction that was in the Ethereum mempool to see detection time, time pending, gas, etc.
-* [Ethernow explorer](http://ethernow.xyz): Visually see transactions and batches enter the mempool and get organized into blocks. Use this filter to see OP Stack Batches enter the mempool and land on-chain.
-
-## Tenderly
-
-[Tenderly](https://tenderly.co/?mtm_campaign=ext-docs&mtm_kwd=optimism) provides comprehensive monitoring and security solutions for OP-powered Chains, allowing you to stay informed and respond proactively to potential issues in real time.
-
-* Configure [Tenderly Alerts](https://docs.tenderly.co/alerts/intro-to-alerts?mtm_campaign=ext-docs&mtm_kwd=optimism) for monitoring wallets and setting up real-time notifications on transactions and contract events. Notifications trigger external webhooks, PagerDuty, or chat apps like Telegram and Slack.
-* Rely on [Developer Explorer](https://docs.tenderly.co/developer-explorer?mtm_campaign=ext-docs&mtm_kwd=optimism) to monitor and analyze transaction execution with high level of details.
-* Use [Web3 Actions](https://docs.tenderly.co/web3-actions/intro-to-web3-actions?mtm_campaign=ext-docs&mtm_kwd=optimism) to automate predefined responses, improving security and user experience.
-* Integrate [Simulation RPC](https://docs.tenderly.co/simulations/single-simulations#simulate-via-rpc?mtm_campaign=ext-docs&mtm_kwd=optimism) to predict transaction outcomes such as the expected asset changes, precise gas usage, and emitted events.
-
-## Dune analytics
-
-[Dune Analytics](https://dune.com) allows anyone to create dashboards that present information about OP Chains (OP Mainnet, Base, and Zora are available). See [Dune Docs](https://dune.com/docs/) for more info.
-
-
-* [OP Chains / Superchain - L2 Activity, Chain Economics](https://dune.com/oplabspbc/op-stack-chains-l1-activity)
-* [OP Chains / Superchain - Popular Apps & Project Usage Trends](https://dune.com/oplabspbc/superchain-op-chains-apps-and-project-usage-trends)
-* [By OP Chain - L2/L1 Chain Economics](https://dune.com/oplabspbc/optimism-l2-l1-economics)
-* [OP Token House Delegates](https://dune.com/optimismfnd/optimism-op-token-house)
-* [Superchain NFTs](https://dune.com/oplabspbc/superchain-nfts)
-
-## Additional tools and resources
-
-
-* L2 Usage and Comparison: [growthepie](https://www.growthepie.xyz/)
-* OP Analytics (Incentive Tracking, Helper Functions, Public Analysis): [OP Analytics on GitHub](https://github.com/ethereum-optimism/op-analytics)
-* Contribute to NumbaNERDs: [Issues on GitHub](https://github.com/ethereum-optimism/op-analytics/issues)
diff --git a/pages/app-developers/tools/build/block-explorers.mdx b/pages/app-developers/tools/build/block-explorers.mdx
deleted file mode 100644
index 52be7dbee..000000000
--- a/pages/app-developers/tools/build/block-explorers.mdx
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Block explorers
-description: Learn about different block explorers you can use to interact with contracts and view transaction history for OP Mainnet and OP Sepolia.
----
-
-
- This page includes providers that meet specific [inclusion criteria](#inclusion-criteria), as outlined below. Please visit the [community block explorers page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/block-explorers.md) for an additional listing of third-party block explorers.
-
-
-## Blockscout
-
-
-* [Verified testnet contract source code, along with the ability to interact with it](https://optimism.blockscout.com/verified-contracts)
-* [Detailed testnet transaction information](https://optimism.blockscout.com/tx/0xa1b04233084d4067ec0bb3e09301012900f0e209f14a3d406f3d6dc696eea138)
-
-
-* [An interactive list of deposits (L1-L2)](https://optimism.blockscout.com/l2-deposits)
-* [An interactive list of withdrawals (L2-L1)](https://optimism.blockscout.com/l2-withdrawals)
-* [Transaction batches](https://optimism.blockscout.com/l2-txn-batches)
-* [App marketplace](https://optimism.blockscout.com/apps)
-* And much more!
-
-## Etherscan
-
-
-
-* [Verified contract source code, along with the ability to interact with it](https://explorer.optimism.io/address/0x420000000000000000000000000000000000000F#code)
-* [Detailed transaction information](https://explorer.optimism.io/tx/0x292423266d6da24126dc4e0e81890c22a67295cc8b1a987e71ad84748511452f)
-* And everything else you might find on Etherscan!
-
-
-* [A list of L1-to-L2 transactions](https://explorer.optimism.io/txsEnqueued)
-* [A list of L2-to-L1 transactions](https://explorer.optimism.io/txsExit)
-* [A tool for finalizing L2-to-L1 transactions](https://explorer.optimism.io/messagerelayer)
-* And more! Just check it out and click around to find all of the available features.
-
-## Superscan by Routescan
-
-[Superscan](https://superscan.network) is the dev-focused Superchain explorer unified at the ecosystem level, powered by [Routescan](https://routescan.io). On the Superscan, developers can quickly glance at transactions, blocks, addresses, deployed contracts and more across the Superchain in unified pages.
-
-
-* Mainnet - OP Mainnet, Base, Zora, Mode, Cyber, Orderly, Fraxtal, Public Goods Network
-* Testnet - Zora, Mode, Orderly, Fraxtal
-
-## Once Upon
-
-
-
-* Mainnet - Ethereum, OP Mainnet, Base, Zora, Public Goods Network
-* Sepolia - Ethereum, OP Sepolia, Base, Zora, Public Goods Network, Lyra, Mode
-
-
-## Tenderly
-
-
-
-* Keep track of specific [contracts](https://docs.tenderly.co/developer-explorer/contracts?mtm_campaign=ext-docs&mtm_kwd=optimism) and their transactions
-* Inspect [transaction execution](https://docs.tenderly.co/developer-explorer/inspect-transaction?mtm_campaign=ext-docs&mtm_kwd=optimism) with fully decoded transaction trace
-* [Debug](https://docs.tenderly.co/debugger?mtm_campaign=ext-docs&mtm_kwd=optimism) failing and [simulate](https://docs.tenderly.co/simulator-ui/using-simulation-ui?mtm_campaign=ext-docs&mtm_kwd=optimism) correct transactions before sending them on-chain
-* Evaluate [function-level gas usage](https://docs.tenderly.co/debugger/gas-profiler?mtm_campaign=ext-docs&mtm_kwd=optimism) for any transaction
-* Set up [Alerts](https://docs.tenderly.co/alerts/tutorials-and-quickstarts/alerting-quickstart-guide?mtm_campaign=ext-docs&mtm_kwd=optimism) to monitor interactions, access control, asset transfers, and contracts' state changes
-* Create a [Virtual TestNet](https://docs.tenderly.co/virtual-testnets?mtm_campaign=ext-docs&mtm_kwd=optimism) from a specific OP Mainnet or OP Chain transaction for systematic research
-
-
-## Access to pre-regenesis history
-
-
-## Inclusion criteria
-
-
-1. **ongoing partnership** with Optimism whether formal agreement, RPGF, RFP, collaborated on specific initiatives, etc.;
-2. **established user base** and OP ecosystem engagement such as governance participation, [Community Discord](https://discord.gg/optimism) or [Superchain Developer Discord](https://guild.xyz/superchain-devs) participation, etc.; and
-3. **actively maintained developer tool** that aligns with OP's commitment to a magical developer experience (e.g., easy-to-use, easy-to-integrate, great DevX, highly-rated by community, etc.)
-
-
-## 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](/app-developers/tools) to explore more options!
diff --git a/pages/app-developers/tools/build/faucets.mdx b/pages/app-developers/tools/build/faucets.mdx
deleted file mode 100644
index ee07bb549..000000000
--- a/pages/app-developers/tools/build/faucets.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Testnet faucets
-description: Learn how to get testnet ETH on test networks like Sepolia and OP Sepolia for development and testing purposes.
----
-
-
-# Testnet faucets
-
-Faucets are developers tools that allow you to get free ETH (and other tokens) on test networks like Sepolia and OP Sepolia so that you can send transactions and create smart contracts.
-Here you'll find a list of active faucets that you can try out.
-Different faucets use different authentication methods, so you may have to try a few before you find one that works for you.
-Faucets can occasionally also run out of ETH, so if you're having trouble getting ETH from a faucet, try another one.
-
-
-This page includes providers that meet specific [inclusion criteria](#inclusion-criteria), as outlined below. Please visit the [community faucets page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/faucets.md) for an additional listing of third-party faucets.
-
-
-
-Tokens on test networks like Sepolia or OP Sepolia have no value and are only meant for testing.
-Optimists only take what they need so that others can use faucets too!
-
-
-## Superchain faucet
-
-The [Superchain Faucet](https://console.optimism.io/faucet?utm_source=op-docs&utm_medium=docs) is a developer tool hosted by Optimism that allows developers to get free testnet ETH to test apps on testnet OP Chains like Base Sepolia, OP Sepolia, PGN Sepolia, Zora Sepolia, and other OP Chains in the Superchain.
-The Superchain Faucet is a great place to start if you're looking for testnet ETH.
-
-## Additional faucets
-
-| Faucet Name | Supported Networks |
-| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
-| [Alchemy Faucet](https://sepoliafaucet.com) | Sepolia |
-| [Chain Platform Faucet](https://faucet.chainplatform.co/faucets/ethereum-sepolia/) | Sepolia |
-| [Ethereum Ecosystem Faucets](https://www.ethereum-ecosystem.com/faucets) | Sepolia, OP Sepolia, Base Sepolia |
-| [ETHGlobal Testnet Faucet](https://ethglobal.com/faucet) | Sepolia, OP Sepolia, Base Sepolia, Zora Sepolia, Holesky |
-| [Farcaster Frame Faucet by LearnWeb3](https://warpcast.com/haardikkk/0x28f4237d) | Sepolia, OP Sepolia |
-| [Infura Faucet](https://www.infura.io/faucet/sepolia) | Sepolia |
-| [LearnWeb3 Web App Faucet](https://learnweb3.io/faucets) | Sepolia, OP Sepolia |
-| [Native USDC Faucet](https://faucet.circle.com/) | Sepolia, OP Sepolia |
-| [QuickNode Faucet](https://faucet.quicknode.com/optimism/) | Sepolia, OP Sepolia |
-| [Tenderly Unlimited Faucet](https://docs.tenderly.co/virtual-testnets/unlimited-faucet?mtm_campaign=ext-docs\&mtm_kwd=optimism) | OP Sepolia, OP Mainnet, and [85+ other networks](https://docs.tenderly.co/supported-networks?mtm_campaign=ext-docs\&mtm_kwd=optimism) |
-| [thirdweb OP Sepolia Faucet](https://thirdweb.com/op-sepolia-testnet?utm_source=opdocs\&utm_medium=docs) | OP Sepolia |
-| [thirdweb Sepolia Faucet](https://thirdweb.com/sepolia?utm_source=opdocs\&utm_medium=docs) | Sepolia |
-
-## Bridge from Sepolia
-
-If you have testnet ETH on Sepolia, you can bridge it to OP Sepolia (and vice versa) using the [Superchain Bridges UI](https://app.optimism.io/bridge/?utm_source=op-docs&utm_medium=docs) or this collection of [Superchain Testnet Tools](https://www.superchain.tools/).
-
-## Inclusion criteria
-
-Developer teams who want to feature products/tools on this page must meet the following criteria:
-
-1. **ongoing partnership** with Optimism whether formal agreement, RPGF, RFP, collaborated on specific initiatives, etc.;
-2. **established user base** and OP ecosystem engagement such as governance participation, [Community Discord](https://discord.gg/optimism) or [Superchain Developer Discord](https://guild.xyz/superchain-devs) participation, etc.; and
-3. **actively maintained developer tool** that aligns with OP's commitment to a magical developer experience (e.g., easy-to-use, easy-to-integrate, great DevX, highly-rated by community, etc.)
-
-For teams that are supporting but still establishing a user base, we encourage you to share your tool on the [community faucets page](https://github.com/ethereum-optimism/developers/blob/main/community/tools/faucets.md).
-You can also promote your tool in the [developer forum](https://github.com/ethereum-optimism/developers/discussions/categories/show-and-tell) and signup to share your tool at the next [demo day](https://community.optimism.io/docs/contribute/demo-day/?utm_source=op-docs&utm_medium=docs).
-
-## Next steps
-
-* 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](/app-developers/tools) to explore more options!
diff --git a/pages/app-developers/tools/build/nft-tools.mdx b/pages/app-developers/tools/build/nft-tools.mdx
deleted file mode 100644
index f184c4c3d..000000000
--- a/pages/app-developers/tools/build/nft-tools.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: OP Mainnet NFT tools
-description: Learn the basics of creating an NFT on OP Mainnet.
----
-
-
-# OP Mainnet NFT tools
-
-## The OP Mainnet NFT ecosystem
-
-
-
-## Statistics
-
-[Click here for statistics about NFTs on OP Mainnet](https://dune.com/oplabspbc/optimism-nft-secondary-marketplaces)
-
-## Creator tools
-
-These tools are available on OP Mainnet:
-
-* [NiftyKit](https://niftykit.com/)
-* [nft-inator](https://nft-inator.com/)
-* [Unlock](https://unlock-protocol.com/) (time-bound NFTs for membership)
-* [thirdweb](https://thirdweb.com/?utm_source=opdocs\&utm_medium=docs)
-* [Crossmint](https://crossmint.com/?utm_source=backlinks\&utm_medium=docs\&utm_campaign=optimism)
-
-## Feature comparison
-
-
-This list was last updated early February 2024, but new features are implemented all the time.
-
-
-| | NiftyKit | NFT-Inator | Mintplex | Zero Code NFT | thirdweb | Crossmint |
-| ------------------ | -------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Multi-chain | 3 | 5 | 6 | 11 | 2500+ [(all EVM chains)](https://thirdweb.com/dashboard/infrastructure/rpc-edge?utm_source=opdocs\&utm_medium=docs) | 9 |
-| Generator | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
-| ERC-20 support | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
-| ERC-721A support | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| ERC-1155 support | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ |
-| DAO support | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ |
-| No Code deployment | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
-| Pricing / Fee | [Flat membership fee plus 2.5%-10% of the sales](https://app.niftykit.com) | 2% commission on primary sales | Paywall for premium features | Test for free, $499 for OpenSea setup | See the [pricing page](https://thirdweb.com/pricing) for more details | [Mint API Pricing](https://docs.crossmint.com/docs/pricing?utm_source=backlinks\&utm_medium=docs\&utm_campaign=optimism). NFT Checkouts free for seller (Unlimited transactions). |
-| Image Hosting | [NFT storage](https://nft.storage/) / [Pinata](https://www.pinata.cloud/) | [NFT storage](https://nft.storage/) / [Pinata](https://www.pinata.cloud/) | Up to creators. Recommend [Pinata](https://www.pinata.cloud/) | [IPFS](https://ipfs.tech/) | [IPFS](https://ipfs.tech/) | [IPFS](https://ipfs.tech/) and [Arweave](https://www.arweave.org/). |
-
-## NFT data APIs
-
-* [Moralis](https://docs.moralis.io/web3-data-api/evm/reference/nft-api?utm_source=op-docs\&utm_medium=partner-docs)
-* [Alchemy](https://docs.alchemy.com/reference/nft-api-quickstart)
-* [SimpleHash](https://simplehash.com/)
-* [QuickNode](https://www.quicknode.com/nft-api)
-* [Reservoir](https://docs.reservoir.tools/reference/optimism)
-* [NFTScan](https://docs.nftscan.com/reference/evm/get-nfts-by-account)
-
-## Marketplaces
-
-* [OpenSea](https://opensea.io/rankings?chain=optimism)
-* [Tofu](https://tofunft.com/optimism)
-* [Circular Art](https://www.circularart.xyz/)
diff --git a/reference/contribute/contribute/docs-contribute.mdx b/reference/contribute/docs-contribute.mdx
similarity index 100%
rename from reference/contribute/contribute/docs-contribute.mdx
rename to reference/contribute/docs-contribute.mdx
diff --git a/reference/contribute/contribute/stack-contribute.mdx b/reference/contribute/stack-contribute.mdx
similarity index 100%
rename from reference/contribute/contribute/stack-contribute.mdx
rename to reference/contribute/stack-contribute.mdx
diff --git a/reference/contribute/contribute/style-guide.mdx b/reference/contribute/style-guide.mdx
similarity index 100%
rename from reference/contribute/contribute/style-guide.mdx
rename to reference/contribute/style-guide.mdx