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

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:

This composability is intentional — an Etherean is a complete identity package, not just a profile picture. Selling an Etherean means selling the whole agent.

Token-Bound Accounts — ETHEREAN Docs