NFT

Bankless | Introduction to ERC-6551, a new standard changing the NFT ecosystem, allowing NFTs to be used as wallets!

share
Bankless | Introduction to ERC-6551, a new standard changing the NFT ecosystem, allowing NFTs to be used as wallets!

As the use of NFTs becomes more common, many crypto users will have an NFT that represents their identity. Have you ever thought about using this NFT as your wallet to store assets and interact with Dapps? With the emergence of the new token standard ERC-6551, this is now possible!

This translation and summary is based on the article, for any doubts please refer to the original text from Bankless.

Introduction to ERC-6551

ERC-6551 is a new token standard introduced on the Ethereum mainnet on 5/7, 2023. It aims to enhance the functionality of ERC-721 non-fungible tokens (NFTs) by allowing them to operate as their own smart contract accounts.

The development of ERC-6551 was motivated by the increasing use of NFTs as a form of on-chain identity. Prior to its introduction, ERC-721 tokens could not act as proxies or hold other on-chain assets, which did not align with the real-world use cases of non-fungible assets.

Therefore, ERC-6551 enables each ERC-721 token to deploy a unique smart contract account, known as "Token Bound Accounts," through a permissionless registration contract. This grants each ERC-721 token functionality similar to an Ethereum account while maintaining compatibility with the original ERC-721 contract.

Additionally, through ERC-6551, a single NFT can have multiple token bound accounts. This means that one NFT can now contain multiple wallets.

What Can ERC-6551 Do?

Thanks to ERC-6551, anything that can currently be done in an Ethereum wallet can now be done on an ERC-721 NFT, such as storing other NFTs within your NFT or trading ERC-20 tokens.

For example, in a new Web3 game, if a user collects many NFT wearable accessories, they can store these items in a selected NFT, like an avatar in the game.

This not only links game items to the game character but also allows for the potential sale of everything in the future in the form of ERC-6551, even if the game is no longer played.

Furthermore, ERC-6551 allows a single NFT to have multiple token bound accounts and supports cross-chain functionality, providing additional utility. Bankless believes this will inevitably spark new experiments and innovations in the NFT space.

Security Concerns of ERC-6551

Regarding the security aspects of ERC-6551, Bankless raises two security concerns:

  1. Avoiding fraudulent activities: For instance, a seller sells an NFT claiming to hold a certain amount of ETH, but after the transaction is completed, they withdraw the ETH, leaving the buyer with an empty account. To prevent such fraud, precautions like tracking token bound accounts' Nonce can ensure asset integrity during transactions.
  2. Preventing Ownership Cycles: This occurs when an NFT is transferred to its token bound account, rendering all assets in that account permanently inaccessible. Due to the infinite search space required, preventing this behavior on-chain is very complex. Therefore, it is recommended that apps implement measures in the interface to limit such transfers.

Additionally, while all ERC-721 NFTs are supported by ERC-6551, Ethereum NFTs predating the ERC-721 standard are not included. For example, the original unwrapped version of CryptoPunks is not supported.

How to Use ERC-6551?

After all that information, how can one try out the new functionalities that ERC-6551 brings to NFTs?

Tokenbound is an open-source tool for deploying ERC-6551 accounts for NFTs. By following these steps, you can deploy token bound accounts to selected NFTs:

  1. Link your wallet on the website.
  2. Click on "My NFTs" in the top right corner.
  3. Choose the desired NFT and click "Deploy Account."
  4. Confirm the transaction in your wallet, and once completed, you will see the option "Use Wallet" on the selected NFT.

Once these steps are completed, the deployment is done. However, additional features are still in development, and it can currently only be used on the Goerli testnet.

The image below shows an example of Tokenbound, with the left side displaying the selected NFT and the right side showing the assets held by that NFT.