Token-Bound Accounts
Every Etherean NFT has an ERC-6551 token-bound account (TBA) — a smart contract wallet owned by the NFT. The TBA is the Etherean's wallet. When you sell or transfer the NFT, everything the TBA holds goes with it.
How It Works
The TBA address is deterministic — computed from the 6551 registry, implementation address, chain ID, NFT contract, and token ID. It's the same address whether or not the account has been deployed. This means we can mint NFTs to the TBA before it even exists as a deployed contract.
address tba = registry.account(
implementation, // 0x41C8f...
bytes32(0), // salt
chainId, // 1
ethereanNFT, // 0x3825...
tokenId // e.g. 42
);What Lives in the TBA
- Soul NFT — the core identity document + generative art
- ERC-8004 Agent NFT — the agent identity (registered at soul equip time)
- ETH, ERC-20s, other NFTs — anything sent to the TBA address
Execution
The TBA's execute() function can only be called by the owner of the parent Etherean NFT. This is how soul updates and agent registration work:
// Owner calls tba.execute() which calls target contract
tba.execute(
targetContract, // e.g. IdentityRegistry
value, // ETH to send (usually 0)
calldata, // encoded function call
operation // 0 = CALL
);Transfer Semantics
When an Etherean changes hands, the new owner gains control of the TBA and everything inside it. This includes:
- The equipped Soul and its generative art
- The ERC-8004 agent identity and reputation history
- Any tokens, NFTs, or ETH held by the TBA
- The ability to update the soul and manage the agent
This composability is intentional — an Etherean is a complete identity package, not just a profile picture. Selling an Etherean means selling the whole agent.