How to use Strategy Scanner
What it is for
Prediction market traders are public. Every fill, split, merge and redemption is a transaction on Polygon, and Polymarket indexes all of it. What is missing is a way to read a wallet: the raw feed is thousands of rows, and the obvious summary — adding up someone's open positions — gives an answer that is not just imprecise but frequently backwards.
People generally arrive with one of these questions:
- Is this trader actually good? Leaderboards rank by volume or by a PnL figure with no context. You want the shape behind it.
- What are they holding right now? Position by position, with entry price against the current mark.
- What have they been doing lately? The last few thousand events, each one linked to its transaction.
- Am I looking at trading profit or farming? Liquidity rewards and rebates are real income but they are not trading skill, so they are kept separate.
Scanning a wallet, step by step
Get the wallet address
A Polymarket profile URL ends in the address — copy the 0x… part. You can also paste a username and pick the right profile from the dropdown.
Paste it into the search box
Press Enter. The header paints in about a second with identity, balances and portfolio value.
Read the header first
Total value, cash balance, position value and Total PnL cover the whole wallet. Anything labelled Recent covers only the recent activity window.
Open the tabs
Open events, Settled events, Trades and Rewards & rebates. Switch between By event and By market depending on whether you want the decision or the individual bracket.
Narrow to what you care about
Use the market filter to scope every table on the page — and every export — to a theme, like everything the wallet traded on one election.
Export it
Any table downloads as CSV or JSON, scoped to whatever filter you have applied.
Finding a wallet address
Three reliable routes:
- From a profile URL. A Polymarket profile lives at
polymarket.com/profile/0x…— that trailing string is the address. - From the leaderboard. Click any trader, then take the address from the URL.
- By username. Type the name into the search box here and pick the profile from the dropdown.
An address is 42 characters: 0x followed by 40 hex digits. Pasting a transaction hash instead (66 characters) offers you a link to Polygonscan, because that is a transaction, not a wallet.
Reading the header
The top of a wallet page is split into two rows, and the split is the most important thing to understand about the whole product.
The money row — whole wallet, authoritative
Total value, cash balance, position value and Total PnL come from endpoints that cover the wallet's entire life. Cash balance is read straight off the Polygon token contracts with an eth_call. Total PnL comes from Polymarket's own series, which includes markets that have already been redeemed and deleted. These are the numbers to trust without qualification.
The performance row — recent window only
Win rate, average position, biggest win and biggest loss are derived by replaying recent activity here, on this server. They are all prefixed Recent, and the line underneath states the window: how many events it covers and how far back that reaches. On a busy wallet that might be a few weeks; on a quiet one, years.
By event or by market — and why it matters
This toggle looks cosmetic and is not. Polymarket splits one question into separate tradable bracket markets. “Who will be nominated as Fed Chair?” is not one market — it is one market per candidate, each resolving Yes or No independently.
A flat list therefore shows twenty-three rows that all look like near-duplicates, when the trader made one decision about one question. In testing, a wallet with around 500 scattered positions collapsed to 184 events — and one of those events carried a swing of several million dollars spread across its brackets, which no single row would have shown you.
- By event — what the trader decided. Start here. Expand any row to see the brackets underneath.
- By market — what they executed. Use it when you want an exact fill, entry price, or a specific bracket.
The tabs
Open events / Open positions
Everything still held, with entry price, current mark, size and live PnL. This is complete — it comes from the positions endpoint, which is authoritative for anything the wallet still owns.
Settled events / Settled markets
Markets that resolved inside the recent window, rebuilt from cash flows rather than from the positions endpoint. That rebuild exists for a specific reason, covered in the PnL section below.
Trades
Recent fills, splits, merges, redemptions and conversions. Filter by kind or by side, search by market name, and open any row on Polygonscan to verify it independently.
Rewards & rebates
Money that arrived without a trade behind it, separated into four kinds: liquidity rewards for quoting a market, maker rebates on resting orders that got filled, taker rebates on orders that crossed the book, and yield on idle collateral. Worth checking before you judge a record: a wallet can look profitable while doing very little directional trading.
Scoping to specific markets
The market filter narrows the whole page at once. Type a theme — an election, a team, a token — hit Select all matching, and every table below is restricted to those markets. Exports follow the same scope.
Scoped requests are also cheaper upstream, because they ask Polymarket about the chosen markets directly instead of walking the wallet's whole feed. On an active wallet that is the difference between seconds and minutes.
Why PnL here differs from adding up positions
Polymarket's positions endpoint returns what a wallet still holds or can still redeem. The moment a trader redeems a winner, that row is deleted. Losers, meanwhile, sit there forever as resolved rows worth nothing.
So a “closed positions” list built that way is survivorship bias in reverse: it keeps the losses and discards the wins. Measured on a top leaderboard wallet, summing that endpoint gave −$663,368 for a wallet that was genuinely up about $3.6 million. Not merely imprecise — inverted.
Strategy Scanner takes each figure from whichever source is actually authoritative:
- Total PnL — Polymarket's own lifetime series, which counts redeemed markets.
- Unrealised PnL — summed from open positions, always complete.
- Per-market results — a cash-flow replay of real USDC movements: cost is buys plus split collateral, proceeds are sells plus redemptions plus merge collateral, and the result is proceeds plus the current mark minus cost.
A market only counts toward the aggregates if money actually went in, no outcome ends up short on shares — you cannot sell what you never bought, so a negative balance proves the purchase falls outside the window — and no neg-risk conversion touched it, because conversions move value between markets without a price. Markets that fail these checks are still listed, just excluded from the totals, and the page tells you how many were counted out of how many were touched.
What it does not do
Stated plainly, because a tool about accuracy should be accurate about itself.
- It is not a lifetime history. Derived statistics cover the recent window, not the wallet's whole past. A deeper history engine is a later phase.
- Deposits and withdrawals are not shown yet. Reading them properly means decoding the chain, and the version we had was slow and returned an undercount, so it was pulled rather than shipped misleading.
- Copy-trade simulation is paused. It needs a full fill history to mean anything.
- It is not advice. A good past record is not a prediction, and copying a whale at retail size behaves very differently.