(chain, address, snapshot_date) is the unique key.
Classification is derived from stablecoin transfers and balances (the top stablecoins per chain), not from a wallet’s full on-chain footprint. A wallet’s tier and scores describe its stablecoin behavior. A heavy NFT or DEX trader who rarely touches stablecoins will look small here. For a wallet’s broader activity, see Wallet 360.
Where it lives
| Surface | Table | Use when |
|---|---|---|
| Crosschain (all chains) | crosschain.wallet360.wallet_classification | You want one query across chains — filter by chain. |
| Per chain | <chain>.wallet_features.wallet_classification | You only need one chain (e.g. ethereum.wallet_features.wallet_classification). |
group by address) for a wallet’s multi-chain view.
How addresses are selected
The address universe is built from filtered stablecoin transfers, then snapshotted to each wallet’s most recent activity day.Start from top stablecoins
Transfers of the top stablecoins per chain (the largest by volume) are the raw input. Activity in non-tracked tokens does not contribute.
Keep only organic, real-payment transfers
A transfer is included only when it is the largest USD leg of its transaction that day, the sender is organic, and the transfer is not a mint or burn. An address is flagged inorganic (and dropped) when it moves ≥ $10M or makes ≥ 1,000 transfers in a rolling 31-day window, or carries a bot/MEV label.
Exclude non-end-user addresses
Addresses labeled as exchanges, DeFi protocols, infrastructure, bridges, treasuries, tokens/contracts, or sanctioned are excluded, along with dust (max balance < 10 and 30-day volume < 100) and obvious bot/test wallets (active nearly every day with an average transfer < $3).
No attribution labels (CEX / DeFi / infrastructure / entity names) are exposed in this table by design. Labels are used internally to assign
wallet_type, but are not output as columns.Classification dimensions
| Dimension | Column(s) | What it answers |
|---|---|---|
| Size | balance_tier | How large is the wallet? (whale → dust, by max stablecoin balance) |
| Type | wallet_type | Consumer, Business, or Institutional behavior |
| Lifecycle | behavioral_segment, combined_segment | New, active, dormant, or churned |
| Engagement | engagement_score, engagement_tier (+ recency/frequency/consistency) | How consistently active is the wallet? (0–100) |
| Risk | risk_score, risk_flag (+ volatility/anomaly) | How volatile or anomalous is its balance? (0–100) |
Sample queries
- Cohort sizing (one chain)
- High-value active users
- Risk screen
- Multi-chain footprint
Distribution of wallets by balance tier and lifecycle on Ethereum, latest snapshot per wallet.
On chains without native end-of-day stablecoin balances,
current_balance_usd and the balance-derived fields are reconstructed from net transfer flow and are best-effort rather than exact. Tiering and engagement signals remain directionally reliable.