Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Multi-chain Native Tokens #6403

Closed
wants to merge 3 commits into from

Conversation

seunlanlege
Copy link

@seunlanlege seunlanlege commented Jan 31, 2023

This EIP standardizes the interface for ERC20 token contracts which will allow provably secure, trustless bridge contracts to mint & burn tokens, enabling a new class of ERC20 tokens that can be native to multiple chains.

rendered

@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-erc labels Jan 31, 2023
@eth-bot
Copy link
Collaborator

eth-bot commented Jan 31, 2023

File EIPS/eip-6160.md

Requires 1 more reviewers from @axic, @Pandapip1, @SamWilsn, @xinbenlv

@github-actions github-actions bot added the w-ci Waiting on CI to pass label Jan 31, 2023
@seunlanlege seunlanlege changed the title Multi chain token standard EIP-6160: Multi chain token standard Jan 31, 2023
@seunlanlege seunlanlege changed the title EIP-6160: Multi chain token standard EIP-6160: Multichain token standard Jan 31, 2023
@seunlanlege seunlanlege force-pushed the master branch 2 times, most recently from 8b2a479 to 8c03471 Compare January 31, 2023 18:14
@github-actions github-actions bot added w-ci Waiting on CI to pass and removed w-ci Waiting on CI to pass labels Jan 31, 2023
@seunlanlege seunlanlege changed the title EIP-6160: Multichain token standard EIP-6160: Multichain native tokens Feb 1, 2023
@github-actions github-actions bot added w-ci Waiting on CI to pass and removed w-ci Waiting on CI to pass labels Feb 1, 2023
@seunlanlege seunlanlege force-pushed the master branch 3 times, most recently from 2270807 to e7ae46c Compare February 1, 2023 13:23
@github-actions github-actions bot added w-ci Waiting on CI to pass and removed w-ci Waiting on CI to pass labels Feb 1, 2023
@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Mar 12, 2023
@seunlanlege seunlanlege marked this pull request as ready for review March 12, 2023 20:08
@seunlanlege seunlanlege requested a review from eth-bot as a code owner March 12, 2023 20:08
@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Mar 12, 2023
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Mar 12, 2023
@github-actions
Copy link

github-actions bot commented Jul 2, 2023

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the w-stale Waiting on activity label Jul 2, 2023
@seunlanlege
Copy link
Author

This is ready for review

@github-actions github-actions bot removed the w-stale Waiting on activity label Jul 14, 2023
@github-actions
Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the w-stale Waiting on activity label Jul 29, 2023
@seunlanlege
Copy link
Author

This is ready for review

@github-actions github-actions bot removed the w-stale Waiting on activity label Jul 30, 2023
Copy link
Member

@Pandapip1 Pandapip1 left a comment

Choose a reason for hiding this comment

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

Please fix the walidator errors.

@eth-bot eth-bot changed the title EIP-6160: Multichain native tokens Add EIP: Multi-chain Native Tokens Jul 30, 2023
@github-actions
Copy link

The commit 8d47637 (as a parent of 8d4c274) contains errors.
Please inspect the Run Summary for details.

@github-actions
Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the w-stale Waiting on activity label Aug 14, 2023
Comment on lines +3 to +4
title: Multi-chain Native Tokens
description: An interface for multi-chain native tokens.
Copy link
Contributor

Choose a reason for hiding this comment

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

Your description doesn't provide any additional information compared to the title. Perhaps:

Suggested change
title: Multi-chain Native Tokens
description: An interface for multi-chain native tokens.
title: Multi-chain Native Tokens
description: Extending token interfaces with bridging support.


## Abstract

We propose new [`ERC20`](./eip-20.md), [`ERC721`](./eip-721.md) and [`ERC1155`](./eip-1155.md) extension interfaces which will allow provably secure, trustless bridge contracts to mint & burn tokens, enabling a new class of `ERC` tokens that can be native to multiple chains.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
We propose new [`ERC20`](./eip-20.md), [`ERC721`](./eip-721.md) and [`ERC1155`](./eip-1155.md) extension interfaces which will allow provably secure, trustless bridge contracts to mint & burn tokens, enabling a new class of `ERC` tokens that can be native to multiple chains.
We propose new [`ERC20`](./eip-20.md), [`ERC721`](./eip-721.md) and [`ERC1155`](./eip-1155.md) extension interfaces which will allow provably secure, trustless bridge contracts to mint & burn tokens, enabling a new class of tokens that can be native to multiple chains.


## Motivation

[EIP-4844](./eip-4844.md) will set the stage for the Cambrian explosion of L2s on Ethereum. With multiple L2s living on the ethereum blockchain, It therefore becomes necessary to standardize an interface that will allow for native `ERC` tokens to flow across these L2s, removing the need for wrapped representations of these assets.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
[EIP-4844](./eip-4844.md) will set the stage for the Cambrian explosion of L2s on Ethereum. With multiple L2s living on the ethereum blockchain, It therefore becomes necessary to standardize an interface that will allow for native `ERC` tokens to flow across these L2s, removing the need for wrapped representations of these assets.
[EIP-4844](./eip-4844.md) will set the stage for the Cambrian explosion of L2s on Ethereum. With multiple L2s living on the ethereum blockchain, it therefore becomes necessary to standardize an interface that will allow for native tokens to flow across these L2s, removing the need for wrapped representations of these assets.


