Skip to content
This repository was archived by the owner on Apr 6, 2026. It is now read-only.
3 changes: 2 additions & 1 deletion pages/builders/app-developers/contracts/_meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"compatibility": "Solidity Compatibility",
"system-contracts": "System Contracts",
"optimization": "Cost Optimization"
"optimization": "Cost Optimization",
"superchain-erc20": "SuperchainERC20 Token Standard"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
---

import SuperchainERC20 from '@/pages/stack/protocol/interop/superchain-erc20.mdx'

<SuperchainERC20 />
3 changes: 2 additions & 1 deletion pages/stack/protocol/interop/_meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"explainer": "Interop Explainer",
"cross-chain-message": "Anatomy of Cross-Chain Message",
"supersim": "Supersim Multichain Development Environment"
"supersim": "Supersim Multichain Development Environment",
"superchain-erc20": "SuperchainERC20 Token Standard"
}
65 changes: 65 additions & 0 deletions pages/stack/protocol/interop/superchain-erc20.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: SuperchainERC20 Token Standard
lang: en-US
description: Learn basic details about the SuperchainERC20 token standard.
---

import { Callout } from 'nextra/components'

# SuperchainERC20 Token Standard

<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>

`SuperchainERC20` is a token standard designed to enable asset interoperability in the Superchain.
Asset interoperability allows for tokens to securely move across chains without asset wrapping or liquidity pools for maximal capital efficiency, thus unifying liquidity and simplifying the user experience.

Additional features:
* **Simplified deployments**: Provides a consistent, unified standard for tokens across all Superchain-compatible networks and a common crosschain interface for the EVM ecosystem at large.
* **Permissionless propagation**: Easily clone an existing token contract to a new OP Stack chain using `create2` without requiring the original owner, which enables movement of assets to the new chain once Interop goes live. Importantly, permissionless propagation retains the integrity of the original owner on the contract and preserves security but proliferates the contract's availability to new chains.
Comment thread
cpengilly marked this conversation as resolved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The standard itself does not enforce any deployment method. A token can be deployed using CREATE or an EOA as deployer, so posterior deployments might result in a different address.

* **Ethereum-aligned**: Intentionally designed to be generic and supported as an Ethereum-wide standard (RIP coming soon).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: RIP is probably gonna be an ERC


## How it works

`SuperchainERC20` token standard facilitates secure token transfers between chains in the Superchain networks via native burning and minting.

* Initiating message where token is **burned** on the source chain. A user initiates a transfer of token from one blockchain to another and specifies the recipient wallet address on the destination chain. A specified amount of token is burned on the source chain.
* Executing message where token is **minted** on the destination chain. The specified amount of token is minted on the destination chain and sent to the recipient wallet address.
Comment thread
cpengilly marked this conversation as resolved.
Outdated

## Major components

* **Token Contract**: implements the `SuperchainERC20` standard with bridging functionality.
* **Factory Predeploy**: uses a `create2`-based factory for deploying `SuperchainERC20` tokens consistently across chains.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not enforced in the token standard. The OptimismSuperchainERC20 (specific implementation of SuperchainERC20 that can be converted back and forth with OptimismMintableERC20) will use an official factory (the OptimismSuperchainERC20Factory predeploy), but its not a requisite for every token.
Every token does need same address across different chains to be processed by the bridge. We recommend deployments happen with a standarized method, such as the Create2Deployer, but again, the standard is as neutral as possible on this point.

* **Bridging Functions**: using methods like `sendERC20` and `relayERC20` for cross-chain transfers.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can mention these live in the Bridge contract, and not in the token itself

* **Minting Role**: modifies the definition to be minting role-based rather than interface-based.
Comment thread
cpengilly marked this conversation as resolved.
Outdated
Comment thread
cpengilly marked this conversation as resolved.
Outdated

## Comparison to other standards

`SuperchainERC20` differs from other token standards in its focus and implementation:
Comment thread
cpengilly marked this conversation as resolved.

* `SuperchainERC20` has minimal differentiation from a standard ERC20 deployment, only requiring a minimal crosschain mint/burn interface, which aims to be a common pattern for the EVM ecosystem (RIP coming soon).
* `SuperchainERC20` shares trust assumptions across all chains in the Superchain, such that custom assumptions around security and latency are not required to account for when executing transfers.

<Callout type="info">
Projects moving from other token standards may need to adapt to the `SuperchainERC20` specification.
</Callout>
Comment thread
cpengilly marked this conversation as resolved.
Comment thread
cpengilly marked this conversation as resolved.

## Implementation details

Application developers must do two things to make their tokens `SuperchainERC20` compatible. Doing this setup now ensures that tokens can benefit from Interop once the Interop upgrade happens.

1. Permission only `SuperchainERC20Bridge` to call `crosschainMint` and `crosschainBurn`.
2. Deployment at same address on every chain in the Superchain using `create2` function.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: did you mean the Create2Deployer preinstall here? or the CREATE2 opcode?


For now, application developers should view `SuperchainERC20`as standard ERC20 tokens with additional built-in functions that allow cross-chain asset movement that will be enabled once Interop goes live.
Comment thread
cpengilly marked this conversation as resolved.

<Callout type="warning">
To enable asset interoperability, `SuperchainERC20` token must give access to the address where the future `SuperchainERC20Bridge` will live.
</Callout>
Comment thread
cpengilly marked this conversation as resolved.

## Next steps

* Join the discussion! `SuperchainERC20` implementation is being developed in partnership with Wonderland, with discussions taking place in the [#interop-evm](https://discord.gg/3zvcEFj6Nu) Discord channel.
Comment thread
cpengilly marked this conversation as resolved.
Outdated
* For more info about how `SuperchainERC20` works under the hood, [check out the specs](https://specs.optimism.io/interop/token-bridging.html).
* Questions about Interop? Visit the [Superchain Interop Explainer](explainer) or check out this [Superchain interop design video walk-thru](https://www.youtube.com/watch?v=FKc5RgjtGes).
3 changes: 3 additions & 0 deletions words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ computependingblock
confs
corsdomain
counterfactually
crosschain
Crossmint
daserver
DATACAP
Expand Down Expand Up @@ -204,6 +205,7 @@ MTLO
MULT
multiaddr
Multichain
multichain
multiclient
multisigs
MULTU
Expand Down Expand Up @@ -260,6 +262,7 @@ POAPs
PPROF
pprof
preconfigured
Predeploy
predeploy
Predeployed
predeployed
Expand Down