Recipe 15 of 65
How many other wallets hold the same position as this leaderboard trader? (crowding behind a copied wallet)
List the trader's open positions with /positions?wallet=, then pass one position's symbol, side, leverage and entry price to /positions/match; every other address in the matches holds the same trade.
GET /v1/hyperliquid/positions/match answers it in one call. It takes a position's symbol, side, leverage and entry
price and returns the open positions that match them: same symbol and side, leverage within 0.5 and an entry price
within a narrow band. The trader's own position is in the list; every other address is a wallet in the same trade. The
four inputs come from GET /v1/hyperliquid/positions with wallet set. The full parameter lists are on
Find a position and Positions.
Quick answer
Pass the four values of one of the trader's open positions.
# who else holds a 10x NEAR long entered at 4.45238, the position of the 30-day PnL leader
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions/match?symbol=NEAR&side=long&leverage=10&entry_price=4.45238263796759&limit=50"Example response
Captured from the live API on 2026-10-24 at 17:22 UTC, trimmed to 3 of 11 matches. The legacy coin copies of symbol are left out.
The first match is the trader itself (entry_dist_pct 0.0). The other 10 wallets hold the same 10x NEAR long within
0.05% of its entry (tolerance_used: tight), together $14,931 against the trader's $3.79M: this trade is not crowded.
entry_dist_pct is in percent and snapshot_ts is a Unix time in seconds.
{
"matches": [
{
"address": "0xfc667adba8d4837586078f4fdcdc29804337ca06",
"symbol": "NEAR",
"side": "long",
"snapshot_ts": 1792862220,
"size_token": 857137.9,
"size_usd": 3791120.9317,
"entry_price": 4.45238263796759,
"mark_price": 4.423,
"leverage": 10.0,
"liquidation_price": 0.0,
"unrealized_pnl": -25184.972604000264,
"entry_dist_pct": 0.0
},
{
"address": "0x738f68e5f6b47aa4abe328bf3103bb58c7b1684a",
"symbol": "NEAR",
"side": "long",
"snapshot_ts": 1792862220,
"size_token": 5.7,
"size_usd": 25.211100000000002,
"entry_price": 4.4523,
"mark_price": 4.423,
"leverage": 10.0,
"liquidation_price": 0.0,
"unrealized_pnl": -0.1670100000000006,
"entry_dist_pct": 0.0019
},
{
"address": "0x8c10d62907917967b17cdec0081ce42ae09eed8e",
"symbol": "NEAR",
"side": "long",
"snapshot_ts": 1792862220,
"size_token": 108.1,
"size_usd": 478.12629999999996,
"entry_price": 4.452764532839963,
"mark_price": 4.423,
"leverage": 10.0,
"liquidation_price": 4.1894058036,
"unrealized_pnl": -3.2175460000000418,
"entry_dist_pct": 0.0086
}
],
"match_count": 11,
"tolerance_used": "tight",
"query": {
"symbol": "NEAR",
"side": "long",
"leverage": 10.0,
"entry_price": 4.45238263796759,
"mark_price_hint": 4.45238263796759
}
}Variations
The trader's open positions first. The inputs for the match come from here. Use a row whose leverage is above 0.
# the trader's open positions with symbol, direction, leverage and entry price
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions?wallet=0xfc667adba8d4837586078f4fdcdc29804337ca06&limit=200"Count and size of the crowd. Leave the trader out and add up the rest.
# how many other wallets match, and their combined notional
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/positions/match?symbol=NEAR&side=long&leverage=10&entry_price=4.45238263796759&limit=50" \
| jq '[.matches[] | select(.address != "0xfc667adba8d4837586078f4fdcdc29804337ca06")] | {others: length, others_usd: (map(.size_usd) | add)}'Who the crowd is. Read one of the matching wallets' record before treating it as a follower.
# one matching wallet's 30-day record
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/hyperliquid/wallets/0x8c10d62907917967b17cdec0081ce42ae09eed8e?window=30d"Before you rely on it
At most 50 matches, from the first band that has any
The route returns at most 50 rows, so match_count 50 means "50 or more". It tries an entry band of ±0.05%, then
±0.5%, then ±1%, and stops at the first band with a match, so a crowd at a slightly worse entry is not counted once a
tight match exists; tolerance_used names the band. leverage must be a positive number, and some positions report a
leverage of 0, so those cannot be used as the input (a 400). A match is a position with the same profile, not proof of copying.
Ask your agent
Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words.
The hl_position_match tool answers, at 2 credits a call.
Who else on Hyperliquid holds a 10x NEAR long entered at 4.4524?