{"id":"EIP-7811","name":"Unified Cross-Chain Balances","status":"Draft","chain":"both","category":{"id":"cross-chain","name":"Cross-Chain","description":"Moving assets and messages between chains"},"journeyStages":[{"id":"asset-display","name":"Asset Discovery & Display","description":"Seeing tokens, NFTs, and balances"}],"uxImpact":"Users see their true net worth across all chains in a single view — no more manually switching networks to check balances. Design implications: aggregate balances across chains into a unified portfolio display, show per-chain breakdown on expand, handle loading states for multi-chain queries, display total value in fiat. Design decisions: whether to show chain badges on individual assets or group by chain, how to handle stale data from slow chains, real-time vs periodic refresh strategy, whether to show 'available on chain X' indicators for cross-chain actions. Multi-Chain Checklist rates this Critical priority — 'True net worth in one view.' Draft status, no implementations yet, but addresses the Single-Chain Balance Display pain point.","hasDetailedContent":true,"content":{"id":"EIP-7811","sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7811","type":"official-spec"}],"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25","summary":"Users see their true net worth across all chains in a single view — no more manually switching networks to check balances.","designerTakeaways":["You can show single Total balance header with expandable per-chain breakdown rows.","Your loading UI can skeleton each chain row independently as data arrives.","You can mark stale chain data with Last updated 5m ago when RPC lags."],"applicability":{"whenToUse":["Multi-chain users are primary audience.","Product positioning is omnichain portfolio.","Aggregator infrastructure exists for target chains."],"whenToAvoid":["Single-chain-only product.","Cannot solve double-count on bridged assets.","Draft spec with no reliable data pipeline."]},"prototypeFirst":[{"screen":"Unified portfolio header","why":"First screen answer: how much am I worth total?","covers":["All chains loaded","Partial load","Fiat toggle"],"include":["Total USD/EUR","Chain expand chevron","Partial data warning"]},{"screen":"Per-chain breakdown expand","why":"Power users verify which chain holds what.","covers":["Expand row","Zero balance chain hidden"],"include":["Chain icon","Chain subtotal","Asset list per chain"]},{"screen":"Stale chain indicator","why":"Wrong totals destroy trust.","covers":["Stale","Refreshing","Failed chain"],"include":["Timestamp","Refresh button","Exclude from total option"]},{"screen":"Cross-chain action hint","why":"User may need asset on specific chain to act.","covers":["Available on Ethereum only"],"include":["Chain availability chip","Bridge CTA if needed"]}],"mentalModel":[{"label":"Unified total","description":"Sum across chains — what users want first."},{"label":"Chain slice","description":"Each network contributes a portion — expand to see."},{"label":"Same asset multi-chain","description":"ETH on L1 and L2 is one logical asset — merge or split per product rules."},{"label":"Bridged double count","description":"Same economic exposure twice if bridge not deduped — must handle."},{"label":"Stale slice","description":"Slow chain data old — total may be approximate."}],"statesToDesign":[{"state":"Full portfolio loaded","trigger":"All chains responded.","userNeed":"Trust total.","designResponse":"Complete header and breakdown."},{"state":"Partial load","trigger":"Some chains pending.","userNeed":"Not think money vanished.","designResponse":"Skeleton rows; partial total label."},{"state":"Stale chain data","trigger":"RPC lag.","userNeed":"Know total approximate.","designResponse":"Amber stale badge on chain row."},{"state":"Chain query failed","trigger":"RPC down.","userNeed":"Retry or exclude.","designResponse":"Failed to load Chain X with retry."},{"state":"Asset only on one chain","trigger":"User tries action needing other chain.","userNeed":"Bridge path.","designResponse":"Available on Polygon only chip."}],"designDecisions":[{"question":"Merge same symbol across chains?","recommendation":"Single ETH row with chain sub-badges in expand.","rationale":"Users think one ETH, multiple locations."},{"question":"Show zero-balance chains?","recommendation":"Hide in default; show in chain manager settings.","rationale":"Clutter without value."},{"question":"Include stale in total?","recommendation":"Yes with ~ approximate label or exclude with user toggle.","rationale":"Honesty over false precision."}],"problemsSolved":[{"problem":"Manual network switching to check balances","oldWay":"Switch MetaMask network 8 times","newWay":"One portfolio total with chain expand","impact":"critical"},{"problem":"Misstated net worth from missing chains","oldWay":"Forgot assets on L2","newWay":"Aggregator includes all connected chains","impact":"high"},{"problem":"Slow chain hides behind fast total","oldWay":"Total looks complete while L2 stale","newWay":"Per-chain stale indicators","impact":"medium"}],"uxPatterns":[{"name":"Unified Net Worth Header","description":"Single total with expandable chain rows.","mockup":"concept/bridge","components":["TotalBalance","ChainExpand","FiatToggle"],"userFlow":["Open portfolio","See total","Expand chain","Per-chain assets"]},{"name":"Incremental Chain Load","description":"Skeleton rows as each chain resolves.","mockup":"concept/tx-status","components":["ChainSkeleton","StaleBadge","RefreshButton"],"userFlow":["Load starts","Chains populate","Stale flagged","User refreshes"]}],"seenInTheWild":[{"app":"Zerion","url":"https://zerion.io/","note":"Multi-chain portfolio aggregation reference."},{"app":"DeBank","url":"https://debank.com/","note":"Cross-chain net worth dashboard patterns."},{"app":"Rainbow","url":"https://rainbow.me/","note":"Wallet multi-chain balance display."},{"app":"MetaMask Portfolio","url":"https://portfolio.metamask.io/","note":"Unified view across networks."}],"antiPatterns":[{"pattern":"Total without loading partial state","why":"Understated wealth while chains load","instead":"Partial total label until all chains resolve","severity":"high"},{"pattern":"Double-counting bridged same asset","why":"Inflated net worth","instead":"Dedupe bridge pairs in aggregation logic","severity":"critical"},{"pattern":"Hiding which chain holds asset","why":"User cannot act on holding","instead":"Chain badge on expand and action hints","severity":"medium"}],"vocabulary":[{"use":"Total across networks","avoid":"Aggregated multichain balance","why":"Plain wealth language."},{"use":"On [chain name]","avoid":"Chain ID 42161 slice","why":"Network names not ids."},{"use":"Updating…","avoid":"RPC query pending","why":"Loading copy not infra jargon."}],"onMonad":[{"aspect":"Monad slice in total","ethereum":"New chain may be omitted from aggregators","monad":"Include Monad in unified view from day one","designImplication":"Monad row in chain breakdown with fast refresh."},{"aspect":"Refresh speed","ethereum":"Slow chains dominate stale warnings","monad":"Monad slice stays fresh — highlight as reliable","designImplication":"Prefer Monad-held assets for quick actions in UI."}],"technicalNotes":"EIP-7811 is draft Critical priority for multi-chain checklist; dedupe bridged assets in totals.","relatedStandards":[{"id":"ERC-7828","relationship":"Chain-aware addresses complement balance view"},{"id":"EIP-5164","relationship":"Cross-chain messaging for balance sync"}]},"sources":[{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7811","type":"official-spec"},{"label":"Discussion","url":"https://ethereum-magicians.org/search?q=EIP-7811","type":"discussion"},{"label":"Official specification","url":"https://eips.ethereum.org/EIPS/eip-7811","type":"official-spec"}],"urls":{"canonical":"https://www.eipsfordesigners.com/standards/EIP-7811","markdown":"https://www.eipsfordesigners.com/standards/EIP-7811/content.md","agent":"https://www.eipsfordesigners.com/standards/EIP-7811/agent.md","api":"https://www.eipsfordesigners.com/api/standards/EIP-7811","official":"https://eips.ethereum.org/EIPS/eip-7811","discussion":"https://ethereum-magicians.org/search?q=EIP-7811"},"freshness":{"lastReviewed":"2026-05-25","lastUpdated":"2026-05-25"}}