Polymarket smart-money trade history
What the top-ranked traders did, one file per day.
Each day the traders are ranked on the previous 30 days of settled markets, and the day's on-chain fills of the ones who made the list go into one file. The list is fixed before the day starts, so nobody is picked because of the trades in the file.
What is in a file
One zstd-compressed CSV per list per day, with a header row.- ts
- Block time, UTC, to the second
- block · blockHash
- Polygon block of the fill
- txHash · logIndex
- Transaction and log position, enough to look the fill up on chain
- exchange
- Contract that matched the fill: pm_ctf_v2 (binary markets), pm_negrisk_v2 (multi-outcome markets), or pm_unknown_v2, a contract that emits the same fill events but whose identity is unconfirmed (a small share of rows)
- side · role
- BUY or SELL, and maker or taker, of this wallet's own order
- tokenId
- Outcome token, as a decimal string. On pm_unknown_v2 rows it does not map to a market
- price
- Price per share, up to 6 decimal places
- shares · usdc · fee
- Raw integers at 1e6 precision
- feeUnit
- Whether the fee is charged in collateral or in shares
- wallet · entityId · rank
- The wallet, the trader it belongs to and that trader's rank on the day's list
A fill between two listed traders appears twice, once for each side. Each file comes with a manifest naming the list it was built from.
Sample data
Opening rows of a real file.| ts | block | blockHash | txHash | logIndex | exchange | side | role | tokenId | price | shares | usdc | fee | feeUnit | wallet | entityId | rank |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-08 00:00:04 | 95141603 | 0x4f5262029eab384b97325d02fdaef068cef36ac9215b5ca3b900f86f1e53dfb1 | 0x0d5b7bda63e893c115cf3874d82d1c7369f49226220c678c80258b03d5ecf05d | 936 | pm_ctf_v2 | BUY | maker | 77652742500183419383594054530889486427861082617733497168859274236952457920881 | 0.999 | 28000000 | 27972000 | 0 | collateral | 0x3884acd922095fc579938f2c6d1569decc38416d | 0x3884acd922095fc579938f2c6d1569decc38416d | 948 |
| 2026-10-08 00:00:07 | 95141605 | 0xcf0a19ece5194e25d7179baa2f9c09a6ee150a297fc7cf504d449a50c9418101 | 0xab8e57a3054c7cec2429bb4c1e6fbb37d72de1198485a44114693664f2b311f2 | 685 | pm_ctf_v2 | BUY | maker | 114070908034986966287048445558647277403726115629196745583655739559378963535302 | 0.31 | 6086954 | 1886956 | 0 | collateral | 0xae68447c01fc86864fd0e5e58aae986eeb8abf83 | 0x586161c722681b3292af90a102efa9be7416cbe1 | 973 |
| 2026-10-08 00:00:07 | 95141605 | 0xcf0a19ece5194e25d7179baa2f9c09a6ee150a297fc7cf504d449a50c9418101 | 0x1810b2de7183395ed00bca35adbb633bc8c51debdb7ccc5a9d897e28f08c89ca | 812 | pm_ctf_v2 | BUY | maker | 2036165758798535288264500173163458737707779079692882995274948657753263722638 | 0.38 | 5000000 | 1900000 | 0 | collateral | 0x5c4600b33a02adf80dd07d6853f0c59e8d9e753d | 0xa22a496e2ab1fb1577e7400497721958b86cf698 | 930 |
| 2026-10-08 00:00:13 | 95141609 | 0xfb91166725c35e86c4dbc8264b3514eacab1f0612ccf4182008d97d80c51cf8d | 0x607c17e264b0f5118a542b35af5b1ae2f099148236c88e63e6430234e5e21cb5 | 451 | pm_ctf_v2 | BUY | taker | 110997673003696407017734750156680454857775519931877123867201443651353716330339 | 0.983999 | 37225562 | 36629953 | 44680 | collateral | 0x2277c18fb73d4cfbd61384be80ef9339a9496604 | 0x0e77818567ff504bb06a6a72ec37149a7e1a8e08 | 974 |
| 2026-10-08 00:00:13 | 95141609 | 0xfb91166725c35e86c4dbc8264b3514eacab1f0612ccf4182008d97d80c51cf8d | 0x6abe800678a3981c423701f59f0a8d33c0fca758d181968de3ee8290e07dc823 | 491 | pm_ctf_v2 | BUY | taker | 110997673003696407017734750156680454857775519931877123867201443651353716330339 | 0.983999 | 25152437 | 24749998 | 30180 | collateral | 0x2277c18fb73d4cfbd61384be80ef9339a9496604 | 0x0e77818567ff504bb06a6a72ec37149a7e1a8e08 | 974 |
| 2026-10-08 00:00:13 | 95141609 | 0xfb91166725c35e86c4dbc8264b3514eacab1f0612ccf4182008d97d80c51cf8d | 0x57ea36abfd0c8579fdb5f5f58bf35104271fbaed254a687065d1b731a6d1a1f9 | 514 | pm_ctf_v2 | BUY | taker | 110997673003696407017734750156680454857775519931877123867201443651353716330339 | 0.98363 | 37239562 | 36629979 | 45630 | collateral | 0x2277c18fb73d4cfbd61384be80ef9339a9496604 | 0x0e77818567ff504bb06a6a72ec37149a7e1a8e08 | 974 |
| 2026-10-08 00:00:13 | 95141609 | 0xfb91166725c35e86c4dbc8264b3514eacab1f0612ccf4182008d97d80c51cf8d | 0x784188b7b8c59739866c67cc8b3036b2a9c444342d914416a9b9f84a44d4eac8 | 554 | pm_ctf_v2 | BUY | taker | 110997673003696407017734750156680454857775519931877123867201443651353716330339 | 0.983999 | 25152437 | 24749998 | 30180 | collateral | 0x2277c18fb73d4cfbd61384be80ef9339a9496604 | 0x0e77818567ff504bb06a6a72ec37149a7e1a8e08 | 974 |
| 2026-10-08 00:00:13 | 95141609 | 0xfb91166725c35e86c4dbc8264b3514eacab1f0612ccf4182008d97d80c51cf8d | 0x813fb59b3879ffd6cdc754cb8343e5d063fa58466f6f02510ef5f703795e09ea | 574 | pm_ctf_v2 | BUY | taker | 110997673003696407017734750156680454857775519931877123867201443651353716330339 | 0.983999 | 25152437 | 24749998 | 30180 | collateral | 0x2277c18fb73d4cfbd61384be80ef9339a9496604 | 0x0e77818567ff504bb06a6a72ec37149a7e1a8e08 | 974 |
A sample file for 2026-10-08 (UTC), from that day's frozen list: 32,444 rows from 76 traders (134 wallets) ranked 901 to 1000, with anyone who ranked higher on any frozen list since left out and not replaced. Values are copied verbatim. The complete file, its manifest and a field guide: smart-money sample on GitHub (also on Kaggle and Hugging Face).
How the list is chosen
One rule, applied the same way every day.Ranked on the previous 30 days
The window is the 30 days ending at the previous UTC midnight. A trader qualifies with a trade in the window, at least 10 settled markets won or lost, at least $1,000 bought, and a realized profit that stays positive after their single most profitable market is removed.
Qualifiers are ranked by that remaining profit. Taking the best market out reduces the weight of one lucky bet; it does not detect wash trading. The Top 100 is the first 100 of the Top 1000, and if fewer traders qualify, the list is shorter rather than filled.
Fixed before the day it covers
The file for a day uses the list as it stood at the end of the previous UTC day. A trader who made money on that day cannot be selected because of it.
Once published, a day's list does not change. If the daily ranking is late, the most recent earlier list is used, up to 48 hours old; past that, the day is not published and its manifest says why.
Traders, not single wallets
Wallets that can be shown to belong together, such as a proxy wallet and its owner, are ranked as one trader and delivered together. Separate wallets run by one person are not merged.
Off the list, out of the file
Each file holds only the traders on that day's list. A trader who drops off is no longer included from the next file on; the days they were on the list stay downloadable.
Traders near the cut-off can move in and out, so their history can have gaps. On a day that uses an earlier list, the change takes effect when the next list arrives.
How to pull it
Two endpoints and your key; the download is a redirect to a short-lived signed link.# List the days your key can download, newest first, with each file's status, size and sha256 curl -H "Authorization: Bearer $OT_KEY" https://outcometick.com/v1/smart/days # Pick the newest published Top 100 day DAY=$(curl -s -H "Authorization: Bearer $OT_KEY" https://outcometick.com/v1/smart/days | jq -r '[.days[] | select(.lists.top100.status == "published")][0].day') # Download it (Top 1000 plans can also use list=top1000) curl -L -H "Authorization: Bearer $OT_KEY" -o top100.csv.zst "https://outcometick.com/v1/smart/download?day=$DAY&list=top100"
Delivery
Published the next morning
A day's file is published early the next UTC day, once the chain has settled. You download it with an API key; links are signed per request and expire after a few minutes.
The last 30 days
A subscription can download the files of the last 30 days, counted in UTC dates up to the newest published day; a day that was not published is shown as such, not replaced by an older one. Files you have downloaded are yours to keep.
Lists start on 2026-10-08 and are not backfilled, so until thirty days have accumulated a subscription reaches the days published so far.
Recent days can be republished if the chain data behind them is corrected; the manifest says which version you have.
Pricing
Monthly, in US dollars.Top 100
- Daily file of the top 100 traders
- Download the last 30 days
- Separate API key
Top 1000
- Daily file of the top 1,000 traders
- Download the last 30 days
- Separate API key
Pay by card as a monthly subscription, or in USDT/USDC for 30 days at a time.
Questions
Can I get days from before I subscribed?
Yes, as long as they are within the last 30 days. The first file is for 2026-10-08; earlier days do not exist.
How is this different from PMWallets?
PMWallets, our partner, is where you pick individual wallets and date ranges to follow or export. This is the whole daily list delivered as files.
Is there a free sample?
Yes: one real day from the traders ranked 901 to 1000, on GitHub, Kaggle and Hugging Face; a fixed three-day sample will replace it. Anyone who ranked higher on any frozen list since is left out.
Can I move from Top 100 to Top 1000?
Buy Top 1000 on its own: each plan is a separate subscription with its own key, so cancel Top 100 when you no longer need it. A payment for one plan never extends the other.
Does the list catch one person with many wallets?
Only where the wallets can be shown to be linked. Independent wallets run by the same person are ranked separately.