Key Takeaways
- ERC-6551 (token bound account) is an emerging Ethereum standard that turns NFTs (ERC-721) into independent accounts with full Ethereum wallet functionality like trading tokens and receiving airdrops.
- The new standard addresses the existing limitations of an ERC-721, unlocking new possibilities for builders to develop new use cases in gaming, social apps and on-chain identity.
- The inner mechanics of the TBA comprise three components: the registry, minimal proxy contract (ERC-1167) and account interface.
- There are still some inherent risks/limitations to be considered, including ownership cycles and front-running frauds.
The NFT world is on the verge of a significant evolution.
Your NFTs are no longer idle JPEGs stored in your wallets. They are now evolving into functional wallets with their own Ethereum-like capabilities and transaction histories.
This shift is enabled by the new ERC-6551 standard proposal. This initiative is authored by the NFT veteran group at Future Primitive (Benny Giang, Jayden Windle and more). They have lived and breathed the NFT realm since the boom of CryptoKitties and the inception of DapperLabs (the creator of NBA Top Shot).
So what is cool about ERC-6651?
ERC-6551 is a proposed smart contract system (not yet an official standard) that assigns each NFT (ERC-721) its unique wallet address or an Ethereum account. This concept, known as a Token-Bound Account, enables NFTs to own assets and interact with dApps in the Ethereum ecosystem and other Ethereum L2, without needing to modify existing smart contracts or infrastructure.
The idea of Token-Bound Account (TBA) means that the account is tied to a token (in this case an ERC-721 NFT). ERC-6551 enables a token to own multiple sub-accounts, potentially forming a hierarchical structure resembling a tree. This allows users to go as deeply as desired, creating a branching graph.
Nested TBA account (Source: link). Note: ERC-6551 currently supports ERC-721 tokens exclusively, with plans for future extensions to include ERC-1155 tokens.
This concept is well explained through a Pokemon analogy illustrated by @putraisyraq. In essence, ERC-6551 can be likened to a scenario where your Pokemon (NFT) can own other Pokemon/in-game items (also NFTs) and even PokeDollar (tokens). Here are some interesting catches in the image below:
Note: Transferring your main Pokémon (the parent NFTs) to another trainer also means transferring all their items PLUS the control over them.
Why do we need ERC-6551?
The primary issue with existing NFTs is their static nature, lacking owned history beyond transfers. The ERC-721 smart contract has remained unchanged since its introduction in 2017. The notable progress NFTs have mainly centered around social community building and graphic composability. Now, ERC-6551 is bringing a revolutionary ownership layer on top of all NFTs, enabling creators to explore new exciting use cases and unleash creativity within their collections.
The table below illustrates the limitations of ERC-721 and the corresponding solutions provided by ERC-6551:
Source: Pinata Blog
How Does It Work?
Token bound accounts are smart contract wallets tied to a single ERC-721 NFT. The mechanism of an ERC-6551 account can be broken down into three components:
- The Registry: an entry point for all TBA address queries that does two functions including creating accounts and computing a TBA address for an existing ERC-721 token.
- Minimal Proxy Contracts: every TBA is then distributed to the world as an ERC-1167 minimal proxy (MPC), complete with immutable constant data included in the bytecode. The use of MPCs serves two primary purposes:
- Cost-Efficient: Rather than deploying NFT contracts repeatedly, you can efficiently duplicate contracts.
- Simplified Efforts: You only need to deploy the proxy contract once, reducing the workload.
- Account Interface: a set of rules and functions that define how an account or wallet interacts with a blockchain network.
Source: Ethereum Improvement Proposals
In detail, each TBA uses an ERC-1167 minimal proxy as a middleman to process all interactions or requests. Behind the scenes, there is a separate implementation contract handling these interactions, including asset ownership and transaction execution, much like a basic Ethereum account. This implementation contract follows the ERC-6551 account interface, which defines how the TBA should behave and interact with the blockchain network. In simple terms, when users interact with a TBA, their actions are passed on to this implementation contract, which follows the rules and functions specified by ERC-6551 to execute the desired tasks.
Note: The advent of the TBA has exposed the idea of soulbound token (SBT) being flawed. The SBT’s creation is meant to be permanently tied to an account/wallet, but a token cannot be bound to a person, only to an account which can always be transferred (thanks to ERC-6551).
Jayden Windle’s (co-author of ERC-6551) response to my SBT-related question
Possible Use Cases for ERC-6551
Gaming
Web3 gaming is one of the most suitable candidates for the ERC-6551 application. The composability of the TBA enables gamers to store in-game items/skins/scores directly in their character’s wallets instead of the Ethereum wallets. Gamers now can have a holistic view of their collections or achievements. One visible benefit is that gamers can sell their avatar NFT with all the accumulated wearables/assets as one unit on the marketplace, offering a new dynamic to in-game economies and gas efficiency.
Parallel is a prominent example of the TBA concept in action. They are developing a “Colony” project that utilizes ERC-6551 to create NPCs that can be owned. Each NPC acts as a TBA that interacts with in-game transactions. What's unique is that the game is AI-managed, allowing NPCs to make decisions on their own.
Community Building
The TBA has paved a new way for NFT projects or DAOs to foster their community engagement. The initially purchased NFTs can accrue value by collecting tokens (ERC-20), NFTs (PFP, membership cards, POAPs, etc.) or other on-chain assets.
Sapienz, the flagship project by Web3 street culture brand Stapleverse, is the pioneering project as the first native ERC-6551 collection. These PFPs allow owners to modify their clothing, items, and accessories on-chain, offering fresh experiences for holders to experiment.
The Sapienz collection is the second most used ERC-6551 application (Dune)
Should the Azuki Elemental collection adopt the ERC-6551, they could own the background NFTs as equipable items and have that background equipped onto the artworks, making them stand out and creating a unique identity distinct from the OG Azuki collection.
Other Possibilities (Loyalty Programs, Reputation Systems, On-Chain Identities)
Lens Protocol V2 is actively exploring the ERC-6551’s composability through their on-chain identity initiative. This initiative is designed to simplify the process of creating Web3 social media platforms, aligning perfectly with the concept of decentralized social graphs on the blockchain. As a result, users' PFP NFTs can now establish social connections, have a voice, and even explore monetization opportunities within the platform. Thanks to the introduction of TBA, Lens protocol has been leading the TBA creation on Polygon, accounting for 7.7% of the total (931 profiles as of writing).
Looking further, TBAs empower NFTs with their own identity and autonomous interaction with dApps. This sparks numerous possibilities for loyalty schemes and reputation systems. NFTs could offer entry to loyalty programs or serve as verifiable credit ratings in lending scenarios.
Risks/Limitations to Consider
Assets in a TBA can become inaccessible when an ownership cycle forms. For instance, if an ERC-721 token is moved to its own TBA, both the token and its assets stored in the account can become permanently inaccessible because the account can't execute the necessary transaction to transfer the ERC-721 token. The NFTs own each other in a loop, and this action can be viewed as the burning mechanism. A possible solution is to have an implementation that can detect a cycle and remove the entity from the cycle, thus regaining access.
Source: Presentation slides at Ethereum Engineering Group
Front-running of Account Transactions
Here is a possible fraud that can happen in a decentralized marketplace:
Imagine person A owns an NFT (ERC-721) which has a TBA owning 5ETH inside. Then person B offers to buy the NFT for 7ETH with the expectation to receive 5ETH stored in the TBA. Since all transactions are on-chain and transparent, person A can front-run the targeted transaction, withdraw the 5ETH from the TBA and immediately accept person B’s offer. Now person B receives a “worthless” NFT.
To prevent these fraudulent intentions, decentralized marketplaces can introduce safeguards against malicious actors at the marketplace level. Several strategies include notifying users of any alterations to original orders, establishing committees to oversee and validate transactions, and instituting a locking mechanism during transactions
Closing Thoughts
While ERC-6551 has yet to be an Ethereum token standard, it has already found extensive application in numerous gaming and NFT projects, offering enhanced functionality, improved interoperability, and increased tradability for NFTs.
Looking ahead, the integration of AI with ERC-6551 promises to further expand the role of non-playable characters (NPCs) in Metaverse and Web3 gaming. Additionally, the advent of NFT wallets is poised to stimulate the development of custom NFTs and NPCs, enabling them to execute on-chain actions tailored to users' preferences. In essence, ERC-6551 addresses key challenges people had with traditional ERC-721 NFTs and is poised to become a crucial component of the evolving NFT landscape.