What is ERC-6551? Token Bound Accounts Explained

ERC-6551 is the Ethereum standard for token bound accounts, creating a smart contract wallet for every NFT to make it more composable, dynamic, & interactive.

What is ERC-6551? Token Bound Accounts Explained

In 2017, the ERC-721 standard was introduced to the Ethereum blockchain, establishing a new way to tokenize digital assets and paving the way for mainstream adoption of NFTs — powering projects like CryptoKitties, NBA TopShot, and the CryptoPunks.

NFTs started primarily as static images, but in recent years, developers have been exploring ways to make them more dynamic and interactive — evolving to include gaming elements, music components, and even augmented reality features.

In the most recent innovation for NFTs, the ERC-6551 standard is now taking the main stage — enabling “token bound accounts” on Ethereum & unlocking powerful new features for blockchain-based digital assets. The standard went live on the Ethereum Mainnet on May 7, 2023.

In this blog post, we’re going to demystify everything you need to know about the ERC-6551 standard, how it enables “token bound accounts,” and the new use cases that it unlocks for NFTs.

What is ERC-6551?

ERC-6551 is the Ethereum standard for token bound accounts, which creates a smart contract wallet for every ERC-721 NFT.

The update is based on the Ethereum Improvement Proposal 6551 (EIP-6551) created by Future Primitive an on-chain product studio led by Benny Giang and Steve Jang.

Sidenote: Benny was also on the team that founded the ERC-721 standard and CryptoKitties!

A token bound account is "an interface and registry for smart contract accounts owned by ERC-721 tokens" — linking said smart contract accounts (or wallets) to the NFTs that own them. Powered by ERC-4337, the smart accounts are customizable and can be used to store assets & make transactions. Token bound accounts also keep an unalterable record, or a permissionless registry, of all on-chain activities executed by the accounts.

This converts every NFT into a wallet that has a holistic provenance of ownership, transactions, and utility. Token-bound accounts are also backward compatible with the ERC-721 standard, meaning existing NFTs can implement ERC-6551 without undergoing any fundamental changes — avoiding the unnecessary friction of deploying a new contract or wrapping an existing ERC-721 NFT to enable token-bound accounts.

Conceptual image of a token-bound account via 0xDesigner

But why do we need token bound accounts? Aren’t ERC-721 NFTs good enough on their own? Let’s dive into this further.

Why was ERC-6551 created?

The ERC-721 standard has paved the way for mainstream adoption of NFTs & unlocked various use cases for blockchain-based digital assets — but ERC-721 NFTs come with some limitations:

  1. Lack of composability: Existing NFTs are mostly static in the sense that users cannot embed any additional utility on top of them, which leaves room for more innovation.
  2. Inability to act as on-chain agents: Limited to identity, ERC-721 tokens are unable to interact with other on-chain assets or contracts independently.
  3. Static JSON metadata: They have limited flexibility in terms of maintaining more Uniform Resource Identifier (URI) codes, security, and efficiency due to static JSON metadata recorded by ERC-721 tokens. This means that no additional data or value can be embedded into the token.

The introduction of TBAs with ERC-6551 enables NFTs to become more than static assets — all while maintaining the advantages & implementation of ERC-721!

How does ERC-6551 work?

Token bound accounts are smart contract wallets that are technically owned by an ERC-721 NFT — but the control of token bound accounts is delegated to the owner of that NFT. The owner, on behalf of the NFT, can initiate on-chain actions using the token bound account.

How token bound accounts are enabled by ERC-4337 and ERC-6551, via Benny Giang

Token bound accounts are initiated at the Registry which has two main functions:

  • createAccount: Deploys a TBA for an ERC-721 token given an implementation address.
  • account: Computes a TBA address for the ERC-721 token.

Further, each TBA is deployed as an ERC-1167 minimal proxy with immutable constant data appended to the bytecode.

Illustration of the relationship between ERC-721 tokens ‘owned’ and ERC-6551 TBAs ‘controlled’ by the User Account, via the EIP-6551 docs

The reasons behind this added step is that a ERC-1167 minimal proxy contract allows for two things:

  • Inexpensive deployment of clone contracts rather than deploying NFT contracts multiple times, which would need extra gas.
  • Reduced operational efforts as it needs one-time deployment of a proxy contract which points to the same logic with new data instances for every subsequent deployment.

