Tags appear next to wallet addresses throughout the dashboard. They're applied in this priority order:
Exchange · obfuscated
Exchange or market maker using hop wallets to route funds. Auto-detected when ≥ 3 distinct passthroughs feed into or out of an exchange/distributor wallet. These are not direct user exchange wallets — they obfuscate flow. (e.g. 5H3JuU…)
Exchange
Main exchange hot wallet. High bidirectional flow (many depositors AND many withdrawers), balanced net flow, high volume. This is where users directly deposit/withdraw. (e.g. KuCoin 5HP255…)
Distributor
Mostly one-way outflow. Could be treasury, airdrop, sweep, or one-direction distribution wallet. Many distinct recipients, little incoming.
Pass-through
Single-use routing hop. Balanced in/out (within 5%), near-zero balance. Used for obfuscation or routing between exchanges. Auto-detected.
Team / genesis
Pre-sample initial allocation — got tokens before our transfer-history window. Sub-types: pure (zero inflow ever), dormant (zero in AND out — just sitting on tokens), vested (only received from other team wallets), likely (no exchange inflow, tiny noise). Never applied if the wallet received from a labeled exchange.
(no tag)
Normal user. Has some funding from exchanges or unlabeled sources, or hasn't been analyzed. The vast majority of wallets fall here. Examples: anyone who bought AZERO from KuCoin and is holding.
Tags are stored in azero_holders/labels.json. Rerun node build_clusters.mjs after editing to apply.