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

Allow to create a ZetaChain native ZRC20 that can be used on any chain #2740

Open
Tracked by #2994
lumtis opened this issue Aug 19, 2024 · 1 comment
Open
Tracked by #2994
Labels
feature:idea An early idea for a feature. Used as reference to follow new feature integrations feature:smart-contracts Related to extending smart contracts capability and interactions with ZEVM zeta-utility Improve the utility of ZETA token

Comments

@lumtis
Copy link
Member

lumtis commented Aug 19, 2024

Is your feature request related to a problem? Please describe.

Currently ZRC20 represents an existing asset (native token or ERC20) from an external chains. The asset is whitelisted and can be deposited/withdrawed from/to the same connected chain.

This idea is about allow minted "ZetaChain Native" ZRC20. The ZRC20 is minted on ZetaChain and can be withdrawn to any connected EVM chains (eventually on non-EVM chains that support fungible token)

Describe the solution you'd like

Creation

Best way to create a new ZRC20 would be to do it directly at the EVM level. This would requires at least precompiled: #2403

A stateful precompiled allows to create a new ZRC20. It would interact with the fungible module to create the new asset in the ZetaChain store.

Condition for creation TBD.

  • Totally permissionless (might involve risk if we interact with the store)
  • Can require approval from group/gov prop
  • Other condition: locking/staking a portion of ZETA tokens to mint a new ZRC20 -> hence adding zeta-utility flag

TBD:

  • Reusing the ForeignCoin object (might want to rename it)
  • Create a new object to represent these assets, this might make more sense sense we wil have to store somewhere the value locked to be minted on any connected chain.

External chain

ERC20Custody is used to store reserve of existing ERC20Custody.

This feature would require a new contract (asset handler) to address minting/burning the tokens.

We can call it ZRC20Connector, this allows to keep consistency with the ZetaConnector contract, implying connector contract are used to connect with ZetaChain native tokens.

Protocol

The ZetaClient will have to sign transaction into the ZRC20Connector above to handle outbounds.

@lumtis lumtis added feature:idea An early idea for a feature. Used as reference to follow new feature integrations feature:smart-contracts Related to extending smart contracts capability and interactions with ZEVM labels Aug 19, 2024
@lumtis lumtis added the zeta-utility Improve the utility of ZETA token label Aug 29, 2024
@lumtis
Copy link
Member Author

lumtis commented Sep 13, 2024

Consideration migrate to an existing ERC20 to a ZRC20 directly on ZetaChain

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature:idea An early idea for a feature. Used as reference to follow new feature integrations feature:smart-contracts Related to extending smart contracts capability and interactions with ZEVM zeta-utility Improve the utility of ZETA token
Projects
None yet
Development

No branches or pull requests

1 participant