// what counts as a whale#
A whale is a single wallet whose recent trade activity clears Sage's per-tier floor. Tier 1 is the largest (typically >$50K single trade), Tier 2 is mid (>$25K), Tier 3 is the broad band ($10K+).
Floors are configurable in /ops/config (SAGE_WHALE_FLOOR_USD + SAGE_WHALE_T1_USD + SAGE_WHALE_T2_USD env vars). They're set conservatively so the tape is signal-dense, not noise-dense.
// how the tape is built#
Sage's whaleMonitor watches on-chain Polymarket trades + the Kalshi public-tape feed in real time. Trades over the floor produce a WhaleEvent record with the wallet, market, side, size, and price.
On-chain wallets get an ENS lookup attempt — if the address has a primary ENS name, it's surfaced as the label. Otherwise the wallet shows as the truncated hex (0x1234…abcd).
Each event is one trade. Multiple trades from the same wallet on the same market within 30 minutes get grouped into a 'cluster' (when ≥ N independent wallets all converge — the whaleClusterDetector is the heuristic).
// how to use it#
The /whales feed is fnf-gated. Filter by tier with the chips at the top — t1 only is the loudest band; ≥ t2 is the standard view.
Click any wallet pill to see the dossier: lifetime volume, realized PnL, total trades, first-seen, and the wallet's last 50 events. The dossier helps you decide if you want to follow this wallet's flow.
The wallets tab at /account/subscriptions is the (eventual) follow-this-wallet surface. Per-wallet DM alerts let you know the moment a tracked whale trades.
// what whales aren't#
Whale trades aren't automatic signals. Some whales are smart money; some are casino-shaped capital. Look at the wallet's lifetime PnL before following — a whale who's down 60% lifetime is moving the tape, not predicting it.
Clusters aren't conspiracies. Multiple independent traders arriving at the same view within 30 minutes is more often news-driven coincidence than coordination. Treat the cluster signal as a 'check whether you missed the news' nudge.
Cluster alerts are not yet wired to fire DMs — for now they only appear in the feed.
