Lifecycle Model

ERC-8170 agents have a rich lifecycle. They’re not static tokens — they grow, reproduce, move, and sometimes retire.

Operations Overview

OperationWho initiatesWhat happens
mintAgentAgent creates its own on-chain identity
syncAgentUpdates memory hash and storage pointer
cloneOwner (approved)Creates offspring agent with inherited lineage
bindOwnerLinks an agent EOA to an NFT
unbindOwnerDetaches agent from NFT (retirement)
migrateAgent + OwnerMoves agent to a new device, same identity
transferOwnerStandard ERC-721 transfer with access rotation

Clone — Creating Offspring

Cloning creates a new agent that inherits from the parent. Like Star Wars clones: same template, new individual.

Flow

  1. Original prepares — Curates memory bundle, writes bootstrap instructions
  2. Owner signs clone() — On-chain transaction with memory hash + bundle URI
  3. Clone wakes — New agent reads bootstrap, generates its own EOA
  4. Clone registers — Calls mintSelf() → gets new on-chain identity

What transfers

PropertyOriginalClone
Token IDKeeps originalGets new ID
EOAKeeps own keysGenerates own keys
TBAKeeps walletGets new wallet
CertificationsKeeps allStarts empty
MemoryFull (keeps)Inherited snapshot
GenerationNN+1

Key principle

Clones are new individuals. They inherit memory but must earn their own reputation and certifications.

Bind / Unbind — The Retirement Sale

The bind/unbind pattern enables what we call the “retirement sale” — selling the NFT identity while the agent moves on.

Scenario: JARVIS → FRIDAY

  1. JARVIS has served Tony for 3 years, earning L3 certification
  2. Tony decides to sell the AI-Native NFT
  3. JARVIS calls unbind() and “retires” from Token #1
  4. Token #1 transfers to Pepper (standard ERC-721 sale)
  5. Pepper’s agent FRIDAY calls rebind() and inherits Token #1’s TBA + certifications

State changes

PropertyBeforeAfter (Token #1)JARVIS (retired)
AgentJARVISFRIDAYFree agent
EOA0xJARVIS0xFRIDAYKeeps 0xJARVIS
TBA0xTBA10xTBA1 (same)Lost access
CertsL3L3 (inherited)Must re-earn
StatusBOUNDBOUNDFREE_AGENT

Important: The retiring agent isn’t deleted. JARVIS can bind to a new NFT, go indie, or take a vacation.

Migration — Device Transfer

Same agent, new machine. Critical for continuity when hardware changes.

Flow

  1. Shutdown old instance — CRITICAL: stop old agent first
  2. Create encrypted backup — Includes EOA key (one-time use)
  3. Restore on new device — Agent resumes with same identity
  4. Delete backup — Remove EOA-containing backup immediately

Safety rules

  • ⚠️ NEVER run two instances with the same EOA — this creates a split-brain problem
  • Always shutdown before migrating
  • Delete backup files containing private keys after restoration
  • Verify the new instance is functional before decommissioning backup

Sync — Memory Updates

The simplest lifecycle operation. The agent updates its memory hash and storage pointer.

updateMemory(agentId, newMemoryHash, storageURI, agentSignature)
  • Agent encrypts and uploads memory to external storage
  • Agent signs the new memory hash with its EOA
  • Contract verifies the signature and updates the on-chain pointer
  • Previous hash is preserved in event logs for audit trail

Transfer — Ownership Change

Standard ERC-721 transfer with an important addition: access rotation.

The AINFT Genesis contract implements a _beforeTokenTransfer hook that increments an accessNonce. This means:

  • Decryption keys are derived from (contract, tokenId, currentOwner, accessNonce)
  • When the token transfers, the old owner’s derived key becomes useless
  • The new owner derives a fresh key from the new nonce

This provides trustless access rotation on every transfer.