Behavioral analytics

Behavioral analytics describe how a wallet handles one specific token: whether it accumulates, sells into strength, dumps in one go, ladders out, or moves funds off-market. Everything on this page is computed from the wallet's own traced transactions for that token, repriced at the time of each trade.

The trader behavior score

The score runs from 0 to 100, with higher meaning more measured, holder-like behaviour. It is built from three dimensions so that transfers are never mistaken for sales:

DimensionMetrics
SellingLargest single sell as a share of peak holdings, evenness of sell sizes, sells relative to total volume, sell cadence, buy and sell symmetry, exit velocity, flip ratio, and composure (selling above or below average entry)
Transferring outShare of peak holdings moved out by transfer rather than sold
HoldingRetention (share of peak still held), patience (average hold time including open positions), and steadiness of accumulation

The holding metrics are always available, so a wallet that has never sold still gets a score. The other metrics are blended with fixed weights, renormalised over whichever metrics could be measured.

The blend is then passed through a dump gate: it is multiplied by one minus the largest single sell's share of peak. A wallet that sold everything in one transaction has its score capped near zero no matter how tidy the rest of its history looks, because a single full dump is the behaviour the score exists to surface.

A confidence value accompanies the score, scaled by how many metrics could be measured and reduced when history was incomplete or prices were approximate.

Behavioral labels

Each wallet and token pair gets exactly one label from a fixed vocabulary, chosen by a priority chain where the first matching description wins:

  • Holding archetypes: diamond hand, investor, accumulator.
  • Fast traders: flipper, scalper, swing trader.
  • Off-market movers: exchange depositor, consolidator, disperser, distinguished by where the transfers go and how many destinations there are.
  • Selling styles: panic seller, laddered seller.
  • Entry timing: sniper, top buyer, judged against the wallet's own traced price range.
  • Score fallbacks: dumper, aggressive, balanced, distributor, when nothing more specific applies.

A wallet with too little history is labelled insufficient rather than forced into a category.

Portfolio style

For audits, each wallet's holdings are split into categories: stablecoins, majors, liquid staking tokens, memecoins, DeFi tokens and other. The category holding more than half of the wallet's value becomes its primary style, otherwise the wallet is mixed. The behavioral label feeds a hold-versus-flip read: holder for the holding archetypes, flipper for the fast traders, mixed for everything else.

Profit and loss

Realised and unrealised profit are computed with a moving-average cost basis: every buy updates the average entry price, every sell realises the difference against that average. The open position is anchored to the wallet's live balance rather than to the replayed history, and if the live balance is lower than the history explains, the missing units are written off as a realised loss with zero proceeds. This disposal-gap rule prevents phantom profits from tokens that left the wallet by a route the trace did not see.

Trades are priced from the executed quote leg where possible: a swap against a stablecoin is priced at one dollar per unit, a swap against the native token uses the native token's historical price at that moment.

Bot cadence

A wallet earns the bot cadence factor when it fires a run of consecutive transactions with gaps shorter than a person could act. Multiple legs of a single transaction are collapsed first, so a token-to-token swap is never mistaken for two rapid trades. The gap and run length are configurable by administrators and not published.

The Sleuth AI narrative

Reports include a short narrative written by a language model. It is fed only the computed metrics and figures described above, never raw transactions, so it cannot miscount. It is regenerated only on request and always carries a note to verify against the numbers it summarises.