[EIP-4844](./eip-4844.md) will set the stage for the Cambrian explosion of L2s on Ethereum. With multiple L2s living on the ethereum blockchain, It therefore becomes necessary to standardize an interface that will allow for native `ERC` tokens to flow across these L2s, removing the need for wrapped representations of these assets.

Optimisim and Arbitrum, optimistic L2s which are already live on Ethereum today currently have their own custom token interfaces¹ that allow their bridge contracts to mint & burn tokens on L1 & L2. In order to remove the cognitive load on token issuers & developers from extending multiple interface for all the various L2s that will live on Ethereum. It becomes necessary to define a standardized API that all token issuers should implement in order to provide these trustless bridge contracts with the interface needed to transport tokens across these different chains.
Copy link
Contributor

Choose a reason for hiding this comment

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

We only allow very specific external references (see EIP-1.)

Suggested change
Optimisim and Arbitrum, optimistic L2s which are already live on Ethereum today currently have their own custom token interfaces¹ that allow their bridge contracts to mint & burn tokens on L1 & L2. In order to remove the cognitive load on token issuers & developers from extending multiple interface for all the various L2s that will live on Ethereum. It becomes necessary to define a standardized API that all token issuers should implement in order to provide these trustless bridge contracts with the interface needed to transport tokens across these different chains.
Optimisim and Arbitrum, optimistic L2s which are already live on Ethereum today currently have their own custom token interfaces that allow their bridge contracts to mint & burn tokens on L1 & L2. In order to remove the cognitive load on token issuers & developers from extending multiple interface for all the various L2s that will live on Ethereum. It becomes necessary to define a standardized API that all token issuers should implement in order to provide these trustless bridge contracts with the interface needed to transport tokens across these different chains.


The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Smart contracts implementing the EIP-6160 standard MUST implement all of the functions in the `EIP-6160` interface.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Smart contracts implementing the EIP-6160 standard MUST implement all of the functions in the `EIP-6160` interface.
Smart contracts implementing this standard MUST implement all of the functions in the corresponding interface defined below.


## Rationale

1. We have chosen the [EIP-5679](./eip-5679.md) standard to provide the mint & burn interface.
Copy link
Contributor

Choose a reason for hiding this comment

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

The rationale section should explain why a choice was made, not just state which decisions were considered.

2. We have chosen [EIP-5982](./eip-5982.md) standard to provide the access control interface for trustless bridge contracts to check their permissions to mint & burn `ERC20` tokens.
3. We have chosen NOT to create new events but to require the usage of existing transfer event as required by EIP-20 EIP-721 and EIP-1155 for maximum compatibility.

## Implementation
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
## Implementation
## Reference Implementation

3. We have chosen NOT to create new events but to require the usage of existing transfer event as required by EIP-20 EIP-721 and EIP-1155 for maximum compatibility.

## Implementation
We have made an example implementation for this EIP at [polytope-labs implementation](https://github.com/polytope-labs/multichain-native-tokens/tree/main/src/tokens)
Copy link
Contributor

Choose a reason for hiding this comment

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

We don't allow external reference implementations. If you'd like, you can create a minimal reference implementation and include it in the assets directory under a permissive license (CC0-1.0 preferred.) Failing that, just remove the whole section.


## Backwards Compatibility

This EIP is designed to be compatible with EIP-20, EIP-721, EIP-1155.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
This EIP is designed to be compatible with EIP-20, EIP-721, EIP-1155.
This EIP is designed to be compatible with ERC-20, ERC-721, ERC-1155.

Comment on lines +73 to +75
## References

¹ Arbitrum: [ICustomToken](https://github.com/OffchainLabs/token-bridge-contracts/blob/main/contracts/tokenbridge/ethereum/ICustomToken.sol), [IArbToken](https://github.com/OffchainLabs/token-bridge-contracts/blob/main/contracts/tokenbridge/arbitrum/IArbToken.sol). Optimism: [IL2StandardERC20](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts/contracts/standards/IL2StandardERC20.sol).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
## References
¹ Arbitrum: [ICustomToken](https://github.com/OffchainLabs/token-bridge-contracts/blob/main/contracts/tokenbridge/ethereum/ICustomToken.sol), [IArbToken](https://github.com/OffchainLabs/token-bridge-contracts/blob/main/contracts/tokenbridge/arbitrum/IArbToken.sol). Optimism: [IL2StandardERC20](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts/contracts/standards/IL2StandardERC20.sol).

Please remove this whole section. We don't allow external links except as mentioned in EIP-1.

@github-actions github-actions bot removed the w-stale Waiting on activity label Sep 14, 2023
@github-actions
Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the w-stale Waiting on activity label Sep 28, 2023
@github-actions github-actions bot removed the w-stale Waiting on activity label Oct 6, 2023
@github-actions
Copy link

There has been no activity on this pull request for 2 weeks. It will be closed after 3 months of inactivity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the w-stale Waiting on activity label Oct 20, 2023
@SamWilsn
Copy link
Contributor

I am closing this pull request because we are in the process of separating EIPs and ERCs into distinct repositories. Unfortunately, as far as we are aware, GitHub does not provide any tools to ease this migration, so every pull request will need to be re-opened manually.

As this is a PR to create / modify an ERC, I will kindly ask you to redirect this to the new repository at ethereum/ERCs. We have prepared a guide to help with the process.

If there is relevant history here, please link to this PR from the new pull request.

On behalf of the EIP Editors, I apologize for this inconvenience.

@SamWilsn SamWilsn closed this Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-erc w-ci Waiting on CI to pass w-stale Waiting on activity
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants