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
Four views of the same wallet and market
Each row is an alternative source response, not an additional set of purchases
| Source view | Buys | Shares | Cost |
|---|---|---|---|
| Default trades · April | 1 | 21.19 | $16.74 |
| Default trades · July 25 | 1 | 20.87 | $16.49 |
| Trades with maker activity · July 25 | 80 | 12,759.03 | $9,978.37 |
| Activity reference · July 25 | 80 | 12,759.68 | $9,978.88 |
Missing purchase records: (80 − 1) ÷ 80 × 100 = 98.75%
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
Two contract sources account for the redeemed shares
Exact incoming token quantities · initial example only
12,398.622139 + 360.733557 = 12,759.355696 shares
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
Cash reconstruction for the redeemed outcomes
50 selected markets per wallet · USD · holdings in other outcomes excluded
| Wallet ending | Paid | Sales | Redeemed | Net |
|---|---|---|---|---|
| …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 |
1,534,264.93 + 5,377.05 − 947,711.94 = 591,930.04 dollars
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
The reconstruction needs all four steps
A practical reading of the corrected method
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.