Why Follow Other Traders Instead of Building Your Own Strategy?
Copy trading Hyperliquid top traders is the fastest shortcut to exposure against proven alpha. Instead of back-testing signals for months, you let the market surface traders who are already profitable on-chain — every entry, exit, and PnL is publicly visible on Hyperliquid — and mirror their moves with a lag-free API feed.
The challenge isn't copying. The challenge is which trader to copy. The leaderboard is dominated by high-leverage gamblers whose one lucky month looks like genius until the drawdown. Real alpha requires filtering by win rate, profit factor, trade count, and duration — and those filters need data most leaderboards don't expose.
This post walks through: how we score Hyperliquid traders, how to build a copy-trading bot that only mirrors the filtered set, and the risk controls that matter. Endpoints: /api/v1/hyperliquid/top-traders and /api/v1/hyperliquid/copy-signals. Pro Plus tier.
How We Score Hyperliquid Traders
Each tracked address gets a composite score (0-100) based on 30-day performance. The components:
- Win rate — fraction of closed trades profitable. Useful but deceptive alone (a scalper can win 90% and still be unprofitable).
- Profit factor — gross winners / gross losers. Anything > 1.5 is credible; >3.0 is exceptional for 30-day sample.
- Trade count — 50+ trades over 30 days is enough to trust; <10 is statistical noise.
- Average duration — filters out HFT/scalpers you can't realistically copy given tx latency.
- Trader type — classified as
hft,scalper,day_trader,swing_trader, orposition_trader.
The scoring hits /api/v1/hyperliquid/top-traders. You filter it down to a watchlist via /api/v1/hyperliquid/watchlist/auto, which auto-refreshes daily so your list stays current as traders fall off or emerge.
How Do You Build a Copy-Trading Bot?
Three building blocks. Each is a single API call, plus a router and an executor.
- Pick traders to follow. Call
/api/v1/hyperliquid/top-traders, filter by score > 85 andtrader_type != "hft", take the top 10. - Poll for their signals. Call
/api/v1/hyperliquid/copy-signalsevery 60 seconds. Each response row is a structured{type: 'ENTRY'|'EXIT'|'SIZE_CHANGE', coin, side, size, entry_price, leverage}. - Route the signal to your execution venue. Could be Hyperliquid itself, Binance perps, or an on-chain DEX. Scale size down by your risk budget (typically 1-5% of the followed trader's notional).
The copy-signals endpoint only returns signals for traders who have recent activity in the last N minutes (default 60). You never see stale noise, only fresh moves.
Copy Trading vs Auto-Following Signals: The Key Difference
“Copy trading” and “signal auto-following” sound identical but have meaningfully different risk profiles.
| Property | Copy Trading (on-chain mirror) | Signal Auto-Following |
|---|---|---|
| Source | Real wallet, real PnL, on-chain auditable | A person's Telegram/Discord call |
| Verification | Win rate / profit factor computed from actual trades | Self-reported, usually unverifiable |
| Skin in the game | 100% — they trade their own capital | Zero required — signal sellers face no downside |
| Latency | ~30-60s after on-chain execution | Minutes to hours of human lag |
| Best for | Automated mirroring with position-sizing | Discretionary use as ideas, not execution |
On-chain copy trading on Hyperliquid is strictly better for any systematic workflow.
Python Bot That Mirrors Filtered Top Traders
A minimal copy-trading loop. This version only logs trades — wire your execution venue into route_signal() when you're ready.
import time
import httpx
API = "https://cryptodataapi.com"
HEADERS = {"X-API-Key": "cdk_live_YOUR_PRO_PLUS_KEY"}
SEEN: set = set()
def route_signal(trader_addr, sig):
# Plug in your execution logic here
print(f"{sig['type']:12s} {sig['coin']:6s} {sig['side']} sz={sig['size']} "
f"@ {sig['entry_price']} lev={sig.get('leverage')} trader={trader_addr[:8]}")
while True:
r = httpx.get(f"{API}/api/v1/hyperliquid/copy-signals",
params={"min_score": 85, "minutes": 2},
headers=HEADERS, timeout=15)
for trader in r.json().get("traders", []):
for sig in trader["signals"]:
key = (trader["address"], sig["type"], sig["coin"], sig["size"], sig["entry_price"])
if key in SEEN:
continue
SEEN.add(key)
route_signal(trader["address"], sig)
time.sleep(60)The endpoint returns only traders with activity in the last minutes window, so the bot never wastes cycles on idle accounts.
Risks, Filters, and Controls
Copy trading isn't free money — it's inherited edge with inherited risk. Controls that matter:
- Trader-level risk budget — never risk more than 1-2% of your account per copied trader. Diversify across 5-10 traders to kill idiosyncratic blow-ups.
- Hard exclude HFT — set
exclude_types=["hft", "scalper"]on the watchlist endpoint. You cannot beat their latency. - Max-leverage cap — if a trader goes 20x on a position, your copy should still cap at 3-5x. You don't have their conviction or information.
- Drawdown circuit breaker — if your copy account loses more than 5% in a day, pause routing until you review. Auto-failure is the main operational risk.
- Auto-refresh the watchlist — set
auto_refresh: true. Traders cool off quickly; yesterday's top-scorer can be tomorrow's also-ran.
Pair with our Hyperliquid perps data guide for full market context. For the signal-discovery side of the same workflow, see whale tracking and smart money flows.