The account interface defines the functions of TBA that are currently possible. This includes:

  • Receiving Ether (ETH) using the receive() function,
  • Executing calls using the ‘executeCall’,
  • Limiting the owner of the NFT from executing calls
  • Adding grant execution permissions to other non-owner accounts.

TBAs also use Ethereum standards ERC-165 and ERC-1271. The former helps standardize the TBA interface while the latter facilitates the ability for users to sign messages on behalf of a smart contract.

Moreover, a single ERC-721 token can own multiple TBAs, with each TBA assigned for a specific purpose.

What are the use cases for ERC-6551?

ERC-6551 is an emerging standard on Ethereum, but innovation for token bound accounts is moving fast. Here are 3 use cases of TBAs that will supercharge the potential of NFTs:

1. NFT composability

Token bound accounts supercharge NFTs' composability, allowing for an ERC-721 token and its related assets to be bundled together into one 'profile'.

A TBA can be an inventory system holding different types of assets that all have logic built-in ranging from automatic staking of NFTs to collecting POAP rewards.

Additionally, bundling tokens, assets, and NFTs, into a single TBA allows users to easily transfer assets and switch between platforms. This leads to a more intuitive user experience when transferring assets, which is lacking today.

2. Fully onchain identities

The evolution of NFTs via Benny Giang

Token bound accounts unlock the novel possibility of an NFT owning a wallet and all of its related assets. This means you can create full onchain identities and reputations as NFTs. These NFTs also interact with dApps themselves, rather than the wallets that hold them.

Behavioral economics-driven airdrops, loyalty programs, and in-game rewards are a few examples of systems that can use TBAs. Moving forward, this can also enable credit ratings that can lead to more reliable and efficient lending protocols.

3. Gaming

Gaming use cases are derived from the composability that token bound accounts enable for NFTs, but they're worth splitting out into their own section.

Before token bound accounts, players could own their characters as ERC-721 NFTs — but all related assets that they collected within the game would also sit as separate tokens in the owner's wallet.

With token bound accounts, game developers can create "inventories" for players, allowing for all of their game-related assets to automatically be transferred into their character's wallet — making for a better user experience and enabling in-game UIs that were much more difficult to create beforehand.

Examples of ERC-6551

Stapleverse was the first mover to launch a full-scale project to launch using ERC-6551, pioneering the future of digital street culture by launching Sapienz — one of the first projects with token bound accounts.

Sapienz by Stapleverse

In Sapienz, users receive a character that they can customize with cosmetics — which they unlock depending on which other NFTs they hold. These cosmetics are then bound to the Sapienz, which have their own “inventories” in the form of token bound accounts.

Implementation of ERC-6551 and token bound accounts by Sapienz

How to get started with ERC-6551

Similar to other NFT standards & smart wallets on Ethereum, you can get started with token bound accounts by using an ERC-6551 smart contract — which you can then integrate into your app or project!

Creating token bound accounts usually requires writing, testing, and deploying a smart contract that supports the ERC-6551 standard — as well as a factory contract.

At thirdweb, we offer a library of open-source, pre-built, audited smart contracts for any use case — deployable in minutes & to any EVM chain. To integrate token bound accounts into your app, you can check out our video guide here:

You can also read the official ERC-6551 docs to dive further into the technical details of the standard.

The future of ERC-6551 & token bound accounts

Token bound accounts are supercharging innovation for NFTs — unlocking new use cases and turning them into truly composable, dynamic, interactive assets.

Combined with the recent introduction of account abstraction on Ethereum (ERC-4337), this takes the web3 user experience to a whole new level — givineg wallet providers & dApps the ability to mint NFTs for their users, and to create a TBA for the NFT under the hood — allowing users to get onboarded to the blockchain without needing to create a wallet or manage seed phrases.

We hope this blog post helped you better understand what token bound accounts are, why ERC-6551 is such a major upgrade for NFTs, and what you can build with TBAs today.

If you have any questions, join 35,000+ builders in our Discord community — or reach out to the team directly for more info on how to get started with token bound accounts.

And if you want to start building web3 apps using token bound accounts, get started with thirdweb’s web3 tools & SDKs — they’re free!