Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions pages/stack/interop/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"cross-chain-message": "Anatomy of cross-chain message",
"supersim": "Supersim Multichain Development Environment",
"superchain-erc20": "SuperchainERC20",
"superchain-weth": "SuperchainWETH (Interoperable ETH)",
"op-supervisor": "OP Supervisor",
"transfer-superchainERC20": "How to transfer a SuperchainERC20"
}
2 changes: 1 addition & 1 deletion pages/stack/interop/cross-chain-message.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Image from 'next/image'

# Anatomy of a cross-chain message

A cross-chain message applies to any message sent across a chain. This applies to asset transfers using the [SuperchainERC20](https://specs.optimism.io/interop/token-bridging.html) token standard.
A cross-chain message applies to any message sent across a chain. This applies to asset transfers using the [SuperchainERC20](superchain-erc20) token standard.

## How it works

Expand Down
4 changes: 2 additions & 2 deletions pages/stack/interop/explainer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ Native OP Stack interoperability provides the ability to read messages and trans
## Secure message passing
Superchain interop includes both the protocol layer message passing and the Superchain ERC20 token specification.

* **Message passing protocol:** the initial + finalizing/executing [message](https://specs.optimism.io/interop/messaging.html) that fire events to be consumed by the chains in the [dependency set](https://specs.optimism.io/interop/dependency-set.html)
* **SuperchainERC20 token specification**: the [SuperchainERC20](https://specs.optimism.io/interop/token-bridging.html) turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/stack/interop/superchain-erc20)
* **Message passing protocol:** the initial + finalizing/executing [message](cross-chain-message) that fire events to be consumed by the chains in the [dependency set](https://specs.optimism.io/interop/dependency-set.html)
* **SuperchainERC20 token specification**: the [SuperchainERC20](superchain-erc20) turns message passing into asset transfer between chains in the interop set. Learn more about how the SuperchainERC20 token standard enables asset interoperability in the Superchain [here](/stack/interop/superchain-erc20)

This means ETH and ERC-20s can seamlessly and securely move across L2s, and intent-based protocols (i.e., bridges) can build better experiences on top of the message passing protocol.

Expand Down
86 changes: 86 additions & 0 deletions pages/stack/interop/superchain-weth.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: SuperchainWETH (Interoperable ETH)
lang: en-US
description: Learn basic details about SuperchainWETH or Interoperable ETH.
---

import { Callout } from 'nextra/components'

# SuperchainWETH (Interoperable ETH)

<Callout>
Interop is currently in active development and not yet ready for production use. The information provided here may change. Check back regularly for the most up-to-date information.
</Callout>

Superchain WETH or Interoperable ETH is a specialized version of the standard WETH (Wrapped Ether) contract designed to enable seamless movement of ETH across the Superchain. It addresses the liquidity constraints and usability issues that arise when transferring ETH between different chains.

## Features and benefits

* Enables seamless ETH transfers across different chains in the Superchain
* Maintains fungibility of ETH across the Superchain
* Provides liquidity for cross-chain transactions
* Improves user experience by abstracting complex bridging processes

<Callout>
The `SuperchainTokenBridge` can only rebalance assets across chains. It cannot mint or increase/decrease the total circulating supply.
</Callout>

## How it works

Currently, L2-to-L2 ETH transfers between two interoperable chains require four separate transactions:

1. Wrap `ETH` to `SuperchainWETH`.
2. Call `SuperchainTokenBridge#SendERC20` to burn `SuperchainWETH` on source chain and relay a message to the destination chain that mints `SuperchainWETH` to the recipient (`crosschainBurn` is used).
3. Execute the message on the destination chain, triggering `SuperchainTokenBridge#RelayERC20` to mint `SuperchainWETH` to the recipient (`crosschainMint` is used). If the destination is a non-custom gas token chain, ETH is sourced from the `ETHLiquidity` contract.
4. Unwrap the received `SuperchainWETH` to `ETH`.

<Callout type="info">
Abstraction is a possible future consideration to reduce this process to two transactions, which can be followed in the [design docs](https://github.com/ethereum-optimism/design-docs/pull/146/files).
</Callout>

```mermaid
sequenceDiagram
participant User
participant Source Chain
participant Cross-Chain Messenger
participant Destination Chain

User->>Source Chain: 1. Wrap ETH to SuperchainWETH
Source Chain->>Cross-Chain Messenger: 2. Burn SuperchainWETH and relay message
Cross-Chain Messenger->>Destination Chain: 3. Mint SuperchainWETH to recipient
User->>Destination Chain: 4. Unwrap SuperchainWETH to ETH
```
_Figure 1: Superchain WETH transfer process between two interoperable L2 chains._

<Callout type="warning">
`crosschainBurn` and `crosschainMint`can only be called by the `SuperchainTokenBridge`.
</Callout>

## Major components

### `SuperchainWETH` contract

This contract implements the core functionality for wrapping, unwrapping, and cross-chain transfer of ETH. It integrates with the `SuperchainTokenBridge` for interoperable actions.

* Contract address: `0x4200000000000000000000000000000000000024`

### `ETHLiquidity` contract

A predeploy contract with a large pool of ETH that provides liquidity for cross-chain transfers. It allows "burning" and "minting" of ETH for cross-chain transfers. ETH is associated with bridge ETH from the L1 lockbox, making ETH available to interop chains through a shared lockbox rather than fragmented amongst the existing portal contracts.

* Contract address: `0x4200000000000000000000000000000000000025`

### `L2ToL2CrossDomainMessenger` contract

This predeploy contract facilitates general message passing between different chains in the Superchain. It also securely transfers ERC20 tokens between L2 chains.

* Contract address: `0x4200000000000000000000000000000000000023`

<Callout type="info">
`SuperchainWETH` implements strict access controls to ensure security (e.g., only `SuperchainWETH` can call `ETHLiquidity` functions).
</Callout>

## Next steps

* Explore the [`SuperchainWETH`](https://specs.optimism.io/interop/superchain-weth.html) specs for in-depth implementation details.
* Review the [Superchain Interop Explainer](explainer) for answers to common questions about interoperability.
3 changes: 1 addition & 2 deletions words.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
ACCOUNTQUEUE
accountqueue
ACCOUNTSLOTS
accountslots
Expand Down Expand Up @@ -300,6 +299,7 @@ Quicknode
quicknode
quickstarts
RANDAO
rebalance
Regenesis
regenesis
REJOURNAL
Expand Down Expand Up @@ -408,4 +408,3 @@ xtensibility
ZKPs
ZKVM
Zora
zora
Loading