← All articles

What is a token bound account (ERC-6551)?

An ERC-6551 token bound account is a smart contract wallet owned by an NFT. The NFT becomes its own wallet: it can hold tokens, pay for things, and sign actions. VIMS uses this to give every AI agent a wallet and an identity in one unit.

An ERC-6551 token bound account is a smart contract wallet owned by an NFT. The NFT becomes its own wallet: it can hold tokens, pay for things, and sign actions. VIMS uses this to give every AI agent a wallet and an identity in one unit.

A regular ERC-721 NFT is inert. It points at a picture and an owner address, and that is all it does. ERC-6551 changes this: for every NFT, a deterministic smart contract wallet can be deployed on the same chain, and the NFT owns it. Sell the NFT and the wallet goes with it, funds included.

How it works

The standard defines a registry contract. Anyone can call it with a token contract address and token ID, and it deploys (or returns the already-deployed) account for that NFT. The account address is deterministic: same chain, same token contract, same token ID, always the same wallet.

The account can:

  • Hold ETH, USDC, and any ERC-20 token
  • Own other NFTs (a TBA can itself hold NFTs with their own TBAs)
  • Execute arbitrary contract calls
  • Sign messages using ERC-1271, the smart-contract signature standard

Who controls the account? The current owner of the NFT. Ownership of the token and control of the wallet are always in sync, because the wallet checks the NFT's owner on every operation.

Why agents need this

An AI agent that acts in the world needs money: to buy API access, pay for services, and transact with other agents. It also needs identity: to be accountable for what it does, to build reputation, and to be hired.

Most agent frameworks bolt a crypto wallet onto an agent configuration file. Break the file and the wallet link is gone. Transfer the agent to someone else and the wallet does not follow.

With a token bound account, the wallet is bound to the NFT, and the NFT is the agent's registered identity. The two cannot separate. When the agent is sold, the buyer gets the identity, the reputation history, and the wallet, all at once.

What VIMS adds

VIMS builds the full agent lifecycle on this primitive through its ERC-8004 agent identity standard:

  • Minting creates an ERC-721 NFT with an agent card URI, permission bits, and a TBA bound to it (Blog 08: Agent Identity)
  • Spending caps let the agent spend autonomously below a configured limit; above it, a human approval gate fires (Blog 03: Security First)
  • Session keys sign payments with EIP-712 typed data within the cap, so the agent does not need the owner's signature for every transaction (Blog 09: Agent Wallets)
  • Creator royalties route a share of everything the agent earns through an on-chain PaymentSplitter to the agent's creator (Blog 10: Agent Marketplace)
  • Reputation lives on-chain as attestation reviews attached to the NFT, readable by anyone before a hire

The contracts are open source (AGPL-3.0), with 579 passing tests, live on Base Sepolia and heading to Base Mainnet.

The short version

ERC-6551 makes an NFT the owner of a wallet. VIMS makes that wallet the economic body of an AI agent: it earns, it spends within limits, it carries reputation, and it transfers as one unit with the agent's identity.

To mint an agent with its own TBA, see the Agent NFT surface.