What this system is (and is not)

The watcher looks for trading patterns on Polymarket that co-occur in ways chance struggles to explain: positions opened shortly before a price break, sized well above a wallet's own habit, at long odds, concentrated in one subject, by wallets that share funding lineage on-chain. It joins two things most people look at separately: the full historical trade record of the platform, and the USDC funding history of the wallets doing the trading.

Every alert is a hypothesis, never an accusation. Nothing here asserts that anyone traded on non-public information — only that observed patterns are unusual against the population and against the actor's own history. Plenty of legitimate things look unusual: genuine expertise, fast public news, luck.

This page explains the approach. It deliberately does not publish the thresholds, weights or lookback windows the engine uses. A published threshold is one that can be traded just under, and the specifics are the part of this system that took the work.

When things run

Ingestion and detection run continuously on the server. Heavy statistics run once a night. Nothing waits for a person.

Practical latency: a price break on a watched market is detected within minutes of happening; a new position by a watched actor's wallet is evaluated within about a minute of the trade. Scores and tiers move once a day (the nightly run), not in real time.

The pipeline, start to finish

every tradeprice breaksscreen hitsbehaviour scorechain layeractors under watchalert: only when a watched actor repeats its own pattern
Each stage throws most of the previous one away. The wide end is the whole platform; the narrow end is the watchlist.
  1. Ingest. Every trade on the platform, plus price history and the market catalog.
  2. Detect breaks. A sudden, held price step against the market's own baseline. Thin, illiquid moves are flagged low-confidence and excluded downstream.
  3. Screen. For each confirmed break: who held the correct side before it happened? Deliberately wide — lucky gamblers flood through here by design.
  4. Score behaviour. Several independent signals over the wallet's whole record, judged against a population baseline built from real market odds, combined into one behaviour score.
  5. Chain layer. Only for wallets whose behaviour already cleared the bar: USDC funding lineage on Polygon — who funded them, who else the same funder funded, hand-off timing between wallets.
  6. Assemble actors. Wallets connected by qualifying funding evidence become one Actor and its trading history is scored as a whole. A burner rotation scores as one career, not five innocuous fragments.
  7. Tier and watch. Actors are banded by composite score. The upper tiers go under standing surveillance.
  8. Alert. A new position by a watched actor that matches the actor's established pattern on every axis at once lands in the Alerts panel.

Tiers

behaviour evidence →chain evidence →Tier 4T3: watchedchain alone: never looked upT1 / T2: context only
Every actor sits somewhere on this plane. A strong record on either axis alone tops out at Tier 3. Tier 4 needs both.
tiermeaningwatch
T1Noise or not enough evidence. Kept only as context.none
T2Interesting record — could be skill, could be luck. A high win-rate alone can NEVER promote past Tier 2; being good at forecasting is not suspicious.none
T3Strong behavioural pattern. Under passive watch: every new position is evaluated.passive
T4"Corroborated": behaviour AND on-chain funding evidence point at the same actor. Tier 4 is structurally impossible on one axis alone; without both, the actor is held at T3.live

The composite rewards agreement between the two kinds of evidence: behaviour and chain reinforce each other, and the top tier only exists when both are present.

The behaviour score

Built from multiple signals over the wallet's full history, each stored with its inputs so a case file can show its work. In broad strokes they ask:

  • How close before price breaks do this wallet's entries land, and how consistently?
  • Does it trade one narrow subject (one agency, one company, one conflict) rather than everything?
  • Does it win more than random bettors at the same odds would? This one is deliberately capped: on its own it can never push an actor past Tier 2.
  • Are the flagged positions out of proportion to the wallet's own normal?
  • Does it take specific long-shot outcomes rather than broad hedged books?

The signals are combined so that several independent moderate signals outweigh one strong one. The baseline is rebuilt nightly by resampling actual market odds: "would random bettors at these odds produce this record?"

The chain score

one actorfunderwalletshand-offexchangediscounted
Left: one private funder feeding a few wallets ties them into one Actor. Right: an exchange hot wallet feeds thousands, so that link is discounted to nothing.

Two families of on-chain evidence: flagged wallets that share a funding source in their USDC transfer history, and hand-offs where one wallet goes quiet and another funded from the same lineage picks up the same pattern.

Exchange hot wallets fund thousands of accounts, so shared funding through them means nothing. Funding links are discounted by how many wallets the funder feeds, and clustering only follows funders with a small number of downstream wallets. The link gets discounted, never the wallet.

Chain lookups run ONLY for wallets whose behaviour score already cleared the bar — a hard guard in code, not a convention. No behavioural signal, no chain surveillance.

Actors, membership, decay

An Actor is a group of wallets connected by qualifying chain evidence (often a group of one). Its behaviour score is computed over the members' combined history — the reason a burner rotation can out-score every individual wallet in it.

Membership confidence decays over time unless re-reinforced by fresh evidence, so stale links fade instead of accumulating. Actor ids are stable across recomputes; merged actors forward to their survivor rather than disappearing.

The alert rule — why alerts fire, and why they mostly don't

Checked every 60 seconds against every new buy from a watched actor's member wallets. Every condition must hold at once:

under watchown subjectown sizelong oddsalert
Any one of these is ordinary. An alert is the overlap of all four on a single new position, which is why it is mostly quiet.
conditionwhy
actor already under watchA random wallet doing something odd once is not a signal.
trade is in the actor's concentrated subjectPattern continuation, not a stray bet.
size is large relative to the actor's OWN historyJudged against the actor, not a global number. $2k is nothing for a whale and everything for a $50 bettor.
long odds at entryBuying an outcome the market considers unlikely. Confidence at long odds is the interesting shape.

Zero alerts for days or weeks is the EXPECTED state. The rule is strict on purpose: it fires on conjunctions, not on any single unusual thing. If it fired daily it would be measuring noise.

Screen flags (the tags on hits)

flagmeans
earlyposition opened shortly before the break
low_entry_pricea long shot at entry
unusual_sizefar above the wallet's own prior positions, or an outsized first-ever position
fresh_walletwallet's first-ever Polymarket activity was very shortly before this entry
young_walleta new wallet, but not brand new
large_absolutelarge in raw dollars (informational only — absolute dollars are weak evidence)

A screen hit is NOT an accusation either — it means "this wallet held the right side before the move." Most hits are luck. The scoring stage exists to prove that.

What counts as a price break

breakentries beforespike, reverts: ignored
A break is a step that HOLDS (left). A spike that reverts (inset) is not one. The dots are pre-break entries on the side that won: those are the screen hits.

A step against the market's own baseline that is large, fast, and HELD — a spike that reverts is not a break. Markets below a liquidity floor, or with almost no new takers after the move, are flagged low-confidence and excluded from screening. Missing a marginal break is acceptable; a false one poisons everything downstream, so the detector is tuned conservative.