Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
1537cff
updated tracing transaction tutorial
krofax Oct 8, 2024
be41dab
Added file imports
krofax Oct 8, 2024
4afd50f
Added next steps
krofax Oct 8, 2024
f03401c
update text
krofax Oct 8, 2024
665c798
Update sdk-trace-txns.js
krofax Oct 18, 2024
4a5abc0
updated file imports
krofax Oct 21, 2024
ecee772
updated lint issues
krofax Oct 21, 2024
048cd4e
fix link
krofax Oct 21, 2024
f72e490
fix lint issues
krofax Oct 21, 2024
ac46357
updated file
krofax Oct 21, 2024
7e4600e
Update pages/builders/app-developers/tutorials/sdk-trace-txns.mdx
krofax Oct 22, 2024
1043a5d
Update pages/builders/app-developers/tutorials/sdk-trace-txns.mdx
krofax Oct 22, 2024
840fa60
updated codebase
krofax Oct 22, 2024
7257426
merge conflict
krofax Oct 22, 2024
32bb82d
updated codebase
krofax Oct 25, 2024
fee614a
fix merged conflict
krofax Oct 25, 2024
a7f27f5
updated word.txt
krofax Oct 30, 2024
02bd64d
updated file import paths
krofax Oct 30, 2024
36fea13
updated the RPC URL
krofax Oct 31, 2024
3a0a9bb
fix conflict
krofax Nov 7, 2024
400306c
resolve file import issue
krofax Nov 7, 2024
c75690d
Moved tutorials to their own directory
qbzzt Jan 16, 2025
2ad3f7f
Fix JSONs
qbzzt Jan 16, 2025
8791d39
Moved best practices to where it belongs
qbzzt Jan 16, 2025
3e14102
fix(cleanup): replace dangling plasma refs with altda
bitwiseguy Jan 17, 2025
1b7cb11
Removed `assets.mdx`
qbzzt Jan 17, 2025
dada59f
Fix grammatical error
Red-Pandaz Jan 16, 2025
2b630ee
Add missing letter
Red-Pandaz Jan 16, 2025
a7007db
Add punctuation and words for clarity
Red-Pandaz Jan 16, 2025
6aa2f77
Change second allow to infinitive for consistency
Red-Pandaz Jan 16, 2025
2cf3463
Rearrange link cards to stay consistent with navbar
Red-Pandaz Jan 16, 2025
c34f53c
Change definitions of Unsafe Head and Unsafe Blocks for clarity
Red-Pandaz Jan 16, 2025
d689205
Add missing comma
Red-Pandaz Jan 16, 2025
163d21c
Change 'a' to 'an'
Red-Pandaz Jan 16, 2025
63c08bd
Add missing word for clarity
Red-Pandaz Jan 16, 2025
7a82c88
Remove unnecessary and duplicate text
Red-Pandaz Jan 16, 2025
dc5d914
Add parens around 's' in 'actions' for potential plural
Red-Pandaz Jan 16, 2025
dc8cdb2
Add parens around 's' in 'actions' for potential plural
Red-Pandaz Jan 16, 2025
e453859
Add 'the' before 'action(s) to remain consistent
Red-Pandaz Jan 16, 2025
ec414ef
add 'scenario' to improve clarity
Red-Pandaz Jan 16, 2025
00de024
Add parentheses around i.e. statement for clarity
Red-Pandaz Jan 16, 2025
f9d1f49
Change wording to improve sentence flow
Red-Pandaz Jan 16, 2025
217a927
Change 'or' to 'i.e.'
Red-Pandaz Jan 16, 2025
ff74764
Add missing word
Red-Pandaz Jan 16, 2025
5e15893
Break up run-on sentence
Red-Pandaz Jan 16, 2025
f67f215
Remove unnecessary word
Red-Pandaz Jan 16, 2025
cddcd8c
Reformat run-on sentence
Red-Pandaz Jan 16, 2025
87ef900
Add comma
Red-Pandaz Jan 16, 2025
3ccf48b
Add i.e.
Red-Pandaz Jan 16, 2025
baabcf9
Add comma
Red-Pandaz Jan 16, 2025
47159cf
Capitalize L
Red-Pandaz Jan 16, 2025
dbd80a7
Change determiner for consistency
Red-Pandaz Jan 16, 2025
d0a2cd6
Add missing 'the'
Red-Pandaz Jan 16, 2025
db4e07c
Change comma to semicolon
Red-Pandaz Jan 16, 2025
368931e
Add transaction-flow-dark-mode.svg
Red-Pandaz Jan 16, 2025
692dbe9
Change image source to transaction-flow-dark-mode.svg
Red-Pandaz Jan 16, 2025
715a8d3
Make 'parameters' singular and remove unnecessary comma
Red-Pandaz Jan 17, 2025
c3a112c
Correct phrasing
Red-Pandaz Jan 17, 2025
a642861
Correct phrasing
Red-Pandaz Jan 17, 2025
a06b7db
Change comma to hyphen
Red-Pandaz Jan 17, 2025
54c1d90
Add dark mode version of deposit-flow.svg
Red-Pandaz Jan 17, 2025
e61f07f
Change image source to deposit-flow-dark-mode.svg
Red-Pandaz Jan 17, 2025
bf89b11
Remove duplicate, unnecessary transactions page and remove references…
Red-Pandaz Jan 17, 2025
9b64ebf
Rephrase sentence for clarity
Red-Pandaz Jan 17, 2025
35b7ba5
lint: fix table spacing
bitwiseguy Jan 17, 2025
fbc6ef3
lint: add 'altda' to words.txt
bitwiseguy Jan 17, 2025
3e6c5a6
lint: fix typo
bitwiseguy Jan 17, 2025
8870649
lint: add PREVRANDAO to words.txt
bitwiseguy Jan 17, 2025
1f06a6f
Merge branch 'main' into ss/replace-dangling-plasma
bitwiseguy Jan 17, 2025
cd9ba72
Add standandard config page
krofax Jan 17, 2025
165105b
fin lint issues
krofax Jan 17, 2025
4f6b83d
Change 'needs' to 'need(s)'
Red-Pandaz Jan 17, 2025
d744072
Import callout
krofax Jan 17, 2025
f0cea1a
Removed best practices
qbzzt Jan 17, 2025
ac92b86
clean extra spaces
krofax Jan 17, 2025
02c69d4
clean syntax error
krofax Jan 17, 2025
40a5879
added links
krofax Jan 17, 2025
f03bebd
Update words.txt
krofax Jan 17, 2025
eda4386
Update pages/superchain/standard-configuration.mdx
krofax Jan 17, 2025
f3c1387
Merge pull request #1258 from ethereum-optimism/ss/replace-dangling-p…
krofax Jan 17, 2025
d7048d0
made indentation fixes
krofax Jan 17, 2025
fd1a28e
Update pages/superchain/standard-configuration.mdx
krofax Jan 17, 2025
89c070e
Update pages/superchain/standard-configuration.mdx
krofax Jan 17, 2025
4ee078a
Merge pull request #1260 from Red-Pandaz/docs-fixes
krofax Jan 17, 2025
6209934
Update pages/stack/interop/superchain-erc20.mdx
krofax Jan 17, 2025
cea50e4
Merge pull request #1253 from qbzzt/250116-reorg-tutorials-b
zainbacchus Jan 17, 2025
1f08f75
add docs on alpha- and betanets
tessr Jan 17, 2025
3f4d32b
fix formatting
tessr Jan 17, 2025
81f7373
Update FAQ question on fault proofs
Red-Pandaz Jan 17, 2025
f686aa9
Rewrite desciptions of fault proof contracts
Red-Pandaz Jan 17, 2025
10f690e
Expand definition of anchor state
Red-Pandaz Jan 18, 2025
f0739a6
updated description
krofax Jan 19, 2025
568cd7d
updated standardization comment
krofax Jan 19, 2025
5af7697
updated meta json
krofax Jan 19, 2025
1f8db94
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
fcf5e79
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
ba16dd9
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
0302205
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
c05b1cc
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
1b0baaa
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
6c02432
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
f5f4006
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
4720a1e
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
73fcc9e
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
5a11ad5
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
9bc9f2c
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
af34107
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
1d44c66
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
e23a1ed
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
84f5aac
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
a946a99
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
4b56216
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
b52a2cb
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
ededf85
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
c2b8208
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
1c005ea
Update pages/superchain/standard-configuration.mdx
krofax Jan 19, 2025
14a5849
merge conflict
krofax Jan 19, 2025
3e616c3
resolve comments
krofax Jan 19, 2025
f3e6dd5
resolve conflicts
krofax Jan 19, 2025
df0aae6
Add to op stack page
krofax Jan 19, 2025
adfb0d3
Revise fault proof contract descriptions
Red-Pandaz Jan 19, 2025
21d42e2
WIP
qbzzt Jan 20, 2025
e9871e6
first draft
qbzzt Jan 20, 2025
263a52b
Merge branch 'main' into 250119-supervisor
qbzzt Jan 20, 2025
5ca9d79
Apply suggestions from code review
qbzzt Jan 20, 2025
b714d95
Minor explainer updates
qbzzt Jan 20, 2025
270bf98
Update pages/stack/public-devnets.mdx
tessr Jan 20, 2025
0209d86
tweaks
tessr Jan 20, 2025
c5b6ff6
First version
qbzzt Jan 21, 2025
7882395
Merge pull request #1265 from Red-Pandaz/docs-fixes
krofax Jan 21, 2025
28b7b20
Merge pull request #1267 from qbzzt/250120-fix-explainer
krofax Jan 21, 2025
5c5839b
Merge pull request #1266 from qbzzt/250119-supervisor
krofax Jan 21, 2025
b28bf57
@zainbacchus review comments
qbzzt Jan 21, 2025
9f8fcf1
eslint
qbzzt Jan 21, 2025
5448817
Merge pull request #1259 from ethereum-optimism/standard-config
krofax Jan 21, 2025
d7fc7cf
fix linting
tessr Jan 21, 2025
2cfc81a
Update pages/stack/public-devnets.mdx
krofax Jan 21, 2025
0b537f8
Update pages/stack/public-devnets.mdx
krofax Jan 21, 2025
8c3e01d
Update pages/stack/public-devnets.mdx
krofax Jan 21, 2025
a708b3c
Update pages/stack/public-devnets.mdx
krofax Jan 21, 2025
2dfbae7
updated headers
krofax Jan 21, 2025
3d0cea9
updated lint issues
krofax Jan 21, 2025
c1f05de
Update pages/stack/public-devnets.mdx
tessr Jan 21, 2025
8dc7dd5
Fix Deploy SuperchainERC20 Tutorial link
Chomtana Jan 22, 2025
ea2c23e
Bring the recommendations to the top
richardgreg Jan 3, 2025
ee68ecb
Add content that outlines the standard configurability requirements a…
richardgreg Jan 3, 2025
7d21010
Build the latest release, run the --help command and update the page …
richardgreg Jan 5, 2025
003e8ab
Update batcher page to accurate release version
richardgreg Jan 10, 2025
1e21790
Merge pull request #1264 from ethereum-optimism/tess/alphanets
krofax Jan 22, 2025
648f7e1
Merge pull request #1271 from Chomtana/fix-superchain-erc20-deploy
krofax Jan 22, 2025
3a4e633
Merge pull request #966 from ethereum-optimism/trace-trx
krofax Jan 22, 2025
95310e0
@krofax suggestions
qbzzt Jan 22, 2025
3cff469
Merge pull request #1268 from qbzzt/250120-msg-passing
krofax Jan 22, 2025
1dc3ac2
Create quick-glance.mdx
zainbacchus Jan 22, 2025
615b404
Update _meta.json
zainbacchus Jan 22, 2025
891b4b3
Update quick-glance.mdx
zainbacchus Jan 22, 2025
3b69c93
Update quick-glance.mdx
zainbacchus Jan 22, 2025
35fc21c
Rename quick-glance.mdx to fact-sheet.mdx
zainbacchus Jan 22, 2025
905ac83
Update fact-sheet.mdx
zainbacchus Jan 22, 2025
f5604af
Update fact-sheet.mdx
zainbacchus Jan 22, 2025
43e01e8
Update fact-sheet.mdx
zainbacchus Jan 22, 2025
e67838e
Update fact-sheet.mdx
zainbacchus Jan 22, 2025
9906150
Update fact-sheet.mdx
zainbacchus Jan 22, 2025
4bde6ce
Update the `SuperchainERC20` page
qbzzt Jan 22, 2025
5c6e6ed
Merge pull request #1215 from richardgreg/batcher-config-update
sbvegan Jan 23, 2025
fbdaea0
Most @zainbacchus comments
qbzzt Jan 23, 2025
725115a
Merge branch 'main' into 250122-erc20
qbzzt Jan 23, 2025
6a35924
fix spelling error security.mdx
Marcofann Jan 23, 2025
29eecc7
Merge pull request #1274 from Marcofann/fix/spelling
sbvegan Jan 23, 2025
3a467eb
Last @zainbacchus comments (for now, anyway)
qbzzt Jan 23, 2025
50bd0f9
Unified comments
qbzzt Jan 23, 2025
dd37446
Update explainer.mdx
zainbacchus Jan 23, 2025
6e8dc2e
Apply suggestions from @krofax
qbzzt Jan 23, 2025
e2f3ff3
Update pages/stack/interop/superchain-erc20.mdx
qbzzt Jan 23, 2025
136a09d
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
09f61ab
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
796034f
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
00980d3
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
27d6014
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
cda8a70
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
77c2eda
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
771fc5d
Update fact-sheet.mdx
zainbacchus Jan 23, 2025
59bec55
minor tweaks and linter fixes
sbvegan Jan 23, 2025
d180af2
fixing spellcheck
sbvegan Jan 23, 2025
a6b00f9
fixing more broken links
sbvegan Jan 23, 2025
a573008
Fixed
qbzzt Jan 23, 2025
38f4851
fixing break crumbfile
sbvegan Jan 23, 2025
283e310
Merge pull request #1275 from ethereum-optimism/zainbacchus-patch-4
zainbacchus Jan 23, 2025
9ac8aad
AAAAAAA
sbvegan Jan 23, 2025
f55c539
okay that should do it
sbvegan Jan 23, 2025
ef7c741
one last link
sbvegan Jan 23, 2025
ec8c9ac
Merge pull request #1272 from ethereum-optimism/zainbacchus-patch-3
sbvegan Jan 23, 2025
47a4b20
making small fixes and adding config recommendations
sbvegan Jan 24, 2025
c1d920b
Merge pull request #1276 from ethereum-optimism/sb/batcher-config-upd…
sbvegan Jan 24, 2025
7415fd6
Merge branch 'main' into 250122-erc20
sbvegan Jan 24, 2025
5eac34c
adding information about auto switching data availability type
sbvegan Jan 24, 2025
b76b77d
removing outdated line
sbvegan Jan 24, 2025
16ee01b
Merge pull request #1279 from ethereum-optimism/sb/issue-1247
bradleycamacho Jan 24, 2025
c8829d8
Merge pull request #1273 from qbzzt/250122-erc20
krofax Jan 24, 2025
86d5dc6
Merge pull request #1278 from ethereum-optimism/sb/issue-1269
krofax Jan 24, 2025
a05fa97
Merge remote-tracking branch 'upstream/main' AND update chain names
squdgy Jan 24, 2025
f29ffa4
update chain names and fix merge issues
squdgy Jan 24, 2025
cb1df09
fix line hashes
squdgy Jan 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions components/calculator/ChainParametersForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type DataAvailabilityType = "Ethereum" | "AltDA Plasma Mode";
export function ChainParametersForm(): ReactElement {
const [transactionsPerDay, setTransactionsPerDay] = useState(500000);
const [comparableTransactionType, setComparableTransactionType] =
useState<ComparableTransactionType>("General OP Mainnet");
useState<ComparableTransactionType>("General Metal L2");
const [dataAvailabilityType, setDataAvailabilityType] = useState<DataAvailabilityType>("Ethereum");
const [isFaultProofEnabled, setIsFaultProofEnabled] = useState("yes");
const [targetDataFeeMargin, setTargetDataFeeMargin] = useState(5);
Expand All @@ -36,7 +36,7 @@ export function ChainParametersForm(): ReactElement {
const [showResult, setShowResult] = useState(false);

const comparableTransactionTypeOptions = [
"General OP Mainnet",
"General Metal L2",
"Base",
"Zora",
"Mint",
Expand Down
2 changes: 1 addition & 1 deletion nouns.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Optimism
OP Mainnet
Metal L2
Ethereum
OP Stack
MetaMask
Expand Down
2 changes: 1 addition & 1 deletion pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
},

"chain": {
"title": "OP Mainnet",
"title": "Metal L2",
"display": "children"
},

Expand Down
11 changes: 2 additions & 9 deletions pages/builders/app-developers/bridging/custom-bridge.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Custom bridges
lang: en-US
description: Important considerations when building custom bridges for OP Mainnet.
description: Important considerations when building custom bridges for Metal L2.
---

import { Callout } from 'nextra/components'
Expand Down Expand Up @@ -33,12 +33,5 @@ You can read more about the design of the Standard Bridge in the guide on [Using

The [Superchain Token List](/chain/tokenlist) exists to help users and developers find the right bridged representations of tokens native to another blockchain.
Once you've built and tested your custom bridge, make sure to register any tokens meant to flow through this bridge by [making a pull request against the Superchain Token List repository](https://github.com/ethereum-optimism/ethereum-optimism.github.io#adding-a-token-to-the-list).
You **must** deploy your bridge to OP Sepolia before it can be added to the Superchain Token List.
You **must** deploy your bridge to Metal L2 Testnet before it can be added to the Superchain Token List.

## Next steps

You can explore several examples of custom bridges for OP Mainnet:

* [NFT Bridge](https://github.com/ethereum-optimism/optimism/blob/v1.1.4/packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol)
* [L2 DAI Token Bridge](https://optimistic.etherscan.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)
18 changes: 9 additions & 9 deletions pages/builders/app-developers/bridging/messaging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { Callout } from 'nextra/components'

# Sending data between L1 and L2

Smart contracts on L1 (Ethereum) can interact with smart contracts on L2 (OP Mainnet) through a process called "bridging".
Smart contracts on L1 (Ethereum) can interact with smart contracts on L2 (Metal L2) through a process called "bridging".
This page explains how bridging works, how to use it, and what to watch out for.

<Callout type="info">
Expand All @@ -18,8 +18,8 @@ This page explains how bridging works, how to use it, and what to watch out for.

## Understanding contract calls

It can be easier to understand bridging if you first have a basic understanding of how contracts on EVM-based blockchains like OP Mainnet and Ethereum communicate within the *same* network.
The interface for sending messages *between* Ethereum and OP Mainnet is designed to mimic the standard contract communication interface as much as possible.
It can be easier to understand bridging if you first have a basic understanding of how contracts on EVM-based blockchains like Metal L2 and Ethereum communicate within the *same* network.
The interface for sending messages *between* Ethereum and Metal L2 is designed to mimic the standard contract communication interface as much as possible.

Here's how a contract on Ethereum might trigger a function within another contract on Ethereum:

Expand Down Expand Up @@ -89,7 +89,7 @@ address(_target).call{gas: _minGasLimit}(_message);
Except, of course, that you're calling a contract on a completely different network.

This is glossing over a lot of the technical details that make this whole thing work under the hood, but this should be enough to get you started.
Want to call a contract on OP Mainnet from a contract on Ethereum?
Want to call a contract on Metal L2 from a contract on Ethereum?
It's dead simple:

```solidity
Expand Down Expand Up @@ -118,22 +118,22 @@ contract MyContract {
```

<Callout type="info">
You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on OP Mainnet and OP Sepolia on the [Contract Addresses](/chain/addresses) page.
You can find the addresses of the `L1CrossDomainMessenger` and the `L2CrossDomainMessenger` contracts on Metal L2 and Metal L2 Testnet on the [Contract Addresses](/chain/addresses) page.
</Callout>

## Communication speed

Unlike calls between contracts on the same blockchain, calls between Ethereum and OP Mainnet are *not* instantaneous.
Unlike calls between contracts on the same blockchain, calls between Ethereum and Metal L2 are *not* instantaneous.
The speed of a cross-chain transaction depends on the direction in which the transaction is sent.

### For L1 to L2 transactions

Transactions sent from L1 to L2 take **approximately 1-3 minutes** to get from Ethereum to OP Mainnet, or from Sepolia to OP Sepolia.
Transactions sent from L1 to L2 take **approximately 1-3 minutes** to get from Ethereum to Metal L2, or from Sepolia to Metal L2 Testnet.
This is because the Sequencer waits for a certain number of L1 blocks to be created before including L1 to L2 transactions to avoid potentially annoying [reorgs](https://www.alchemy.com/overviews/what-is-a-reorg).

### For L2 to L1 transactions

Transactions sent from L2 to L1 take **approximately 7 days** to get from OP Mainnet to Ethereum, or from OP Sepolia to Sepolia.
Transactions sent from L2 to L1 take **approximately 7 days** to get from Metal L2 to Ethereum, or from Metal L2 Testnet to Sepolia.
This is because the bridge contract on L1 must wait for the L2 state to be *proven* to the L1 chain before it can relay the message.

The process of sending transactions from L2 to L1 involves four distinct steps:
Expand Down Expand Up @@ -199,7 +199,7 @@ The amount of L1 gas charged increases when more people are sending L1 to L2 tra

Each message from L2 to L1 requires three transactions:

1. An L2 transaction that *initiates* the transaction, which is priced the same as any other transaction made on OP Mainnet.
1. An L2 transaction that *initiates* the transaction, which is priced the same as any other transaction made on Metal L2.

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.
Expand Down
34 changes: 17 additions & 17 deletions pages/builders/app-developers/bridging/standard-bridge.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import { Callout, Steps } from 'nextra/components'

# Using the Standard Bridge

The Standard Bridge is a basic token bridging system available on OP Mainnet and all other standard OP Stack chains.
The Standard Bridge allows you to easily move ETH and most ERC-20 tokens between Ethereum and OP Mainnet.
Transfers from Ethereum to OP Mainnet via the Standard Bridge are usually completed within 1-3 minutes.
Transfers from OP Mainnet to Ethereum are completed in 7 days as a result of the [withdrawal challenge period](./messaging#understanding-the-challenge-period).
The Standard Bridge is a basic token bridging system available on Metal L2 and all other standard OP Stack chains.
The Standard Bridge allows you to easily move ETH and most ERC-20 tokens between Ethereum and Metal L2.
Transfers from Ethereum to Metal L2 via the Standard Bridge are usually completed within 1-3 minutes.
Transfers from Metal L2 to Ethereum are completed in 7 days as a result of the [withdrawal challenge period](./messaging#understanding-the-challenge-period).

The Standard Bridge is fully permissionless and supports standard ERC-20 tokens.
Other bridging systems also exist that provide different features and security properties.
Expand All @@ -23,17 +23,17 @@ You may wish to explore some of these options to find the bridge that works best

## Design

The Standard Bridge allows users to convert tokens that are native to one chain (like Ethereum) into a representation of those tokens on the other chain (like OP Mainnet).
The Standard Bridge allows users to convert tokens that are native to one chain (like Ethereum) into a representation of those tokens on the other chain (like Metal L2).
Users can then convert these bridged representations back into their original native tokens at any time.

This bridging mechanism functions identically in both directions — tokens native to OP Mainnet can be bridged to Ethereum, just like tokens native to Ethereum can be bridged to OP Mainnet.
Here you'll get to understand how the Standard Bridge works when moving tokens from Ethereum to OP Mainnet.
This bridging mechanism functions identically in both directions — tokens native to Metal L2 can be bridged to Ethereum, just like tokens native to Ethereum can be bridged to Metal L2.
Here you'll get to understand how the Standard Bridge works when moving tokens from Ethereum to Metal L2.
Since the bridging mechanism is mirrored on both sides, this will also explain how the bridge works in the opposite direction.

### Architecture

The Standard Bridge is composed of two contracts, the [`L1StandardBridge`](https://github.com/ethereum-optimism/optimism/blob/65ec61dde94ffa93342728d324fecf474d228e1f/packages/contracts-bedrock/contracts/L1/L1StandardBridge.sol) (on `Ethereum`) and the [`L2StandardBridge`](https://github.com/ethereum-optimism/optimism/blob/65ec61dde94ffa93342728d324fecf474d228e1f/packages/contracts-bedrock/contracts/L2/L2StandardBridge.sol) (on `OP Mainnet`).
These two contracts interact with one another via the `CrossDomainMessenger` system for sending messages between Ethereum and OP Mainnet.
The Standard Bridge is composed of two contracts, the [`L1StandardBridge`](https://github.com/ethereum-optimism/optimism/blob/65ec61dde94ffa93342728d324fecf474d228e1f/packages/contracts-bedrock/contracts/L1/L1StandardBridge.sol) (on `Ethereum`) and the [`L2StandardBridge`](https://github.com/ethereum-optimism/optimism/blob/65ec61dde94ffa93342728d324fecf474d228e1f/packages/contracts-bedrock/contracts/L2/L2StandardBridge.sol) (on `Metal L2`).
These two contracts interact with one another via the `CrossDomainMessenger` system for sending messages between Ethereum and Metal L2.
You can read more about the `CrossDomainMessenger` in the guide on [Sending Data Between L1 and L2](./messaging).

### Bridged tokens
Expand Down Expand Up @@ -104,7 +104,7 @@ The process for bridging a native token involves a few steps.
{<h3>The minting message is executed</h3>}

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.
Message relaying is automatic when sending from Ethereum to Metal L2 but requires additional user transactions when sending from Metal L2 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.
Expand All @@ -126,7 +126,7 @@ The process for bridging a native token involves a few steps.
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.
This process is identical in both the Ethereum to Metal L2 and Metal L2 to Ethereum directions.
</Steps>

### Bridging non-native tokens
Expand All @@ -139,7 +139,7 @@ The process for bridging a non-native, bridged representation of a token involve
{<h3>User calls the bridging function</h3>}

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).
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 Metal L2).

The user must provide the following parameters to this function call:

Expand All @@ -164,7 +164,7 @@ The process for bridging a non-native, bridged representation of a token involve
{<h3>The unlock message is executed</h3>}

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.
Message relaying is automatic when sending from Ethereum to Metal L2 but requires additional user transactions when sending from Metal L2 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.
Expand All @@ -182,17 +182,17 @@ The process for bridging a non-native, bridged representation of a token involve
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.
This process is identical in both the Ethereum to Metal L2 and Metal L2 to Ethereum directions.
</Steps>

### Bridging ETH

The Standard Bridge contracts can also be used to bridge ETH from Ethereum to OP Mainnet and vice versa.
The Standard Bridge contracts can also be used to bridge ETH from Ethereum to Metal L2 and vice versa.
The ETH bridging process is generally less complex than the ERC-20 bridging process.
Users simply need to trigger and send ETH to the [`bridgeETH`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L143-L150) or [`bridgeETHTo`](https://github.com/ethereum-optimism/optimism/blob/2e647210882d961f04055e656590d90ad98c9934/packages/contracts-bedrock/src/universal/StandardBridge.sol#L152-L166) functions on either blockchain.

<Callout>
Users can also deposit ETH from Ethereum to OP Mainnet by sending a basic ETH transfer from an EOA to the `L1StandardBridgeProxy`.
Users can also deposit ETH from Ethereum to Metal L2 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](/chain/addresses) page.
</Callout>
Expand All @@ -217,7 +217,7 @@ Tokens on the Superchain Token List will automatically appear on certain tools l
You should strongly consider using the Superchain Token List to verify that you're using the correct bridged representation of a token when bridging a native token.
Doing so can help you avoid accidentally bridging to the wrong token and locking up your native token permanently.

You can easily find the bridged representation of a token for OP Mainnet on the [Bridged Token Addresses](/chain/tokenlist#op-mainnet) page.
You can easily find the bridged representation of a token for Metal L2 on the [Bridged Token Addresses](/chain/tokenlist#op-mainnet) page.
If you want to find the bridged representation of a token for another chain, use the following steps.

<Steps>
Expand Down
8 changes: 4 additions & 4 deletions pages/builders/app-developers/quick-start.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ This quick start uses [`Scaffold-OP`](https://github.com/ethereum-optimism/scaff

## Step 1: Get Testnet ETH from Superchain Faucet

You'll need some testnet ETH on OP Sepolia to pay for the [gas fees](https://ethereum.org/en/developers/docs/gas/) associated with deploying your test application.
Use the [Optimism Superchain Faucet](https://console.optimism.io/faucet?utm_source=scaffoldop) to get some free ETH on OP Sepolia for multiple OP Chains with just one click.
You'll need some testnet ETH on Metal L2 Testnet to pay for the [gas fees](https://ethereum.org/en/developers/docs/gas/) associated with deploying your test application.
Use the [Optimism Superchain Faucet](https://console.optimism.io/faucet?utm_source=scaffoldop) to get some free ETH on Metal L2 Testnet for multiple OP Chains with just one click.
You can request testnet ETH from the Superchain Faucet in one of two ways: **connect a wallet** or **login with Github**.

<Image src="/img/builders/app-developers/quick-start/faucet-markup.png" alt="Superchain Faucet sign-up options" width={500} height={500} />
Expand All @@ -26,7 +26,7 @@ You can request testnet ETH from the Superchain Faucet in one of two ways: **con

<Callout>
Looking for more faucets?
You can also try using [other available OP Sepolia faucets](/builders/tools/build/faucets).
You can also try using [other available Metal L2 Testnet faucets](/builders/tools/build/faucets).
</Callout>

## Step 2: Build a basic app with Scaffold-OP
Expand Down Expand Up @@ -157,7 +157,7 @@ Please ensure you have enough Sepolia ETH on all these Superchains before deploy
</Callout>
</Steps>

Congratulations! You now have an OP Mainnet app ready for development, which can also be deployed to more OP Chains! 🎉
Congratulations! You now have an Metal L2 app ready for development, which can also be deployed to more OP Chains! 🎉

## Next steps

Expand Down
Loading
Loading