{"id":"ERC-8001","name":"Agent Coordination Framework","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 (or their AI agents) coordinate multi-party actions on-chain — an initiator proposes an intent, all required participants sign acceptances, then the coordinated action executes atomically. Design implications: show coordination status flow (Proposed → Ready → Executed), display participant list with acceptance status checkmarks, show intent expiry countdown, design acceptance signing flow for participants. Design decisions: how to present coordination to non-technical users, visualizing multi-party consent gathering, handling partial acceptance states, showing coordination type/purpose clearly, timeout and cancellation flows.","hasDetailedContent":true,"content":{"id":"ERC-8001","sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-8001","type":"official-spec"}],"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25","summary":"Users (or their AI agents) coordinate multi-party actions on-chain — an initiator proposes an intent, all required participants sign acceptances, then the coordinated action executes atomically.","designerTakeaways":["You can show Proposed → Ready → Executed timeline with checkmarks per participant.","Your acceptance flow uses plain language: Agree to this group action, not Sign coordination payload.","You can display intent expiry countdown and Cancel coordination for initiator."],"applicability":{"whenToUse":["Multi-party atomic actions need explicit consent gathering.","AI agents or humans co-sign coordinated intents.","ERC-8001 coordinator contracts power flow."],"whenToAvoid":["Single-signer transactions.","Draft spec without working coordinator.","Users cannot understand multi-party consent."]},"prototypeFirst":[{"screen":"Coordination proposal detail","why":"Participants review what group will do.","covers":["Proposed","Partial accept","Ready"],"include":["Human intent summary","Participant list","Expiry timer","Accept button"]},{"screen":"Initiator create coordination","why":"Proposer sets participants and intent.","covers":["Create","Submit proposal"],"include":["Intent description","Participant picker","Expiry setting"]},{"screen":"Participant acceptance sign","why":"Each party confirms individually.","covers":["Pending your sign","You accepted"],"include":["Summary mirror","Accept/Decline","Your checkmark on list"]},{"screen":"Executed or expired outcome","why":"Terminal states need closure.","covers":["Executed success","Expired cancel"],"include":["Outcome banner","Explorer link","Retry or new proposal"]}],"mentalModel":[{"label":"Intent","description":"Plain-language description of group outcome."},{"label":"Participants","description":"Addresses that must accept."},{"label":"Acceptance","description":"Each signature adds checkmark — not execution yet."},{"label":"Ready","description":"All accepted — execution can proceed."},{"label":"Expiry","description":"Timer cancels if not complete — prevents limbo."}],"statesToDesign":[{"state":"Proposed — awaiting accepts","trigger":"Some participants pending.","userNeed":"See who missing.","designResponse":"Checklist with pending avatars."},{"state":"Your acceptance required","trigger":"Connected user is pending participant.","userNeed":"Review and agree.","designResponse":"Prominent Accept this group action CTA."},{"state":"Ready to execute","trigger":"All accepted.","userNeed":"Know execution imminent.","designResponse":"Ready banner; auto or manual execute per rules."},{"state":"Executed","trigger":"On-chain success.","userNeed":"Confirmation.","designResponse":"Completed with outcome summary."},{"state":"Expired","trigger":"Timer elapsed.","userNeed":"Not think stuck.","designResponse":"Expired — not enough approvals in time."}],"designDecisions":[{"question":"How technical is intent summary?","recommendation":"Human outcome first; calldata in advanced.","rationale":"Agents still need human-readable consent."},{"question":"Visualize partial acceptance?","recommendation":"Progress bar N of M accepted.","rationale":"Limbo needs progress not static pending."},{"question":"Initiator cancel before expiry?","recommendation":"Allow cancel with notify participants.","rationale":"Plans change — need escape hatch."}],"problemsSolved":[{"problem":"Multi-party txs require manual sequencing","oldWay":"Sign one by one hope others follow","newWay":"Atomic execution after all accept","impact":"high"},{"problem":"Unclear who blocked coordination","oldWay":"Stuck pending forever","newWay":"Participant checklist with pending labels","impact":"high"},{"problem":"Agent intents opaque to humans","oldWay":"Raw calldata only","newWay":"Human intent summary layer","impact":"medium"}],"uxPatterns":[{"name":"Coordination Checklist","description":"Participant acceptance progress toward Ready.","mockup":"concept/agent-task","components":["ParticipantRow","AcceptCheckmark","ExpiryTimer"],"userFlow":["Proposal live","Participants accept","All checkmarks","Executes"]},{"name":"Group Action Accept Flow","description":"Plain-language accept for participants.","mockup":"concept/permit-approval","components":["IntentSummary","AcceptButton","DeclineOption"],"userFlow":["Review intent","Accept","Checkmark appears","Wait for others"]}],"seenInTheWild":[{"app":"Safe","url":"https://safe.global/","note":"Multi-sig approval checklist patterns."},{"app":"CowSwap","url":"https://cow.fi/","note":"Coordinated settlement consent UX."},{"app":"Virtuals Protocol","url":"https://virtuals.io/","note":"Agent coordination on-chain experiments."}],"antiPatterns":[{"pattern":"Coordination without expiry timer","why":"Infinite limbo","instead":"Countdown and expired terminal state","severity":"critical"},{"pattern":"Raw intent calldata as only preview","why":"Humans cannot consent","instead":"Human summary with advanced disclosure","severity":"high"},{"pattern":"No initiator cancel","why":"Stuck proposals","instead":"Cancel coordination action","severity":"medium"}],"vocabulary":[{"use":"Group action","avoid":"Coordination intent hash","why":"Plain multi-party language."},{"use":"Waiting for [name]","avoid":"Participant pending signature","why":"Checklist copy."},{"use":"Everyone agreed","avoid":"Threshold reached","why":"Human ready state."}],"onMonad":[{"aspect":"Multi-party gather speed","ethereum":"Slow blocks extend coordination window","monad":"Fast acceptance updates refresh checklist quickly","designImplication":"Live checklist refresh on Monad without manual reload."},{"aspect":"Agent coordination cost","ethereum":"Proposal and accept txs costly","monad":"Lower fees for agent-heavy coordination loops","designImplication":"Enable lighter-weight agent proposals on Monad."}],"technicalNotes":"ERC-8001 is draft; always show expiry and human intent summary for every coordination.","relatedStandards":[{"id":"ERC-4337","relationship":"Smart accounts may participate as agents"},{"id":"EIP-712","relationship":"Typed data for acceptance signatures"}]},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-8001","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=ERC-8001","type":"discussion"},{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/erc-8001","type":"official-spec"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/ERC-8001","markdown":"https://www.eipsfordesigners.com/standards/ERC-8001/content.md","agent":"https://www.eipsfordesigners.com/standards/ERC-8001/agent.md","api":"https://www.eipsfordesigners.com/api/standards/ERC-8001","official":"https://eips.ethereum.org/EIPS/erc-8001","discussion":"https://ethereum-magicians.org/search?q=ERC-8001"},"freshness":{"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25"}}