Correlated wallets
The Polymarket wallets that trade the same markets as one trader — up to eight, ranked by shared markets and then by the volume they put through them. It used to be a field of the trader profile.
GET https://data.vike.io/v1/polymarket/wallets/{address}/correlatedThe other wallets that trade the same markets as one Polymarket trader: up to eight, ranked by how many markets they share with it and then by how much volume they put through them. It is the list to read when you want the next addresses to profile. The answer is a bare array of rows, with no wrapper.
Until 2026-10-28 these rows were the correlated field of /wallets/{address}.
That scan is the heaviest read behind a profile, so it is a route of its own: a client that does not want it no
longer waits for it. The polymarket_wallet MCP tool still returns the same rows inline.
# the wallets that trade the most of the same markets as one trader: the next addresses to profile
curl -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/wallets/0xd99f3bec8e060ada0aef0c4057695dd5bc22fcdc/correlated"
# just the addresses, ready to loop over with /wallets/{address}
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/wallets/0xd99f3bec8e060ada0aef0c4057695dd5bc22fcdc/correlated" | jq -r '.[].proxy_wallet'
# shared markets beside the volume: many shared markets for little volume is a small account, not a close one
curl -s -H "X-API-Key: $VIKE_API_KEY" \
"https://data.vike.io/v1/polymarket/wallets/0xd99f3bec8e060ada0aef0c4057695dd5bc22fcdc/correlated" | jq '.[] | {proxy_wallet, shared_markets, overlap_volume_usd}'addresspathrequired0x-prefixed proxy-wallet address (40 hex digits). Anything else is a 400.The route takes no query parameter. The real answer for that wallet has eight rows; this example keeps the first three.
[
{
"proxy_wallet": "0xa66790e2b0075e73c3781ddaf1d0b875a3aaceb3",
"pseudonym": "Arctic-Kickoff",
"display_name": "Elias.Thornwell",
"shared_markets": 45,
"overlap_volume_usd": 221257.089931,
"overlap_trades": 739,
"last_seen": "2026-06-27T22:01:31"
},
{
"proxy_wallet": "0xc8ab97a9089a9ff7e6ef0688e6e591a066946418",
"pseudonym": "Hideous-Racer",
"display_name": "ArmageddonRewardsBilly",
"shared_markets": 44,
"overlap_volume_usd": 19279229.795885008,
"overlap_trades": 21757,
"last_seen": "2026-06-04T02:32:51"
},
{
"proxy_wallet": "0x54498e4c40b17261479aeaeeddf9cc37bd46992b",
"pseudonym": "",
"display_name": "",
"shared_markets": 43,
"overlap_volume_usd": 50102.53676700007,
"overlap_trades": 10522,
"last_seen": "2026-06-17T16:34:41"
}
]The fields
| Field | Meaning |
|---|---|
proxy_wallet | The other wallet's address. Pass it to /wallets/{address} to profile it. |
pseudonym, display_name | The pseudonym Polymarket generated for it and the name it traded under, as of its latest trade in the shared markets. "" when it has none. |
shared_markets | How many of the markets you asked about it also traded. |
overlap_volume_usd | The USD volume it traded in those shared markets. |
overlap_trades | The number of its trades in them. |
last_seen | The time of its latest trade in them, in UTC. |
Reading it
- A wallet is listed only past two floors. It must share at least 3 markets with the address and have traded at least $500 in them. Both floors are fixed; there is no parameter to lower them.
- Only the address's 1,000 largest markets are compared. Markets are ranked by the address's own volume, so a market-making bot with tens of thousands of markets is matched on its biggest ones, not all of them. A wallet with 1,000 markets or fewer is compared on every one.
- The order is the ranking. Rows come most shared markets first, then the largest overlap volume. There is no paging and no way to ask for more than eight rows.
[]is an answer, not an error. It means no wallet passes the floors, and it is also what an address with no recorded trades gets: unlike the profile, this route does not tell the two apart.- A repeat call within a few minutes returns the same rows. The answer is cached briefly, so polling one address adds nothing.
- Overlap is not copying. Two wallets that traded the same markets may have traded opposite sides, or hours apart. The rows say where two wallets met, not who followed whom.
Errors
| Status | When |
|---|---|
400 | The address is not 0x plus 40 hex digits, or any query parameter is sent: the route accepts none. The body is {"error": "…"}. |
401 / 429 | No or bad credential, or the hourly budget is spent — see Authentication and Rate limits. |
503 | The store behind it is unavailable. The body carries no driver text. |
A successful call costs one credit, like every /v1 route.
Trader profile
One Polymarket trader's profile — lifetime volume, realized P&L and hit rate over a window, markets, recent trades, open positions and an equity curve.
Smart-money signals
Polymarket smart-money signals — markets with the largest net inflow from the profitable-wallet cohort, or markets that cohort bought well below the mid.