Skip to content

Commit eeda205

Browse files
authored
Merge pull request #1419 from ethereum-optimism/superchain-tokens
Superchain Interop-Compatible Tokens
2 parents b16c539 + 788e36b commit eeda205

File tree

4 files changed

+127
-20
lines changed

4 files changed

+127
-20
lines changed

pages/stack/interop.mdx

+14-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Interop
2+
title: Superchain interop
33
description: Documentation covering Cross Chain Message, Explainer, Message Passing, Op Supervisor, Superchain Erc20, Superchain Weth, Supersim, Transfer Superchainerc20 in the Interop section of the OP Stack ecosystem.
44
lang: en-US
55
---
@@ -8,32 +8,34 @@ import { Card, Cards } from 'nextra/components'
88

99
# Interop
1010

11-
Documentation covering Cross Chain Message, Explainer, Message Passing, Op Supervisor, Superchain Erc20, Superchain Weth, Supersim, Transfer Superchainerc20 in the Interop section of the OP Stack ecosystem.
11+
Documentation covering explainers and tutorials for using Superchain interop.
1212

1313
<Cards>
14-
<Card title="Interoperability explainer" href="/stack/interop/explainer" icon={<img src="/img/icons/shapes.svg" />} />
14+
<Card title="Superchain interop explainer" href="/stack/interop/explainer" icon={<img src="/img/icons/shapes.svg" />} />
1515

16-
<Card title="Architecture" href="/stack/interop/explainer#interoperability-architecture" icon={<img src="/img/icons/shapes.svg" />} />
16+
<Card title="Superchain interop architecture" href="/stack/interop/explainer#superchain-interoperability-architecture" icon={<img src="/img/icons/shapes.svg" />} />
1717

18-
<Card title="Interop message passing overview" href="/stack/interop/message-passing" icon={<img src="/img/icons/shapes.svg" />} />
18+
<Card title="Superchain interop message passing" href="/stack/interop/message-passing" icon={<img src="/img/icons/shapes.svg" />} />
19+
20+
<Card title="Superchain interop compatible tokens" href="/stack/interop/token-compatible" icon={<img src="/img/icons/shapes.svg" />} />
1921

2022
<Card title="OP Supervisor" href="/stack/interop/op-supervisor" icon={<img src="/img/icons/shapes.svg" />} />
2123

2224
<Card title="Supersim multichain development environment" href="/stack/interop/tools/supersim" icon={<img src="/img/icons/shapes.svg" />} />
2325

24-
<Card title="Interop devnet" href="/stack/interop/tools/devnet" icon={<img src="/img/icons/shapes.svg" />} />
25-
26-
<Card title="Interoperability predeploys" href="/stack/interop/predeploy" icon={<img src="/img/icons/shapes.svg" />} />
26+
<Card title="Superchain interop devnet" href="/stack/interop/tools/devnet" icon={<img src="/img/icons/shapes.svg" />} />
2727

28-
<Card title="Interop assets" href="/stack/interop/tools" icon={<img src="/img/icons/shapes.svg" />} />
28+
<Card title="Superchain interop predeploys" href="/stack/interop/predeploy" icon={<img src="/img/icons/shapes.svg" />} />
2929

3030
<Card title="SuperchainERC20" href="/stack/interop/superchain-erc20" icon={<img src="/img/icons/shapes.svg" />} />
3131

32-
<Card title="SuperchainWETH (Interoperable ETH)" href="/stack/interop/superchain-weth" icon={<img src="/img/icons/shapes.svg" />} />
32+
<Card title="Superchain ETH" href="/stack/interop/superchain-weth" icon={<img src="/img/icons/shapes.svg" />} />
3333

3434
<Card title="Tutorials" href="/stack/interop/tutorials" icon={<img src="/img/icons/shapes.svg" />} />
3535

36-
<Card title="Safe interoperability measures" href="/stack/interop/interop-security" icon={<img src="/img/icons/shapes.svg" />} />
36+
<Card title="Tools" href="/stack/interop/tools" icon={<img src="/img/icons/shapes.svg" />} />
37+
38+
<Card title="Superchain interop transaction safety" href="/stack/interop/interop-security" icon={<img src="/img/icons/shapes.svg" />} />
3739

38-
<Card title="Interop reorg awareness" href="/stack/interop/reorg" />
40+
<Card title="Superchain interop reorg awareness" href="/stack/interop/reorg" icon={<img src="/img/icons/shapes.svg" />}/>
3941
</Cards>

