Request a Review
MSR Decode · Market data · Case 04 · Method report

MSR flagged a $12,759 payout as unexplained. The feed had hidden 79 of the wallet’s 80 purchases

Polymarket’s default trade response returned only one side of each trade. Recovering the missing records explained the payout and all 150 of the largest flags that MSR rechecked.

Published July 25, 2026 · Clarified September 20 · Updated October 25, 2026 · 4 min read
Contents
  1. 01 · Asking for both sides brought the purchases back
  2. 02 · The same gap explained 150 more flags
  3. 03 · Both roles, and every page
  4. Negative findings and limitations
  5. Evidence and corrections

A private MSR screen flagged a $12,759 payout in a five-minute Bitcoin market. The wallet that collected the payout appeared to have bought far fewer shares than it redeemed: Polymarket’s default trade response showed it buying just once.

The wallet had in fact bought 80 times. The other 79 purchases were missing for two reasons: the way the feed works, and MSR’s assumption that the feed’s default view was the complete record. The anomaly was MSR’s error, not evidence that the wallet had received shares it never paid for. Finding and correction

The way the feed works depends on order roles. In any trade, the maker is the side that leaves an order waiting, and the taker is the side that accepts it; either side can be buying or selling. In the retained July response, the feed’s default view returned only the taker side of each trade. Requesting takerOnly=false brought back the maker-side purchases. Feed behavior and retrieval record

Asking for both sides brought the purchases back

MSR compared a default response saved in April with a July capture that set takerOnly=false. In each default response MSR retained, the request left the parameter out, and the API applied takerOnly=true. The endpoint’s documentation described that default, but the original review treated the narrower response as the wallet’s whole history. Endpoint reference and response files

Evidence explained

Four views of the same wallet and market

Each row is an alternative source response, not an additional set of purchases

Source viewBuysSharesCost
Default trades · April121.19$16.74
Default trades · July 25120.87$16.49
Trades with maker activity · July 258012,759.03$9,978.37
Activity reference · July 258012,759.68$9,978.88
Work it through

Missing purchase records: (80 − 1) ÷ 80 × 100 = 98.75%

The fuller records recover the acquisitions behind the payout.

With the purchases restored, the payout looks ordinary. The activity record shows a purchase cost of $9,978.88 against the $12,759.36 payout, a gain of $2,780.48 on that basis. Corrected calculation and source discrepancy

MSR also checked where the redeemed shares came from without relying on the API. Starting from the redemption transaction, it identified the token and quantity redeemed, then traced every incoming transfer of that token. The exchange’s order-matching contract and its fee module had supplied 12,759.355696 shares in total, exactly the quantity redeemed, and no ordinary wallet supplied shares directly. The trail from purchase to payout was complete. Blockchain sender trace

Evidence explained

Two contract sources account for the redeemed shares

Exact incoming token quantities · initial example only

Exchange contract12,398.62213980 incoming transfers
Fee module360.73355780 incoming transfers
Redemption12,759.355696Exact sum of both sources
Work it through

12,398.622139 + 360.733557 = 12,759.355696 shares

No ordinary-wallet sender contributed shares in this trace.

The same gap explained 150 more flags

The screen had flagged about $4.77 million across 4,725 markets as apparently unbacked. MSR rechecked the largest fifty flags in each of three wallets rather than every flagged market. In all 150 selected cases, recovered purchases explained the gap, accounting for $926,462.58 previously labeled unbacked. Selection and reconciliation

Evidence explained

Cash reconstruction for the redeemed outcomes

50 selected markets per wallet · USD · holdings in other outcomes excluded

Wallet endingPaidSalesRedeemedNet
…a904$314,444.35$0.00$461,844.46+$147,400.11
…93aa$129,580.46$5,377.05$218,392.51+$94,189.10
…0313$503,687.13$0.00$854,027.96+$350,340.83
Total$947,711.94$5,377.05$1,534,264.93+$591,930.04
Work it through

1,534,264.93 + 5,377.05 − 947,711.94 = 591,930.04 dollars

Cash-flow subtotal for the outcome shares that were later redeemed.

For the outcome shares later redeemed in those markets, purchases totaled $947,711.94, sales returned $5,377.05 and redemptions returned $1,534,264.93, leaving $591,930.04 for those outcomes alone. The wallets also spent $414,187.03 and received $14,067.73 on other outcomes, which belong to the wider market accounting.

The default feed left out sales as well as purchases. Of the 150 selected markets, 108 had activity on both outcomes and 42 had purchases only on the winning side. In the comparison across both outcomes, the default feed kept 40.4% of purchase value and 59.7% of sale value. It left out about $811,985 of purchases and $7,830 of sales. Coverage and interpretation

Both roles, and every page

Fixing the role filter was not enough on its own. The activity endpoint caps the number of records in each response, so recovering the full record required fetching additional pages in 21 of the markets reviewed. An earlier 110-market pull had stopped too soon in eighteen cases and missed about $72,000 of purchases, which appeared only when the remaining pages were fetched. Corrected retrieval method

Evidence explained

