← All posts

How We Detect Polymarket Whale Syndicates — Louvain Clustering on Whale Co-Trading Graphs

2026-04-21 · 6 min read

One of the most valuable — and least visible — signals in prediction markets is coordination. A single operator running ten wallets looks, from the outside, like ten independent traders. Their edge compounds while the market treats them as noise.

Today we shipped a dedicated engine for surfacing that coordination. It watches the last 7 days of whale trades, builds a co-trading graph, and runs Louvain community detection over it to identify groups of wallets that behave like one actor. The live output is on polyloly.com/clusters.

Here is exactly how it works, why we chose this approach, and what the first batch of results looks like.

The problem with simple grouping

The naive approach is to group wallets by "traded the same market." But that produces useless results: any popular Polymarket game (think NBA finals or a presidential race) has hundreds of whales on it, and a pure union-find algorithm will collapse them all into one giant cluster of "people who bet on sports." No signal.

What you actually want is the cross-market signal. Two wallets that independently both trade one popular market is a coincidence. Two wallets that trade three or more of the same markets, each time within a 5-minute window, each time on the same outcome, with matching stake size — that's not a coincidence. That's almost certainly one operator, one strategy, multiple accounts.

How the graph is built

Every 15 minutes our cron wakes up and does the following:

  1. Scan the last 7 days of whale trades (≥$1,000 each).
  2. For every pair of distinct wallets, count how many times they traded:
  3. The same market slug
  4. On the same outcome (YES/NO or the same team in a spread)
  5. Within a 5-minute window of each other
  6. Keep only pairs with ≥3 distinct markets shared AND ≥$10,000 combined value.

That filter is the important one. The three-market threshold is specifically designed to kill the giant-component problem. Randomly bumping into the same whale on one popular market happens all the time. Bumping into the same whale on three different markets, always within the same five minutes, is a near-impossibility unless one operator is driving both wallets.

The resulting graph on a typical week has a few hundred edges and a couple hundred nodes — tiny by graph-algorithm standards, which means we can re-solve the whole thing in under 10 ms.

Louvain, not union-find

Union-find (also called "connected components") is the classic clustering tool, and we shipped it first as an MVP. It answers the question: "which wallets are connected by at least one edge?" The problem is that with weighted, dense graphs, union-find tends to merge sub-communities that are only weakly linked — a single bridge edge between two tight groups collapses them into one cluster.

Louvain community detection is a modularity-optimization algorithm that explicitly splits on those weak bridges. It asks a different question: "how can I partition these nodes so that the weighted edge density within each cluster is much higher than between clusters?" On the Polymarket whale graph it routinely finds 9–12 clean communities where union-find would have produced 3 or 4 noisy blobs.

We use Louvain in weighted mode, with each edge weighted by the combined dollar value of the shared trades. Strong-money pairs pull wallets into tighter communities than weak-money pairs, which is exactly the right behavior for surfacing syndicates rather than casual co-movers.

Modularity scores on our live data hover around 0.48, well above the 0.3 threshold that is usually considered "meaningful community structure" in network-science literature.

What a live cluster looks like

At time of writing, the top cluster on the live feed has: - 36 wallets identified as members - $7.37 million in combined 7-day volume - 729 distinct markets touched across the group

That is a meaningful operation. Whether it is one hedge fund, one high-net-worth individual running accounts across jurisdictions, or a formalized syndicate — the behavior pattern is consistent: same markets, same side, nearly simultaneous entries, large tickets.

We label clusters by color and by human metrics (member count, combined value, markets touched) rather than by ID, because the ID is just an internal sha256 hash and means nothing to a reader. The color is deterministic — the same member set gets the same hue across every page load, so a cluster you learn to recognize today will still be recognizable tomorrow as long as its membership is stable.

Temporal evolution

Because we append a snapshot to cluster_history on every cron tick, each cluster has a size-over-time trajectory. On the dashboard, this shows up as a 48-hour sparkline inside each cluster card: you can see at a glance whether a group is growing (new accounts joining the coordinated set), shrinking (accounts rotating out or going dormant), or stable.

Growing is the most interesting signal. When a cluster adds members, one of two things happened: either the operator spun up new wallets this week, or some wallets that previously sat in adjacent clusters started trading the same way. Both signals are predictive of elevated activity on the markets that cluster touches.

Who this is for

This isn't a trading signal in the "copy the whales" sense. Insider detection and P&L analysis are separate features — see our insider detection explainer for that. Whale-syndicate detection is a market-microstructure tool:

  • If you are analyzing a thin market, knowing whether 40% of the volume came from 10 coordinated wallets vs 40 independent ones changes how you read the price.
  • If you are building liquidity models on Polymarket, sybil-like coordination inflates apparent participation. Netting it out by cluster gives you a truer actor count.
  • If you are writing about prediction markets, flagging coordinated action is the difference between "Polymarket predicts X" and "50 people with questionable independence predict X."

How to use it

On the live dashboard, the "🧬 Coordinated Wallets" section shows the top active clusters in 24h, each with its own size-evolution sparkline. Click a cluster card to jump into the full graph view, where the selected cluster's members and intra-cluster edges are highlighted and the rest dimmed. From there you can inspect the individual wallets, follow each one to its Polymarket profile, and see how much capital each member contributed.

New snapshots land every 15 minutes. Sparklines fill in meaningfully after a few runs — if you just opened the page and the sparklines look flat, check back in an hour.

What comes next

A few things on the roadmap:

  • Alerting — push a notification when a dormant cluster re-activates or when an existing cluster doubles in size within 24 hours. These are the high-signal events.
  • Cluster-to-market heatmap — which markets does each cluster disproportionately touch? That is where coordinated flow concentrates and where the signal is strongest.
  • Cross-period cluster identity — today, clusters are re-derived from scratch each run. We want stable identity across weeks even as membership rotates, so you can track "cluster X" over a month.

Prediction markets are more informative than most financial markets for one reason: they aggregate beliefs. That aggregation only works if the beliefs being aggregated are independent. Syndicate detection is the tool for measuring how independent the aggregate actually is — and the answer, once you look, is often less than you would hope.

Try it


About the author

Poly Loly — Prediction Markets Expert

Lead analyst behind Polyloly, a real-time analytics platform tracking whale positions across $1B+ in monthly Polymarket volume. Focus areas: on-chain data aggregation, insider-detection heuristics (80%+ win-rate flags on resolved markets), and market microstructure across political, sports, crypto, and esports prediction markets. Published daily trading-terminal intel, trader leaderboards, and automated alerts via @PolylolyHi.

🌐 polyloly.com · 𝕏 @PolylolyHi · ✉ hi@polyloly.com


This article is for informational purposes only and does not constitute investment advice. Prediction markets carry a risk of capital loss.

This article contains affiliate links. If you sign up through our links, Polyloly.com may earn a commission, which helps us produce free analytics. It does not influence our analysis.