PMWallets
中文

How PMWallets measures Polymarket wallets

Most wallet leaderboards are a screenshot of someone's API. This one is computed from the Polygon ledger on every run, and it is built to be checkable.

The problem with most wallet leaderboards

Anyone can rank Polymarket addresses by profit. The rankings disagree with each other, and the reason is rarely the maths — it is that three decisions are usually left unstated:

We answer all three on the page, and the answers are the product.

Forward-only

A published number never moves. Each run scores a fixed block window and writes it as a run; later runs add new windows rather than rewriting old ones. If a wallet looked good on Tuesday, the Tuesday figure is still there on Friday and still says the same thing. That is what makes a track record a track record instead of a moving average of hindsight.

It also means we cannot quietly improve the past when we improve the method. A methodology change starts a new run; it does not repaint the old ones.

Computed from the chain, not from an API

Every figure comes from Polygon logs we ingest ourselves: fills from the exchange contracts, plus the splits, merges, redemptions and resolutions that decide what a position was actually worth. Positions are valued at resolution where the market resolved inside the window, and at the endpoints where it did not.

Fees are the cash fee the contracts actually charged, not a published schedule. Where a market has not resolved, unrealised value is reported separately and never mixed into realised PnL — an unrealised number is a guess about a price, and we do not want a guess sitting inside a track record.

Entities, not addresses

A Polymarket trader typically signs from one address and holds through a proxy. Ranked as addresses, the same person appears twice, each with half the story, and the one holding the position looks like a wallet that only ever receives. We cluster addresses that demonstrably trade as one into an entity and score the entity.

Clustering is derived from on-chain relationships, and the tags we show describe what the ledger shows, not what we think you should do about it.

Real-time fills

Subscribe to an entity and its fills go out over WebSocket, typically within a second of the block being mined. The latency page publishes the measured distribution — p50 and p95, block to push — because a claim about speed that you cannot check is marketing.

What this is not

It is data, not advice. A wallet that made money over a window may have been lucky, may have been trading against information you do not have, and may be about to stop. We show confidence intervals on win rates for exactly that reason: a 70% win rate over 20 markets and over 500 markets are not the same claim, and a leaderboard that prints both as “70%” is hiding the difference.

Questions we get asked · How this compares to the alternatives