Track what top crypto futures traders — "smart money", whales, elite accounts — are doing across Binance, Hyperliquid, Bybit and OKX with TraderSpy's live tracking data. The elite leaderboard by smart score, top traders by ROI or PnL over 24h to 30d, open and closed positions filtered by coin, exchange or trader, one trader's profile and closed-trade history, and aggregate market stats. Use this whenever the user asks what whales or top traders are buying, shorting or holding, who the best traders are on an exchange, whether big accounts are long or short a coin, wants to research a trader's record before acting on it, or says "smart money", "whale watch", "what are the pros doing". Not for funding rate / open interest / long-short ratios of the whole market (technical-analysis) and not for AI signals (trading-signals).
77
97%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
TraderSpy follows thousands of top-ranked accounts on four exchanges and records their positions as they open, change and close. This skill turns that feed into answers about positioning and about individual traders. Positions are observations of what other people did with their own money — present them as evidence, never as instructions.
| Tool | Use it for | Key arguments |
|---|---|---|
get_elite_leaderboard | The cross-exchange top 10 by smart score, with the scoring rationale | none |
get_top_traders | Ranked traders per exchange and window | source all / binance / hyperliquid / bybit / okx, timeRange 24h / 3D / 7D / 30D, rankingType ROI / PNL, sortBy ROI / PNL / SCORE, limit ≤ 200 |
get_positions | The position feed | status open / closed / all, source, symbol, limit ≤ 50, offset |
get_trader_profile | One trader: metrics + latest positions | traderId AND source (see below), timeRange, rankingType |
get_trader_position_history | One trader's closed trades, paged | traderId, source, page, limit ≤ 50 |
get_market_stats | Aggregate counts and PnL across all tracked positions | source, period 4h / 8h / 24h / 7d |
get_exchanges | Which exchanges are currently tracked | none |
Always pass source with a trader id. get_trader_profile and get_trader_position_history
default to Binance; a Hyperliquid address (0x…) or an OKX id looked up on the wrong exchange
returns nothing. Take source from the row you got the id from.
Symbols differ per exchange. Hyperliquid rows use bare coins (BTC, ZEC) and prefix
tokenized stocks with xyz: (xyz:AVGO); Binance, Bybit and OKX rows use BTCUSDT. When the
user asks about "BTC positions", pass symbol: "BTC" — the filter matches both BTC and
BTCUSDT exactly — and read the symbol field before summing anything. Tokenized stocks
(xyz:AVGO) are not reachable through the filter; fetch without symbol and pick them out.
Position rows: side LONG / SHORT, size in coins, entryPrice, markPrice, leverage,
unrealizedPnl (open rows) or pnl + roi (closed rows), openTime / closeTime, isOpen,
lastEvent (increase, partial_close, or null when the last change was the open itself). Notional ≈ size × markPrice; use
notional, not row count, when you say "whales are net long".
Freshness. Binance and Bybit snapshots refresh every 5–15 minutes, Hyperliquid every 15 minutes
plus live fills, OKX every 10–60 minutes. On a free-tier key the feed is delayed 15 minutes — if
get_positions returns nothing newer than that, say the feed is delayed rather than "no activity".
Leaderboard rows (get_top_traders) carry the exchange's own ranking snapshot: roi, pnl,
assets (account size), winRate (null on Hyperliquid — the exchange does not publish it),
rankings[] with the same trader across every window, and smartScore when TraderSpy has scored
them. traderName is a shortened address when the account has no public name. A trader who is
#1 on 30-day ROI with assets of $5k is a different animal from #19 with $3.4M — quote both.
Smart score (get_elite_leaderboard, 0–100, recomputed daily): realized PnL 30% (all-time
blended with the last 30 days), effective win rate 22%, ROI edge 18%, consistency 14%, longevity
10%, trade depth 6%, plus a recency bonus (up to +9) and a staleness penalty (down to −12 after
about three weeks idle). scoreBreakdown shows each part, rationale[] is a ready-made
plain-language justification, metrics has the raw counts (closedTrades, profitFactor,
realizedPnl30d, openPositionCount, worstDayPnl). reliabilityMultiplier below 1 means a
short history dragged the score down — say so when a 6-day-old account ranks top-5.
Market stats aggregate every tracked position, thousands of them, so realizedPnl can be a
large negative number even when the leaders are winning; the tracked universe includes traders
who fell off the leaderboard. Use it for counts and the exchange split, not as "smart money is
losing".
"What are whales doing in SOL?" → get_positions with symbol, status: open, limit 50.
Sum notional by side, name the largest two or three accounts with entry and leverage, and note
how recent the newest entries are. If open rows are few, add status: closed for the last day to
show whether they have been exiting.
"Who are the best traders right now?" → get_elite_leaderboard first (it is cross-exchange
and score-based), then get_top_traders for a specific exchange or window if the user wants raw
ROI/PnL. Explain that 7-day ROI rankings reward one lucky week; the smart score is built to
penalise exactly that.
"Should I copy trader X?" / "Research this trader" → get_trader_profile + one or two pages of
get_trader_position_history. From the history compute what the user actually needs: win rate
from closed rows, typical hold time (closeTime − openTime), typical leverage, how concentrated
in one coin, worst single trade, and whether the recent month looks like the all-time record.
Present it as a profile. Copying is the user's decision — this connector cannot follow anyone.
"Are the pros long or short?" (whole market) → get_positions status: open on the majors
plus get_market_stats; for exchange-wide long/short ratios of ALL accounts use
get_derivatives from technical-analysis instead, which answers that directly.
Positions: one row per position —
| Trader | Exchange | Side | Size (notional) | Entry | Mark | Lev | uPnL | Opened |
Traders: name, exchange, score or rank, window, ROI, PnL, account size, win rate (or "n/a" on Hyperliquid), then the two-line rationale. Lead with the number that answers the question, keep addresses shortened as returned, and always say which window a ROI belongs to.
For exchange-specific quirks and refresh cadences read references/exchange-notes.md.
target1m/traderspy-mcp
3631399
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.