The reconstruction needs all four steps

A practical reading of the corrected method

1 · Include both rolesMaker and takerRecover purchases hidden by the default filter.
2 · Fetch all pagesBeyond the first responseDo not treat a page limit as the end of history.
3 · Match the tokenSame outcome sharesCompare acquisitions with the actual redemption.
4 · ReconcileInputs, outputs and balanceRetain differences that do not tie.
The full sender-level blockchain check is demonstrated for the initial market.

The original April–May flags were never published as findings. The method that corrected them applies to anyone reading Polymarket’s public trade data. Before calling a payout unexplained, a reader should include both maker and taker roles, fetch every page and reconcile the shares against their receipts.

Evidence tables, source files and corrections

Evidence, calculations and corrections

Calculation details

The follow-up used fuller API records outside the first blockchain-traced example. The default feed’s role filter and record caps are separate failure modes. The per-market files below retain the calls, acquisition records and outcome-specific cash reconciliation.

Correction facts recorded August 4, 2026: MSR generated the original flags in private research during April–May 2026 and never published them as findings. The API reference already documented the taker-only default in April; MSR’s error was treating its output as a complete history.

Correction record

October 4, 2026: This article was rewritten as one current narrative. Earlier article versions and the duplicate finding text were removed from the public page; supporting tables, visuals, source destinations and correction facts remain available below.

Clarification, added 2026-09-20. Earlier wording described the screen’s logic as sound. The screen used incomplete trading records and produced false positives. This clarification does not change the published figures or the selected-market reconstruction.

Supporting visual

One wallet’s purchases in one five-minute Bitcoin market, as returned by the default July 2026 trade feed and a maker-inclusive activity fetch. Source: the supporting records on this page

Buy-side spend recovered

Default /trades$16.49 · 1 fill
/activity reference$9,978.88 · 80 fills

Detailed table

The same wallet, the same market, four sources — each row independently answers “what did this wallet acquire here?”, so the column is not a sum
SourceBuy fills reportedSharesCost
/trades, default — as the filter read it in April 2026121.19$16.74
/trades, default — re-fetched 2026-07-25120.87$16.49
/trades?takerOnly=false — re-fetched 2026-07-258012,759.03$9,978.37
/activity — re-fetched 2026-07-258012,759.68$9,978.88

Detailed table

Where the 12,759.355696 redeemed shares came from — redemption tx 0xbde3495e…c4ee8, Polygon block 86110435
SenderIdentityTransfersShares
0x4bfb41d5…8982eCTFExchange — Polymarket’s order-matching contract8012,398.622139
0xe3f18acc…ab7b0FeeModule — Polymarket’s fee contract80360.733557
any ordinary wallet—00.000000
Totalties to the burned quantity exactly16012,759.355696

Detailed table

Re-fetch of the 50 largest flagged markets per wallet, 150 in total, reconciled at outcome-token level — per-market source data at trades-endpoint-reconciliation.json
WalletMarketsCalled unbackedActually paidSale proceedsRedeemedNetExplained
0x8c901f67…a90450$403,775.97$314,444.35$0.00$461,844.46+$147,400.1150 / 50
0xd0d6053c…93aa50$82,311.53$129,580.46$5,377.05$218,392.51+$94,189.1050 / 50
0x1d003413…031350$440,375.08$503,687.13$0.00$854,027.96+$350,340.8350 / 50
Total150$926,462.58$947,711.94$5,377.05$1,534,264.93+$591,930.04150 / 150

Detailed table

Reproduce it yourself
WhatCall
Wallet0x8c901f67b036b5eebab4e1f2f904b8676743a904
Market (condition ID)0x2981bbd76157280d6161a7cded2a141af40d8d2f94a2014c4561488079bd89bb
Outcome token (asset ID)85612635244646347265208933815991747551122064386068179565554647222358877800034
1 filldata-api.polymarket.com/trades?user=0x8c901f67b036b5eebab4e1f2f904b8676743a904&market=0x2981bbd76157280d6161a7cded2a141af40d8d2f94a2014c4561488079bd89bb
80 fills…the same call with &takerOnly=false
Full activity incl. the redemptiondata-api.polymarket.com/activity?user=0x8c901f67b036b5eebab4e1f2f904b8676743a904&market=0x2981bbd76157280d6161a7cded2a141af40d8d2f94a2014c4561488079bd89bb
The redemptioneth_getTransactionReceipt 0xbde3495edd20cf329cb5b12262be4191907f3e6261f124994870b4e3731c4ee8
The senderspolygon.blockscout.com/api/v2/addresses/0x4bfb41d5b3570defd03c39a9a4d8de6bd8b8982e
The other senderpolygon.blockscout.com/api/v2/addresses/0xe3f18acc55091e2c48d883fc8c8413319d4ab7b0
Full reconciliation, all 150 markets/trades-endpoint-reconciliation.json · .csv

Source files and references

Ask MSR to investigate

Tell us which wallet, market, payout or profit claim you want checked. MSR accepts commissioned investigations using the evidence standards shown in this report.

Request a Review →

← Back to Case Work