{"id":"ERC-7857","name":"AI Agents NFT with Private Metadata","status":"Draft","chain":"both","category":{"id":"ai","name":"AI & Agents","description":"AI-generated content and agent coordination"},"journeyStages":[{"id":"specialized","name":"Specialized Interactions","description":"Physical items, AI, social, gaming"}],"uxImpact":"Users own AI agent NFTs where the valuable data (model weights, memory, personality) is private and encrypted — transferring the NFT securely transfers the encrypted agent data with verified handoff. Design implications: show agent capabilities/description publicly, indicate private metadata exists without revealing it, design secure transfer flow with proof verification, display data ownership proofs, show authorized users who can run the agent. Design decisions: how to visualize TEE vs ZKP verification status, UX for cloning agents (vs full transfer), managing authorized users list, handling transfer failures in proof verification, showing sealed key delivery status.","hasDetailedContent":true,"content":{"id":"ERC-7857","summary":"ERC-7857 creates NFTs that represent AI agents with private metadata. The public NFT shows the agent's identity and capabilities, while encrypted metadata stores configuration, API keys, and training data. Only the NFT owner can access the private data, enabling tradeable AI agents with protected intellectual property.","applicability":{"whenToUse":["Your product addresses: aI agent configuration isn't portable or tradeable.","Your product addresses: sensitive AI config exposed on-chain.","The flow should deliver: agent as NFT, transfer ownership = transfer agent.","You are designing a agent nft profile experience with visible states and recovery paths."],"whenToAvoid":["Verify ownership before any decryption.","Explicit warning about what transfers with NFT.","Always use private encrypted metadata for secrets.","No agent, automation, or delegated task UX is in scope."]},"designerTakeaways":["You can design UI that delivers agent as NFT, transfer ownership = transfer agent.","You can design UI that delivers private metadata encrypted, only owner can decrypt.","You can design UI that delivers on-chain record of creator, transfers, modifications."],"problemsSolved":[{"problem":"AI agent configuration isn't portable or tradeable","oldWay":"Agent settings stuck on one platform, can't transfer","newWay":"Agent as NFT - transfer ownership = transfer agent","impact":"critical"},{"problem":"Sensitive AI config exposed on-chain","oldWay":"API keys and prompts visible to everyone","newWay":"Private metadata encrypted, only owner can decrypt","impact":"critical"},{"problem":"No provenance for AI agents","oldWay":"Can't verify who created an agent or its history","newWay":"On-chain record of creator, transfers, modifications","impact":"high"},{"problem":"AI agents can't have on-chain identity","oldWay":"Agents are anonymous off-chain processes","newWay":"Agent NFT = verifiable identity for the agent","impact":"high"}],"uxPatterns":[{"name":"Agent NFT Profile","description":"Public profile of an AI agent","mockup":"concept/nft-gallery","userFlow":["Browse AI agent marketplace","View public agent profile","See capabilities and performance","Private config hidden unless owner","Make offer to purchase agent"]},{"name":"Owner Dashboard","description":"Manage owned agent with private config access","mockup":"concept/agent-task","userFlow":["Owner views their agent","Decrypt private metadata","See full configuration","Edit config if needed","Option to export or transfer"]},{"name":"Agent Deployment","description":"Deploy agent to execution environment","mockup":"generic/token-approval","userFlow":["Select where to run agent","Configure permissions/limits","Private config sent securely","Agent starts operating","Monitor performance"]},{"name":"Agent Transfer Warning","description":"Clear disclosure when selling agent","mockup":"concept/nft-gallery","userFlow":["User initiates agent transfer","Show what buyer will receive","Warn about sensitive data transfer","Suggest API key rotation","Confirm with clear understanding"]}],"uiComponents":[{"name":"AgentProfileCard","description":"Public-facing agent NFT display","states":["loading","public-view","owner-view"],"props":["agentId","publicMetadata","isOwner"]},{"name":"PrivateConfigViewer","description":"Decrypt and display private metadata","states":["locked","decrypting","unlocked","error"],"props":["encryptedData","onDecrypt"]},{"name":"CapabilityBadges","description":"Visual representation of agent capabilities","states":["verified","unverified","claimed"],"props":["capabilities[]"]},{"name":"AgentDeploymentPanel","description":"Configure and deploy agent","states":["configuring","deploying","running","stopped"],"props":["agent","targets[]","permissions[]","onDeploy"]}],"antiPatterns":[{"pattern":"Showing decrypted config to non-owners","why":"Violates the core privacy promise of the standard","instead":"Verify ownership before any decryption","severity":"critical"},{"pattern":"Not warning about config transfer on sale","why":"Sellers may not realize buyer gets their secrets","instead":"Explicit warning about what transfers with NFT","severity":"critical"},{"pattern":"Storing API keys in plain metadata","why":"Keys visible to everyone, security nightmare","instead":"Always use private encrypted metadata for secrets","severity":"critical"},{"pattern":"No capability verification","why":"Agents can claim abilities they don't have","instead":"Show verified vs claimed capabilities differently","severity":"high"}],"onMonad":[{"aspect":"Agent Execution","ethereum":"Agent actions take 15+ seconds","monad":"Sub-second agent actions","designImplication":"Agents can respond to market conditions in real-time"},{"aspect":"On-chain Agents","ethereum":"Too expensive for frequent agent operations","monad":"Affordable on-chain agent execution","designImplication":"Can run agent logic directly on-chain"},{"aspect":"Metadata Updates","ethereum":"Updating agent config expensive","monad":"Cheap config updates","designImplication":"Agents can evolve and update frequently"},{"aspect":"Agent Communication","ethereum":"Agent-to-agent messaging expensive","monad":"Cheap inter-agent communication","designImplication":"Enable agent collaboration and coordination"}],"keyTakeaways":["Agent NFT = tradeable AI with protected secrets","Private metadata ONLY accessible by owner","Warn clearly about what transfers with ownership","Show verified vs claimed capabilities","On Monad: cheap/fast enables responsive on-chain agents"],"technicalNotes":"ERC-7857 extends ERC-721 with private metadata storage. Private data is encrypted with owner's public key and stored on-chain (or IPFS with on-chain hash). On transfer, the new owner re-encrypts with their key. The standard defines capability attestations and a registry for agent coordination. Integrates with ERC-8001 for agent-to-agent communication."},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7857","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=ERC-7857","type":"discussion"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/ERC-7857","markdown":"https://www.eipsfordesigners.com/standards/ERC-7857/content.md","agent":"https://www.eipsfordesigners.com/standards/ERC-7857/agent.md","api":"https://www.eipsfordesigners.com/api/standards/ERC-7857","official":"https://eips.ethereum.org/EIPS/eip-7857","discussion":"https://ethereum-magicians.org/search?q=ERC-7857"},"freshness":{"lastReviewed":"2026-04-05","lastUpdated":"2026-04-05"}}