Coinstellation
Coinstellation is WalletWall’s wallet relationship graph. It renders the on-chain connections of an Ethereum wallet as an interactive node-edge visualization, built from transaction history sourced from Etherscan, Alchemy, and The Graph.Galaxy graph
The graph renders wallet addresses, tokens, DeFi protocols, NFTs, and counterparties as nodes connected by weighted edges. It is displayed in a 2D/3D interactive canvas using Three.js. Nodes are laid out to emphasize relationship clusters: wallets with high transaction volume to the same protocol or counterparty appear closer together.Entry points
Coinstellation can be reached from:- A direct wallet address or ENS name entered in the search bar
- Clicking a tile in Holder Wall
- Selecting a wallet from the Whale Watcher workspace
Node types
| Type | Description |
|---|---|
wallet | Ethereum address (EOA or contract wallet) |
token | ERC-20 token contract |
defi | DeFi protocol contract (Uniswap, Aave, Curve, etc.) |
nft | NFT contract |
counterparty | Address that transacted with the wallet but is not otherwise classified |
anomaly | Address flagged by risk heuristics |
Edge relationships
Edges represent transaction relationships derived from loaded Ethereum wallet activity:- Wallet-to-token: the wallet holds or traded this token
- Token-to-protocol: the token flows through this protocol
- Token-to-counterparty: the token was sent to or received from this counterparty
weightUSD) is the USD-like value of cumulative transactions between the two nodes. txCount records the number of interactions.
Click-to-explore
Clicking any node opens the NodeDetailPanel. Clicking an edge highlights the transaction path between the two connected nodes. Double-clicking a counterparty node or wallet node initiates a graph expansion, loading that node’s own transaction graph and appending its relationships to the current view.NodeDetailPanel tabs
The NodeDetailPanel has three tabs:- Portfolio
- Volume
- Tx Count
Token balances and estimated USD value held by the selected wallet node. Sourced from CoinGecko price data and on-chain balance calls.
Observability badge
TheWalletObservabilityBadge in the graph header shows the data source and provider for the current wallet:
observability.source | Badge text |
|---|---|
live | Live · <ProviderName> |
mock | Demo |
fallback | Fallback |
Data sources
Coinstellation is powered by theGET /api/wallet endpoint. Provider selection is automatic:
| Condition | Provider |
|---|---|
ETHERSCAN_API_KEY set | Etherscan (live) |
ALCHEMY_API_KEY only | Alchemy (live) |
| Neither key set | Mock wallet provider (deterministic, address-seeded) |
ethers.id.
Transaction sampling
The API loads up to a configured sample limit of normal transactions per wallet. ThetransactionSample field in the response reports:
loadedCount: number of transactions loadedsampleLimit: configured limitisSampled: true when the response hit the limitfirstLoadedTxAt/lastLoadedTxAt: ISO timestamps of the loaded window
isSampled is true, the graph may be incomplete. The WalletDataQualityStrip at the bottom of the screen notes partial data without alarming copy.
Whale Watcher context
From any wallet node in Coinstellation, the Whale Watcher workspace can be opened for that wallet. This transitions from graph exploration to the full intelligence workspace.Label sanitization
Node labels are sanitized viasanitizeLabel before display. Phishing symbols and spam content are redacted. Raw counterparty labels from providers are never shown unmodified.