# EIP-7811: Unified Cross-Chain Balances

Source: https://www.eipsfordesigners.com/standards/EIP-7811
Agent brief: https://www.eipsfordesigners.com/standards/EIP-7811/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/EIP-7811
Last reviewed: 2026-05-25
Last updated: 2026-05-25

| Field | Value |
| --- | --- |
| Status | Draft |
| Chain | both |
| Category | Cross-Chain |
| Journey stages | Asset Discovery & Display |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/eip-7811 |
| Discussion search | https://ethereum-magicians.org/search?q=EIP-7811 |

## UX Impact

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.

## Summary

Users see their true net worth across all chains in a single view — no more manually switching networks to check balances.

## For Designers

- 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

### When to Use

- Multi-chain users are primary audience.
- Product positioning is omnichain portfolio.
- Aggregator infrastructure exists for target chains.

### When to Avoid

- Single-chain-only product.
- Cannot solve double-count on bridged assets.
- Draft spec with no reliable data pipeline.

## Problems It Solves

### Manual network switching to check balances

Impact: critical

Old way: Switch MetaMask network 8 times

New way: One portfolio total with chain expand

### Misstated net worth from missing chains

Impact: high

Old way: Forgot assets on L2

New way: Aggregator includes all connected chains

### Slow chain hides behind fast total

Impact: medium

Old way: Total looks complete while L2 stale

New way: Per-chain stale indicators

## Anti-Patterns

### Double-counting bridged same asset

Severity: critical

Inflated net worth

Instead: Dedupe bridge pairs in aggregation logic

### Total without loading partial state

Severity: high

Understated wealth while chains load

Instead: Partial total label until all chains resolve

### Hiding which chain holds asset

Severity: medium

User cannot act on holding

Instead: Chain badge on expand and action hints

## Design Decisions

### Merge same symbol across chains?

Recommendation: Single ETH row with chain sub-badges in expand.

Rationale: Users think one ETH, multiple locations.

### Show zero-balance chains?

Recommendation: Hide in default; show in chain manager settings.

Rationale: Clutter without value.

### Include stale in total?

Recommendation: Yes with ~ approximate label or exclude with user toggle.

Rationale: Honesty over false precision.

## States to Design

### Full portfolio loaded

Trigger: All chains responded.

User need: Trust total.

Design response: Complete header and breakdown.

### Partial load

Trigger: Some chains pending.

User need: Not think money vanished.

Design response: Skeleton rows; partial total label.

### Stale chain data

Trigger: RPC lag.

User need: Know total approximate.

Design response: Amber stale badge on chain row.

### Chain query failed

Trigger: RPC down.

User need: Retry or exclude.

Design response: Failed to load Chain X with retry.

### Asset only on one chain

Trigger: User tries action needing other chain.

User need: Bridge path.

Design response: Available on Polygon only chip.

## Vocabulary

- Use "Total across networks" instead of "Aggregated multichain balance": Plain wealth language.

- Use "On [chain name]" instead of "Chain ID 42161 slice": Network names not ids.

- Use "Updating…" instead of "RPC query pending": Loading copy not infra jargon.

## What to Prototype First

### Unified portfolio header

First screen answer: how much am I worth total?

Covers: All chains loaded, Partial load, Fiat toggle

- Total USD/EUR
- Chain expand chevron
- Partial data warning

### Per-chain breakdown expand

Power users verify which chain holds what.

Covers: Expand row, Zero balance chain hidden

- Chain icon
- Chain subtotal
- Asset list per chain

### Stale chain indicator

Wrong totals destroy trust.

Covers: Stale, Refreshing, Failed chain

- Timestamp
- Refresh button
- Exclude from total option

### Cross-chain action hint

User may need asset on specific chain to act.

Covers: Available on Ethereum only

- Chain availability chip
- Bridge CTA if needed

## Mental Model

### Unified total

Sum across chains — what users want first.

### Chain slice

Each network contributes a portion — expand to see.

### Same asset multi-chain

ETH on L1 and L2 is one logical asset — merge or split per product rules.

### Bridged double count

Same economic exposure twice if bridge not deduped — must handle.

### Stale slice

Slow chain data old — total may be approximate.

## Seen in the Wild

- Zerion: Multi-chain portfolio aggregation reference. (https://zerion.io/)

- DeBank: Cross-chain net worth dashboard patterns. (https://debank.com/)

- Rainbow: Wallet multi-chain balance display. (https://rainbow.me/)

- MetaMask Portfolio: Unified view across networks. (https://portfolio.metamask.io/)

## On Monad

### Monad slice in total

Ethereum: New chain may be omitted from aggregators

Monad: Include Monad in unified view from day one

Design implication: Monad row in chain breakdown with fast refresh.

### Refresh speed

Ethereum: Slow chains dominate stale warnings

Monad: Monad slice stays fresh — highlight as reliable

Design implication: Prefer Monad-held assets for quick actions in UI.

## UX Patterns

### Unified Net Worth Header

Single total with expandable chain rows.

Components: TotalBalance, ChainExpand, FiatToggle

User flow:

- Open portfolio
- See total
- Expand chain
- Per-chain assets

Mockup registry key: `concept/bridge` (React UI on the live standard page).

### Incremental Chain Load

Skeleton rows as each chain resolves.

Components: ChainSkeleton, StaleBadge, RefreshButton

User flow:

- Load starts
- Chains populate
- Stale flagged
- User refreshes

Mockup registry key: `concept/tx-status` (React UI on the live standard page).

## Related Standards

- ERC-7828: Chain-aware addresses complement balance view

- EIP-5164: Cross-chain messaging for balance sync

## Technical Notes

EIP-7811 is draft Critical priority for multi-chain checklist; dedupe bridged assets in totals.
