
Smart Money Moves First: Reading Cohort Rotation on Hyperliquid
By CMM Team - 26-Jul-2026
Smart Money Moves First: Reading Cohort Rotation on Hyperliquid
Every major move on Hyperliquid starts the same way. The wallets with the best track records quietly shift their positioning, often hours before the chart catches up. Retail sees the candle and reacts. Smart money already repositioned.
This is cohort rotation: the measurable lag between when top-performing wallets change direction and when everyone else follows. It is visible in the data if you know where to look, and it is one of the clearest signals our cohort analytics surface. This guide shows you how to read it, query it, and build around it using HyperTracker's API.
What Cohort Rotation Actually Looks Like
On Hyperliquid, every wallet is classified into one of 16 behavioral cohorts based on two dimensions: account size (perp equity) and all-time PnL performance. The PnL cohorts are the ones that matter for rotation signals, because they separate the historically profitable wallets from the historically losing ones.
The eight PnL cohorts, ranked from best to worst track record:
| Cohort | All-Time PnL Range | Segment ID | | --- | --- | --- | | Money Printer | +$1M and above | 8 | | Smart Money | +$100K to +$1M | 9 | | Consistent Grinder | +$10K to +$100K | 10 | | Humble Earner | $0 to +$10K | 11 | | Exit Liquidity | -$10K to $0 | 12 | | Semi-Rekt | -$100K to -$10K | 13 | | Full Rekt | -$1M to -$100K | 14 | | Giga-Rekt | Below -$1M | 15 |
Rotation happens when the top cohorts (Money Printer, Smart Money, Consistent Grinder) shift their net positioning on an asset, and that shift propagates downward through mid-tier and bottom-tier cohorts over the following hours. The profitable wallets move first. The unprofitable ones follow later, usually after the price has already started moving.
Why Rotation Signals Work
Cohort rotation is a behavioral signal. It works because the wallets classified as Money Printer and Smart Money have earned those labels through consistent profitability across hundreds or thousands of trades. Their aggregate positioning changes carry information that raw open interest numbers cannot provide.
When you look at total OI on an asset, you see a single number. It tells you nothing about who is adding exposure or why. Cohort-level data breaks that aggregate into its components, so you can distinguish between "smart money is going long and retail is going short" and "everyone is going long together." Those two scenarios look identical in aggregate OI but carry very different implications.
The rotation signal specifically captures the timing gap between cohort groups. When Money Printer wallets start accumulating longs on ETH while Exit Liquidity and Semi-Rekt wallets are still adding shorts, the divergence itself is the signal. It tells you that the wallets with the best historical edge are betting against the wallets with the worst one.
Reading the Bias Divergence
The fastest way to spot a rotation is to compare cohort bias across performance tiers. Our /cohort-bias endpoint returns long and short percentages for each cohort on a given asset, so you can see which direction each group is leaning.
A rotation signal fires when the top PnL cohorts and the bottom PnL cohorts are on opposite sides of the same trade. Consider this hypothetical scenario on BTC:
Money Printer and Smart Money both lean long, while Exit Liquidity, Semi-Rekt, and Full Rekt lean short. The mid-tier cohorts (Consistent Grinder, Humble Earner) sit closer to neutral. That gradient from strong long at the top to strong short at the bottom is the hallmark of a rotation in progress.
Bias Window Limitation
One important constraint: our cohort bias data covers a rolling 12-hour window. You will not find bias data from last week or last month. This makes the signal inherently short-term. If you want to analyze rotation patterns over longer periods, combine bias snapshots with the /cohort-metrics endpoint, which has roughly four weeks of per-coin history.
Querying Rotation Signals Through the API
Detecting a rotation programmatically requires two API calls: one for the leader cohorts and one for the laggard cohorts. You then compare the results to check for directional disagreement.
Here is the workflow, step by step:
Step 1: Pull Bias for Leader Cohorts
Query the /cohort-bias endpoint for Money Printer (segment_id=8) and Smart Money (segment_id=9) on your target asset:
GET /api/external/cohort-bias?coin=BTC&segment_id=8
GET /api/external/cohort-bias?coin=BTC&segment_id=9
The response includes the current long percentage, short percentage, and net bias direction for that cohort on that asset.
Step 2: Pull Bias for Laggard Cohorts
Run the same queries for Exit Liquidity (segment_id=12) and Semi-Rekt (segment_id=13):
GET /api/external/cohort-bias?coin=BTC&segment_id=12
GET /api/external/cohort-bias?coin=BTC&segment_id=13
Step 3: Compare and Flag
If the leader cohorts both lean long and the laggard cohorts both lean short (or vice versa), you have a rotation signal. The logic is straightforward:
leaders_long = money_printer.net_bias == "long" and smart_money.net_bias == "long"
laggards_short = exit_liquidity.net_bias == "short" and semi_rekt.net_bias == "short"
if leaders_long and laggards_short:
print("Rotation signal: leaders accumulating, laggards fading")
Adding OI Context to Strengthen the Signal
Bias direction alone tells you who is long and who is short, but it does not tell you how aggressively each cohort is positioned. The /cohort-metrics endpoint fills that gap by providing open interest, average leverage, and position count for each cohort on each asset.
A strong rotation signal has two characteristics: directional divergence (from bias) and increasing conviction (from metrics). When Money Printer wallets are going long and their OI on that asset is climbing, they are putting real capital behind the move. If their bias says long but their OI is flat or declining, the signal is weaker because it could reflect existing positions rather than new ones.
GET /api/external/cohort-metrics?coin=BTC&segment_id=8&start=2026-07-29T00:00:00.000Z
Track the OI trend for both the leader and laggard cohorts. The ideal rotation signal shows leaders with rising OI and laggards with rising OI on opposite sides of the trade. Both groups are adding exposure, they just disagree on the direction. That is maximum divergence.
Size Cohorts Add a Second Layer
PnL cohorts tell you about track record. Size cohorts tell you about firepower. Combining both creates a more complete rotation picture.
The eight size cohorts, ranked by perp equity:
| Cohort | Perp Equity Range | Segment ID | | --- | --- | --- | | Shrimp | $0 to $250 | 16 | | Fish | $250 to $10K | 1 | | Dolphin | $10K to $50K | 2 | | Apex Predator | $50K to $100K | 3 | | Small Whale | $100K to $500K | 4 | | Whale | $500K to $1M | 5 | | Tidal Whale | $1M to $5M | 6 | | Leviathan | $5M and above | 7 |
When Leviathan and Tidal Whale wallets tilt in the same direction as Money Printer and Smart Money wallets, the signal carries more weight. Large, profitable wallets adding exposure in the same direction is the strongest form of cohort alignment you can observe. When size and PnL cohorts disagree (large wallets going one way, profitable wallets going another), the picture is muddier and warrants caution.
Building a Rotation Monitor
A practical rotation monitor polls the bias and metrics endpoints at regular intervals and logs divergence scores over time. Because our cohort data refreshes approximately every 15 to 20 minutes, polling more frequently than that will not yield new data.
A basic implementation looks like this:
import requests, time
API_BASE = "https://ht-api.coinmarketman.com/api/external"
HEADERS = {"Authorization": "Bearer YOUR_JWT_TOKEN"}
LEADERS = [8, 9] # Money Printer, Smart Money
LAGGARDS = [12, 13] # Exit Liquidity, Semi-Rekt
def get_bias(coin, segment_id):
r = requests.get(f"{API_BASE}/cohort-bias",
params={"coin": coin, "segment_id": segment_id},
headers=HEADERS)
return r.json()
def check_rotation(coin):
leader_biases = [get_bias(coin, sid) for sid in LEADERS]
laggard_biases = [get_bias(coin, sid) for sid in LAGGARDS]
leaders_long = all(b.get("net_bias") == "long" for b in leader_biases)
laggards_short = all(b.get("net_bias") == "short" for b in laggard_biases)
if leaders_long and laggards_short:
return "BULLISH_ROTATION"
elif all(b.get("net_bias") == "short" for b in leader_biases) \
and all(b.get("net_bias") == "long" for b in laggard_biases):
return "BEARISH_ROTATION"
return "NO_SIGNAL"
# Poll every 20 minutes
while True:
signal = check_rotation("BTC")
if signal != "NO_SIGNAL":
print(f"[{time.strftime('%H:%M')}] {signal} detected on BTC")
time.sleep(1200)
This is a starting point. Production implementations can layer in OI magnitude checks, multi-asset scanning, and alert delivery through webhooks or Telegram bots.
What Rotation Cannot Tell You
Cohort rotation is a positioning signal. It does not predict direction with certainty, and it does not provide timing to the minute. Smart money gets it wrong sometimes. The Money Printer cohort earned its label through aggregate performance, which means its members win more than they lose on average, but any individual move can still be a loser.
The signal also has structural limitations. Our bias data covers a 12-hour rolling window, so you are seeing a snapshot of current conviction. If smart money repositioned three hours ago and is now flat, the bias endpoint may no longer reflect the initial move. Pairing bias with /cohort-metrics OI trends helps capture the full arc of a rotation, but the window is still measured in hours rather than days.
Rotation is one input in a broader analysis, not a standalone trade signal. It pairs well with liquidation cluster data (from our heatmap), funding rate trends, and traditional technical levels. The cohort data tells you who is doing what. You still need to decide whether their positioning aligns with the broader market structure.
Query Cohort Rotation Data
HyperTracker's API gives you access to all 16 behavioral cohorts on Hyperliquid, including per-asset bias, open interest breakdowns, and position metrics. The free tier includes 100 requests per day to start exploring rotation patterns.
Smart money moves first because the best traders are decisive. They size positions before the crowd confirms the thesis. The cohort data does not tell you what will happen next, but it does tell you where conviction lives right now, and whose conviction has historically been worth following.