pages/stack/interop/_meta.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
"predeploy": "Superchain interop predeploys",
44
"message-passing": "Superchain interop message passing",
55
"op-supervisor": "OP Supervisor",
6-
"superchain-weth": "Interoperable ETH",
6+
"superchain-weth": "Superchain ETH",
77
"superchain-erc20": "SuperchainERC20",
8-
"reorg": "Interop reorg awareness",
8+
"token-compatible": "Superchain interop compatible tokens",
9+
"reorg": "Superchain interop reorg awareness",
910
"interop-security": "Superchain interop transaction safety",
1011
"tools": "Tools",
1112
"tutorials": "Tutorials"
+108
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Superchain interop compatible tokens
3+
lang: en-US
4+
description: Learn how different tokens can use Superchain interop to benefit from secure, low-latency, cross-chain composability.
5+
topic: Superchain Interoperability
6+
personas: ["Developer", "Architect"]
7+
categories: ["Interoperability", "Token"]
8+
content_type: guide
9+
---
10+
11+
import { Callout } from 'nextra/components'
12+
import { InteropCallout } from '@/components/WipCallout'
13+
14+
<InteropCallout />
15+
16+
# Superchain interop compatible tokens
17+
18+
Superchain interop enables **trust-minimized, 1-block latency cross-chain composability** on the [Superchain interop cluster](/stack/interop/explainer#superchain-interop-cluster).
19+
The recommended approach for giving tokens Superchain interop capabilities is using [SuperchainERC20](/stack/interop/superchain-erc20), but there are other options depending on your needs.
20+
21+
## How to enable cross-chain token interoperability
22+
23+
Compared to traditional ERC-20 tokens deployments on a single blockchain, cross-chain tokens can move between different blockchains through giving `crosschainMint` and `crosschainBurn` permissions to a verification mechanism (such as a bridge protocol) that validates when tokens should be burned on one chain and minted on another.
24+
25+
For example when transferring a `SuperchainERC20` between chains in the Superchain interop cluster, the Superchain interop protocol ensures the tokens are burned on the source chain before authorizing the corresponding mint on the destination chain.
26+
27+
When enabling cross-chain functionality for your token, it is essential to evaluate the security, cost, and latency of the respective verification mechanism.
28+
29+
30+
## Why use Superchain interop to enable cross-chain token interoperability
31+
32+
Apps built with Superchain interop can essentially teleport tokens from one blockchain to another, providing users with a secure, low-latency, and capitally-efficient way to transact on the Superchain.
33+
34+
3rd party interop solutions for L2s often wait for Ethereum finalization (15min+) when transferring tokens from an L2 to mitigate the double spend problem. However, that solution results in high latency and poor user experience. Superchain interop is [reorg aware](./reorg) - this means users can transfer assets across chains in the Superchain with 1-block latency, and should a reorg happen, either both the source and destination transactions would remain, or both of them would revert. In every case, there is no window of opportunity to double spend. Low latency interop that mitigates the double spend problem is now possible with Superchain interop.
35+
36+
## SuperchainERC20
37+
38+
`SuperchainERC20` is a simple and trust-minimized way to enable token interoperability within the Superchain. You can learn more about `SuperchainERC20` [here](/stack/interop/superchain-erc20).
39+
40+
* **Security:** Fault Proofs secure Superchain interop end to end. No third-party dependencies to enable token interoperability.
41+
* **Latency:** 1-block latency within the Superchain interop cluster.
42+
* **Cost:** Gas on source chain and destination chain.
43+
* **Cross-chain address:** Deterministic, no token registry required.
44+
* **Supported ecosystem:** Superchain interop cluster.
45+
46+
47+
## Considerations when using other token implementations
48+
49+
While the `SuperchainERC20` is a trust-minimized way to enable for giving your token Superchain interop capabilities, other token implementations can also benefit from Superchain interop. If you choose a token standard other than SuperchainERC20 here are a few things to consider:
50+
51+
#### ERC-7802
52+
[`ERC-7802`](https://ethereum-magicians.org/t/erc-7802-crosschain-token-interface/21508) is a minimal cross-chain mint/burn interface designed to establish a common standard across the EVM ecosystem for tokens to communicate cross-chain. Adding this interface to your token ensures downstream integrators can easily support your token.
53+
54+
#### SuperchainTokenBridge and L2ToL2CrossDomainMessenger
55+
Tokens can benefit from Superchain interop by either giving cross-chain mint/burn permissions to the `SuperchainTokenBridge` or the `L2ToL2CrossDomainMessenger`.
56+
57+
The [`SuperchainTokenBridge`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/SuperchainTokenBridge.sol) is an abstraction built on top of the [`L2ToL2CrossDomainMessenger`](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L2/L2ToL2CrossDomainMessenger.sol) that facilitates token bridging using Superchain interop, but requires the token address be deterministic across chains.
58+
59+
Alternatively, you can build a custom bridge using the `L2ToL2CrossDomainMessenger` to facilitate cross-chain mint/burns that **does not** require a deterministic address across chains but does require the token issuer to manage a token registry per chain.
60+
61+
#### Weakest link scenario
62+
63+
If you allowlist both Superchain interop and a third-party verification mechanism, your token's security is only as strong as the weakest verification mechanism.
64+
65+
## Alternative token implementations
66+
67+
### xERC20 (ERC-7281)
68+
69+
xERC20 tokens are crosschain ERC-20 which can be transferred across chains by allowing the token owner to approve which bridges can mint/burn their token and the ability to set rate limits per bridge. You can learn more about xERC20 and Superchain interop [here](https://github.com/ethereum-optimism/design-docs/pull/203).
70+
71+
* **Security:** Variable due to weakest-link scenario based on allowlisted verification mechanisms.
72+
* **Latency:** 1-block latency in the Superchain. Outside the Superchain, latency is variable based on allowlisted verification mechanism.
73+
* **Cost:** Variable based on allowlisted verification mechanisms.
74+
* **Cross-chain address:** Deterministic or requires cross-chain registry per deployment.
75+
* **Supported ecosystem:** EVM
76+
77+
### OFT
78+
79+
OFT is a token standard used to send, receive, and compose tokens across chains LayerZero supports. More information will be added about how OFTs can benefit from Superchain interop at a later date.
80+
81+
* **Security:** Variable due to weakest-link scenario based on allowlisted verification mechanisms.
82+
* **Latency:** 1-block latency within the Superchain. Outside the Superchain, latency is variable based on allowlisted verification (DVN) mechanism.
83+
* **Cost:** Variable based on allowlisted verification mechanisms.
84+
* **Cross-chain address:** Requires cross-chain registry per deployment.
85+
* **Supported ecosystem:** EVM, Solana, MoveVM
86+
87+
### NTT
88+
89+
NTT is a token standard used to send, receive, and compose tokens across chains Wormhole supports. More information will be added about how NTTs can benefit from Superchain interop at a later date.
90+
91+
* **Security:** Variable due to weakest-link scenario based on allowlisted verification mechanisms.
92+
* **Latency:** 1-block latency within the Superchain. Outside the Superchain, latency is variable based on allowlisted verification (transceiver) mechanism.
93+
* **Cost:** Variable based on allowlisted verification mechanisms.
94+
* **Cross-chain address:** Requires cross-chain registry per deployment.
95+
* **Supported ecosystem:** EVM, Solana, MoveVM
96+
97+
98+
## Key takeaways
99+
100+
* `SuperchainERC20` is a simple and trust-minimized way for token issuers to make their token available across the Superchain interop cluster.
101+
* Token issuers can use other token standards (xERC20, OFT, NTT) and give `crosschainMint` and `crosschainBurn` permissions to the `SuperchainTokenBridge` or `L2ToL2CrossDomainMessenger` to benefit from Superchain interop.
102+
* Token issuers should include a `ERC-7802` interface on their token to simplify downstream integrations.
103+
104+
## Next steps
105+
106+
* Build a [revolutionary app](/app-developers/get-started) that uses multiple blockchains within the Superchain
107+
* Deploy a [SuperchainERC20](/stack/interop/tutorials/deploy-superchain-erc20) to the Superchain
108+
* [Learn more about SuperchainERC20](/stack/interop/superchain-erc20)

words.txt

+2-6
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ ADDIU
88
ADDU
99
airgap
1010
Allnodes
11-
Allocs
1211
allocs
1312
Alphanet
1413
alphanet
@@ -20,6 +19,7 @@ Ankr
2019
Apeworx
2120
Arweave
2221
authrpc
22+
Autorelay
2323
autorelay
2424
autorelayer
2525
basefee
@@ -168,14 +168,12 @@ IERC
168168
IGNOREPRICE
169169
ignoreprice
170170
Immunefi
171-
implicitly
172171
Inator
173172
inator
174173
INFLUXDBV
175174
influxdbv
176175
initcode
177176
interopble
178-
invokable
179177
IPCDISABLE
180178
ipcdisable
181179
ipcfile
@@ -360,7 +358,6 @@ seqnr
360358
SEQUENCERHTTP
361359
sequencerhttp
362360
serv
363-
settions
364361
signup
365362
SLLV
366363
SLTI
@@ -370,6 +367,7 @@ smartcard
370367
snapshotlog
371368
Snapsync
372369
snapsync
370+
Solana
373371
Soneium
374372
soyboy
375373
Spearbit
@@ -401,7 +399,6 @@ synctarget
401399
syscalls
402400
thirdweb
403401
threadcreate
404-
tility
405402
timeseries
406403
triggerable
407404
trustlessly
@@ -436,7 +433,6 @@ VMODULE
436433
vmodule
437434
xlarge
438435
XORI
439-
xtensibility
440436
ZKPs
441437
ZKVM
442438
Zora

0 commit comments

Comments
 (0)