Polymarket taxes, and the reason on-chain history overstates your gain
Polymarket issues no tax form of any kind. That much is widely known. The part almost nobody writes about is that rebuilding your history from the blockchain quietly drops your losses, and a record missing its losses is a record that overstates what you owe.
Start with the obvious part
Polymarket does not send you a 1099-B, a 1099-DA, a 1099-MISC, or anything else. There is no annual statement and no year-end summary. That does not make the profit invisible or untaxed. It makes the entire reconstruction your responsibility, from a public blockchain, with no help.
Because positions live on Polygon as ERC-1155 outcome tokens bought and sold against USDC, the transactions are visible to anyone who looks, permanently, including years later. Public and unreported are not the same thing.
The part that costs people money
When a Polymarket position loses, it usually leaves no settlement record at all. Redeeming a winning position writes a transaction to the chain, because you are claiming a dollar per share. Redeeming a losing position pays out nothing and still costs gas, so essentially nobody does it. The worthless tokens simply sit in the wallet forever.
So if you reconstruct your year from settlement events, you capture every win and almost none of your losses. Your reported gain is too high. You pay tax you do not owe.
What that looks like with real numbers
Take a trader who put five thousand dollars each into twenty markets across the year. Eleven resolved in their favour and paid out. Nine resolved against them and were never redeemed.
| Method | Wins captured | Losses captured | Reported result |
|---|---|---|---|
| Rebuilt from redemptions only | All 11 | None | Materially overstated |
| Rebuilt from trade history plus a position diff | All 11 | All 9 | Actual result |
The gap is the entire loss column, and it runs the wrong way for you. Every naive reconstruction, including most block explorer exports and most spreadsheets built by hand, has this bug. It is also exactly why leaderboards across the ecosystem read high: they count what settled, and losses frequently never settle.
How to actually find the missing losses
The fix is a diff, and it only takes three inputs.
- Pull the complete activity history for the wallet, every buy, sell, merge, split and redeem, back to the first trade. Simple offset paging breaks on large accounts, so history has to be walked backwards with a time cursor to get all of it.
- Pull what the wallet holds right now. That is the list of positions that are genuinely still open.
- Diff them. Any position the history says you should still be holding, which does not appear in the live list and was never sold or redeemed, is a market that resolved against you. Book it as a disposal at zero on the resolution date.
That third step is the one that turns a fantasy number into a record you could actually stand behind. It is also the specific thing Whalefax was built to do, and you can run it on any wallet, including one that is not yours.
The other thing that makes Polymarket harder than Kalshi
Kalshi is dollars in and dollars out. Polymarket sits on a blockchain, and that adds layers that are easy to miss:
- Every leg can be its own reportable event. Acquiring USDC, buying outcome tokens with it, selling them, and redeeming at resolution are separate steps, and how each is characterized depends on the treatment you and your professional settle on.
- Merges and splits are not trades but they move your basis. Splitting collateral into a YES and a NO, or merging a complete set back to USDC, changes what you hold without any profit occurring. A record that treats them as buys and sells will double count.
- Gas is paid in a different asset from the one you trade in, on a chain where the fee is denominated in a token with its own price.
- One wallet is not one trader. If you moved funds between wallets during the year, no single address tells the whole story, and each one has to be reconstructed and then combined.
Practical order of operations
- Write down every wallet address you traded from this year, including ones you abandoned.
- Rebuild each one to completion, then confirm the open positions the rebuild predicts match what the wallet actually holds. If they do not match, the reconstruction is incomplete and any figure from it is wrong.
- Book every unmatched position as resolved at zero on its resolution date, in the correct tax year.
- Take the finished record to a professional for the classification question, which for on-chain trading is more involved than for a regulated exchange.
Do the first three now, while the markets are still queryable and you still remember which wallets were yours. The reconstruction does not get easier with distance.
Common questions
- Does Polymarket send a 1099?
- No. Polymarket issues no tax form of any kind to US traders, including 1099-B, 1099-DA and 1099-MISC. There is no annual statement. Every figure on your return has to be reconstructed by you from on-chain activity.
- If Polymarket does not report to the IRS, does anyone know I traded?
- The trades are on a public blockchain, permanently, and can be read by anyone at any point in the future. Absence of a form is not privacy, and it is not a reason to leave income off a return. It only means the reporting work falls to you.
- Why would rebuilding my history from the blockchain overstate my gain?
- Because losing positions usually leave no record. Redeeming a winner writes a transaction, since you are collecting a dollar per share. Redeeming a loser pays nothing and still costs gas, so nearly nobody bothers, and the worthless tokens sit in the wallet indefinitely. A reconstruction built on settlement events therefore captures your wins and misses your losses, which pushes your reported gain above your real one.
- How do I find the losing positions that never settled?
- Diff your full trade history against what the wallet currently holds. Any position the history says you should still own, which is absent from the live holdings and was never sold or redeemed, resolved against you. Book it as a disposal at zero on the resolution date.
- Are merges and splits taxable events?
- They are not profit-taking trades, but they do move basis around, and how they are characterized depends on the treatment you adopt. The mechanical point is that a record which logs them as ordinary buys and sells will double count your activity, so they need to be identified rather than lumped in.