Wallet Profile
The Wallet Profile panel is WalletWall’s compact, single-wallet overview. It self-fetches on-chain context for one Ethereum address and presents it as a scannable read-only summary, then hands off to the heavier Whale Watcher workspace for full signal analysis. The panel is a read-only intelligence surface: it never holds custody, never signs, and never writes to a wallet.Panel layout
The panel renders vertically:1
Identicon header
ENS or shortened address, chain badge, copy-address, and Etherscan link.
2
Hero balance + supporting metric cards
Native ETH balance with an estimated USD value, alongside supporting metric cards for transactions, counterparties, and last active.
3
Holdings strip with composition donut
Priced ERC-20 holdings — or 90-day trading exposure — with a top-5-plus-”Other” composition donut.
4
Transaction-cadence heatmap
Daily transaction-count timeline built from the latest native-ETH transactions in the loaded sample — not full wallet history or token transfers.
5
Transfer flow ledger (inflow / outflow)
Two-column view of the wallet’s largest counterparties, in USD-denominated flow or raw transfer counts.
6
Behavior labels and confidence caveats
Structural and activity descriptors as status badges, with elevated-risk signals separated into a confidence-caveats list.
7
Ranked lists
Top tokens by transfer volume, top counterparties, related pools/contracts, and the last 20 transfers.
8
Contextual onward paths
Signal-gated links to Quantum Exposure and Vault Readiness, shown only when relevant.
Identicon header
Each wallet gets a deterministic 5×5 mirrored identicon derived from its address, so the same wallet always renders the same mark. The header shows the wallet name (ENS when available, otherwise the shortened address), anEthereum chain badge, a copy-to-clipboard
control, and an Etherscan link.
Outbound address links are only constructed for well-formed
0x… hex addresses
(etherscanAddress()). Non-address values (ENS, protocol names) and any unsafe scheme
such as javascript: are never turned into links — this prevents DOM-based link injection
(CodeQL js/xss-through-dom).Hero balance and metrics
A hero card shows the wallet’s native ETH balance with an estimated USD value beneath it, alongside three supporting metric cards:
The USD total is an honest portfolio value: ETH plus the wallet’s priced ERC-20
holdings (Alchemy balances valued at DeFiLlama contract prices). Its scope is explicit —
valueScope: priced when token holdings contributed, valueScope: eth_only (and
labelled as such) when token balances were unavailable for the request. Unpriced tokens
are excluded from the total and reported as excluded in walletEvidence rather than
guessed at.
Holdings strip and composition donut
The embedded wallet holdings strip shows priced ERC-20 holdings — or 90-day trading exposure — from/api/wallet-portfolio. When
composition is shown, a hand-rolled SVG donut renders the top 5 priced
holdings plus an aggregated “Other” slice, so portfolio concentration is visible at a glance.
Transaction-cadence heatmap
A daily transaction-count timeline (buildActivityTimeline) drives an activity heatmap.
Transaction counts are reliable even where per-transfer USD is missing, so the cadence
stays meaningful regardless of pricing gaps. The heatmap is built from the wallet’s
native-ETH transactions only (ERC-20 token transfers are excluded from this view). The
caption discloses the actual count shown, the date span it covers, whether that’s the
newest slice of a larger loaded sample, and that token transfers and full wallet history
are not represented here.
Transfer flow ledger
The transfer flow ledger is a two-column inflow/outflow view of the wallet’s largest counterparties. It replaced an earlier SVG sankey diagram, which distorted badly becausepreserveAspectRatio="none" stretched its strokes into wedges. The ledger can
display either USD-denominated flow or raw transfer counts.
Holdings value vs. transfer throughput
The panel deliberately separates two things that are easy to conflate:- Holdings (the donut and holdings strip) — what the wallet currently holds, priced.
- Transfer volume / throughput (the “Top tokens by transfer volume” list) — the cumulative notional that has moved through the wallet across the sampled transfers.
Behavior labels
Structural and activity descriptors (behaviorLabels) render as status badges, with
elevated-risk signals separated into a “Confidence caveats” list. Labels are observational
descriptors, not findings of wrongdoing. A data-source badge reports the provider, fetch
time, and a confidence level that drops to low when fallback data is in use.
Contextual onward paths
When anonNavigate handler is supplied, the panel renders a signal-gated “Explore with
other tools” section:
Vault Readiness is gated by
isVaultRelevant(): it requires a valid EVM address plus
secondary signals such as stablecoin flow before the CTA appears, so the vault path is only
offered to wallets where read-only rehearsal is actually worth evaluating. The CTA copy
states plainly that it is a read-only evaluation with no custody and no wallet writes. This
carries a source=wallet-profile context into the Stablecoin Vault readiness flow so the
destination can acknowledge where the wallet came from.
See Stablecoin Vault for the readiness journey and custody boundaries.
Deep Dive handoff
The “Deep Dive →” actions invokeonDeepDive with the profile node, transitioning from the
compact profile into the full Whale Watcher workspace
(adversarial signals, narrative engine, protocol affinity, and the Quantum Exposure section).
Related surfaces
Whale Watcher
The full intelligence workspace the “Deep Dive →” action opens — adversarial signals, narrative engine, protocol affinity, and Quantum Exposure.
Quantum Intelligence
The cross-cutting migration-urgency framework behind the panel’s “Review Quantum Exposure” onward path.
Stablecoin Vault
The read-only vault-readiness journey behind the panel’s signal-gated “Check Vault Readiness” onward path.

