ERC-6551 gives every ERC-721 token its own smart-contract account (a “token bound account”, or TBA). Whoever owns the NFT controls the account, and the account can hold tokens, other NFTs and credentials, and interact with dApps. Transfer the NFT and everything inside its account moves with it — no individual transfers required. That turns an NFT from a static record into a container.
Key takeaways
- A permissionless registry deterministically computes and deploys an account address for any
(chainId, tokenContract, tokenId)plus implementation and salt. - Works with existing NFTs — no changes to the ERC-721 contract are needed.
- Control follows NFT ownership; accounts implement
token(),state(),isValidSigner()and typically anexecutefunction. - Powerful for bundling assets but introduces new security considerations (ownership cycles, front-running on sale).
How it works
- A registry contract exposes
createAccount(implementation, salt, chainId, tokenContract, tokenId)andaccount(...)to compute the address. - The account implementation defines what the TBA can do — execute calls, sign messages via ERC-1271, integrate with ERC-4337.
- The account checks
ownerOf(tokenId)on the bound NFT to decide who can act. - Because addresses are deterministic, assets can even be sent to an account before it is deployed.
Real-world asset use cases
Property bundles
A property NFT’s account can hold the title-document hash, the token holding insurance certificates, rental-income stablecoins and maintenance records. Selling the property NFT transfers the whole package. Legal transfer still follows the property’s legal framework — see real estate tokenization.
Vehicles and equipment
A vehicle NFT can accumulate service records, warranty NFTs and usage credentials across owners — useful for inventory funding and resale.
Portfolios
A “fund” NFT can hold a basket of tokens; transferring it transfers the basket. Securities rules usually apply to such constructs.
Identity and reputation
Credentials or soulbound badges held by an account bound to a membership NFT.
Risks and mitigations
- Sale front-running: a seller could drain the account just before an NFT sale settles. Marketplaces should check account
state()(which changes on every action) and require it to be unchanged at settlement. - Ownership cycles: an NFT held inside its own account becomes permanently inaccessible. Implementations should block it.
- Compliance: if the NFT represents a regulated asset, the account’s contents may also be regulated; apply transfer restrictions to the NFT.
- Implementation trust: users must trust the account implementation code; use audited implementations.
The account interface
interface IERC6551Account {
receive() external payable;
function token() external view returns (uint256 chainId, address tokenContract, uint256 tokenId);
function state() external view returns (uint256);
function isValidSigner(address signer, bytes calldata context) external view returns (bytes4 magicValue);
}
interface IERC6551Executable {
function execute(address to, uint256 value, bytes calldata data, uint8 operation)
external payable returns (bytes memory);
}
state() changes whenever the account executes something, which marketplaces can use to detect last-minute changes before completing an NFT sale.
Example: a “property passport”
| Item held by the TBA | Token type | Purpose |
|---|---|---|
| Title record reference | ERC-721 (hash only) | Proof of registered title |
| Insurance certificate | Soulbound credential | Active cover |
| Energy performance certificate | NFT | ESG reporting |
| Maintenance log entries | NFTs or HCS-anchored hashes | History for buyers and lenders |
| Accrued service-charge float | Stablecoin | Operating cash |
When the property NFT moves to a new owner (for example after a sale of the SPV), the passport moves with it — buyers and lenders see the entire history in one place.
Safe marketplace settlement for TBAs
- Seller lists the NFT; marketplace records the TBA’s current
state(). - Buyer accepts the listing.
- At settlement, the marketplace checks
state()is unchanged; if the seller drained or altered the account, the sale reverts.
Implementation tips
- Use the canonical registry so addresses are consistent across chains.
- Choose or write an account implementation that blocks ownership cycles and supports ERC-1271 signatures.
- If the bound NFT is permissioned, ensure the account itself can hold the regulated assets placed in it.
Frequently asked questions
No. Any ERC-721 can have a token bound account created through the registry.
The current owner of the bound NFT, as defined by the account implementation.
Yes. It is a smart-contract wallet and can hold any token.
It can bundle documents, income and records with a property NFT, but legal ownership and securities compliance must be handled in the underlying structure.
Yes — different implementations or salts create different accounts for the same NFT.
The assets stay at the same account address; control of that address moves with NFT ownership.
This article is for general information only and is not legal, tax or investment advice. Token standards evolve — always confirm the current status of an ERC at eips.ethereum.org and take advice from qualified counsel in each jurisdiction before issuing tokens.


