On-chain investigationPolygon29 October 2026

737 Polymarket wallets lost $2.73M in one hour. Every drain went through Polymarket's own wallet system

Hundreds of Polymarket balances fell to zero in a single hour. We followed every dollar out, to learn how it left, who lost it and where it sits now.

At a glance
On 29 October, between 17:10 and 18:10 UTC, someone emptied 737 Polymarket accounts and took $2.73 million. Every drain was a normal withdrawal with a valid approval, sent by Polymarket's own relayer. No smart contract was broken. The money left as POL and was split across new wallets, then bridged toward Ethereum. Polymarket blames a hacked outside provider and says users will be made whole. Even so, one more account was drained 38 minutes after that statement. At 19:49 UTC, most of the money still sat on Polygon.
$2.73M
Taken from Polymarket accounts
737
Accounts drained
60 min
From the first drain to the last
$2.17M
Still on Polygon at 19:49 UTC
Key findingsEach line has its own share link
  1. $2.73M

    Taken from 737 Polymarket accounts in one hour, 17:10 to 18:10 UTC on 29 October.

  2. 985 drains

    Each a normal withdrawal with a valid approval, sent by Polymarket's own relayer. No smart contract was broken.

  3. 48%

    Of the money was already gone when a trader posted a warning on X at 17:45 UTC.

  4. 4 accounts

    Lost 43% of the money. 276 accounts lost under $100 each.

  5. gfg44433

    A new Polymarket account, opened 34 minutes into the attack to sell and cash out stolen bets.

  6. 38 minutes

    After Polymarket said it had fixed the cause, one more account was drained through its relayer, at 19:11 UTC.

01 · What happenedWhat happened in the Polymarket hack

On Thursday evening, some Polymarket traders opened the site and found their accounts empty. One trader said $800K was gone. Others posted smaller losses on X and in Discord.

Polymarket is a prediction market. People buy shares in an outcome, like who wins an election or a match, and each share pays $1 if they are right. The site runs on Polygon, where it is one of the busiest apps on the network.

Bitquery traced each transfer with its Polygon data. In one hour, someone emptied 737 accounts and took $2.73 million. Each withdrawal had a valid approval from its own account and went out through the site's own systems. No smart contract was broken. The money left as POL, Polygon's own coin, and by the evening it was moving to Ethereum.

Polymarket says one of its outside providers was hacked, and that users will be made whole. We followed each withdrawal from the account it left to the wallet where it sits now.

02 · The setupHow a Polymarket account moves money

Each account keeps its money in a smart wallet of its own on Polygon. Polymarket calls it a deposit wallet. The cash inside is pUSD, the site's own dollar token, backed one to one by USDC.

The site pays the network fees for its users. When you trade or withdraw, you sign an approval with the wallet you log in with. The site's relayer, a service that pays the fee for you, sends it to the chain. Your deposit wallet checks that the approval is yours, then runs the action.

A withdrawal turns pUSD back into USDC, which can then go through Relay, an app that swaps and bridges coins, to any address and almost any coin you pick.

How a normal withdrawal worksfour steps, the same in every Polymarket withdrawal
A NORMAL POLYMARKET WITHDRAWAL, STEP BY STEP1. You approve itsigned by your loginwallet, no gas needed2. Polymarket sends itits relayer pays the gasand posts it on-chain3. Your wallet runs itchecks the approval isyours, then pays out4. Money leavespUSD back to USDC, thenRelay to any addressWhat changed on 29 October:Who approved itthe wallet's own login, as in a normal withdrawalWho sent itPolymarket's usual relayer walletsWhich contract ran itthe victim's own Polymarket deposit walletWhere the money wentone address, 0x3F99…fc18, every time
Nothing in this path was broken on 29 October. Only the address at the end changed.

That day, each of those steps ran the way it always does. Only the address at the end belonged to someone else. It was the attacker's.

03 · The hourOne hour, 737 accounts

The first drains came in a small burst. Five accounts were emptied in three minutes, one of them for $75K. Then nothing happened for 13 minutes.

When the drains came back, they kept coming for 45 minutes, up to 40 in a single minute. A trader called Car posted a warning, telling users to lock down their accounts. By then, half of the money was already gone.

48% gone before Car's warningdollars drained each minute, 17:10 to 18:10 UTC, 29 October
DOLLARS DRAINED PER MINUTE (BARS) AND RUNNING TOTAL (LINE) · 29 OCT, UTC$0$100K$200K$300K$400K$1M$2M$3M17:1017:2017:3017:4017:5018:0018:10First five drainsCar postsBiggest drainLast drain$2.71MLeft scale: dollars in each minute. Right scale: running total.Main route only (713 wallets). Times in UTC.
Five drains came first, then a 13-minute gap, then the main wave from 17:25.

The biggest single drain, $358K, came from an account called hewhodoesit. The last drain of the hour landed ten minutes later. Thirty seconds after that, Polymarket's relayer sent its last transaction and went quiet.

Minutes later, reports said the exchange was in cancel-only mode, where traders can pull orders but not place new ones. The relayer was paused too. So the drains had stopped the moment the relayer did.

04 · The methodNo broken contract, just valid approvals

Each drain was one transaction for one account. Take the biggest. The deposit wallet of hewhodoesit approved a batch of steps, and the relayer sent it. The site's own tool turned the pUSD back into USDC, and then the Relay router took a small fee and swapped the rest into POL for the attacker.

The biggest drain, step by stepone transaction at 18:00 UTC
THE BIGGEST DRAIN, 18:00 UTC · ONE TRANSACTIONhewhodoesit's wallet$358,369 in pUSDapproves one batchPolymarket relayerpays gas, sends thebatch on-chainPolymarket off-ramppUSD turned backinto USDCRelay routerkeeps a 0.65% fee,swaps USDC to POL0x3F99…fc183.68 million POLSame in all 985 drains on the main route:One wallet per transactionyes, every timeSent by Polymarket's relayeryes, the usual relayer walletsApproval made3 to 7 seconds before it landed (30 checked)Smart contract brokennone found
Every one of the 985 drains on the main route had the same shape.

All 985 drains on this route look the same. Each was sent by the same relayer wallets the site uses for normal traffic each day. Each carried an approval that the account's own wallet accepted.

The approvals were fresh. Each one has a time limit set an hour ahead, so the limit shows when the approval was made. In the 30 drains we checked, each approval was used 3 to 7 seconds after it was made. Nobody clicks through hundreds of accounts that fast. Software does.

So who could make those approvals? The chain shows they were valid, but it cannot show who made them. Two answers fit the record. Code planted on polymarket.com could have asked logged-in users to approve a withdrawal to the attacker, and one user reported a withdrawal request they never started. Or the keys behind those approvals leaked from a vendor's systems.

Polymarket blames a hacked outside provider. It has not named the firm or said how the approvals were made. Two days earlier, the Predict.fun hack looked much the same on-chain, with valid approvals and no broken contract. So did the LootBot drain. Whoever can approve for a wallet can empty it.

05 · The victimsWho got hit in the Polymarket hack

Most of the drained accounts held small sums. The median account lost $171. Two in five lost under $100.

The money came from a few big accounts. Four of them lost more than $100K each, 43% of the total, and our labels mark three of those four as profitable traders.

Many small losses, a few huge onesshare of drained wallets against share of dollars, by size of loss
SHARE OF WALLETS AGAINST SHARE OF DOLLARS, BY HOW MUCH EACH WALLET LOSTShare of the 713 walletsShare of the dollars0%10%20%30%40%50%Under $100276 wallets, 39%$9K, 0.3%$100 to $1K270 wallets, 38%$95K, 3.5%$1K to $10K130 wallets, 18%$389K, 14.3%$10K to $100K33 wallets, 5%$1.04M, 38.4%$100K and up4 wallets, 1%$1.18M, 43.4%
39% of the wallets lost under $100. 4 wallets lost 43% of the money.

Our address labels give many of the drained wallets a public name. The account hewhodoesit lost the most. Takon88 came second. Two of the four largest accounts carry no public name.

The 12 biggest lossespublic Polymarket name where our labels have one
THE 12 BIGGEST LOSSES · PUBLIC POLYMARKET HANDLE AND DOLLARS DRAINED$0$100K$200K$300K$400Khewhodoesit$358,369Takon88$331,7900x4468…b165$245,5670x2cc8…262b$243,005dotaloser$91,120viper0310$83,429titocomino$76,742nope3050$59,741yoyoyoyoer$55,624FastPaws$55,025nomoredream$53,865Novaflow$42,407
Two of the four largest accounts carry no public name.

Car's $800K does not match any single account in the record, so Car may use more than one account, or may count open bets at their market price. The friend Car said lost $600K does not match one account either.

06 · The signalThe drain stood out within minutes

A drain this big is loud on-chain. Users swap a withdrawal into POL through Relay only a few dozen times a day.

In the two weeks before, the median day had 47 of these swaps. On the day of the attack, the attacker's address alone received 981.

21 times a normal dayPolymarket withdrawals swapped to POL through Relay, per day
WITHDRAWALS SWAPPED TO POL THROUGH RELAY, PER DAY · 15 TO 29 OCTOBEREveryone elseTo the attacker's address02505007501,000491541162217451849197020402150225523542441256026432733281,01029Day of October 2026, UTC. Withdrawals made from Polymarket deposit wallets.
A normal day had 47. On 29 October one address received 981.

Nothing like it shows up in the two weeks before, so the attack started that day, and next to a normal fortnight it is the only thing on the chart.

07 · The betsThe stolen bets and a new account

The attacker took open bets too. Outcome shares, the tokens that pay $1 if a result comes true, left 33 accounts.

Shares are hard to cash outside the site. So the attacker opened a new account. Our labels name it gfg44433. Its wallet was made 34 minutes into the drain, and a minute later the stolen shares began to flow in.

The new account sold some shares on the exchange. It turned others straight back into pUSD through the site's own contracts. At 19:49 UTC it held $4,655 in pUSD.

Stolen bets, a new account, quick cashoutcome shares taken, passed on and cashed out, 29 October (UTC)
THE STOLEN BETS · SHARES TAKEN, PASSED ON AND CASHED OUT (UTC)Taken from walletsSent to gfg44433Sold or cashed out17:2017:3017:4017:5018:00gfg44433 createdCircle size shows shares (top two lanes) or dollars (bottom lane). 64,196 shares taken, 8,047 passed on,$4,262 cashed out by 18:23 UTC.
gfg44433 was created at 17:44 and had cashed out $4,262 16 minutes later.

That account is the clearest lead in the case. Whoever opened it went through the site's own sign-up. That leaves records Polymarket can check.

08 · The moneyWhere the stolen money went

Eighteen minutes after the last drain, the attacker began to move. Within ten minutes, all the POL had left for three new wallets.

Soon, money from two of those wallets was crossing to Ethereum through Relay and deBridge, apps that move coins between chains. Another slice took the slow road through Polygon's own bridge, and within the hour the attacker claimed it on Ethereum, swapped it for ETH and sent it to the same wallet as the rest.

The bridging did not go smoothly. Three of one wallet's Relay transfers failed. Relay refunded them in USDC, and the attacker swapped the USDC straight back into POL.

From one address to two chainshow the 28.64 million POL moved, 18:28 to 19:49 UTC
WHERE THE POL WENT · AMOUNTS IN MILLIONS OF POL, ETH ON ETHEREUM0x3F99…fc1828.64M POL inemptied 18:28 to 18:380xe4c4…1ec618.61M POL inkeeps 15.33M0x5392…962c4.30M POL inuntouched0xc91e…9b605.73M POL inkeeps 4.24M0x3f70…1ffa3.28M POL insent all of it on0xe5e7…95f6126.10 ETH, Ethereumvia three bridgesPolygon's bridge0.55M POL, slow roadclaimed, now 21.69 ETH0xc91e…9b6058.43 ETH, Ethereum1.49M POL via RelayRead on the chain at 19:49 UTC, 29 October. The money was still moving.
Two wallets bridged to Ethereum. One has not moved at all.

On Ethereum the coins landed as ETH. Most of it gathered in one fresh wallet, 0xe5e7…95f6, which held 126.10 ETH at 19:49 UTC. Bots were already sending the attacker's wallets fake transfers from look-alike addresses, hoping for a copy-paste slip.

Most of the money had not gone far. When we last read the chain, about $2.17M in POL still sat in three Polygon wallets, and each of them can be followed with the Bitquery MCP.

Most of it was still on Polygonwhere the $2.73M sat at 19:49 UTC
WHERE THE $2.73M SAT AT 19:49 UTCStill on Polygon$2.17M80%Bridged to Ethereum$433K16%Swap costs and price moves$126K5%
Values use Relay's prices that evening: POL at $0.0908, ETH at $2,324.

09 · The patternThe second Polymarket drain this year

This is the second drain this year that Polymarket blames on an outsider. In June, by press counts, a vendor's script was injected into the site, and about 11 wallets lost $2.94 million. The site promised full refunds.

The two attacks took about the same money in very different ways. June's hit a few large accounts, about $267K each. October's hit hundreds of accounts, about $3,700 each.

Same money, very different attackPolymarket's June and October drains compared
TWO POLYMARKET INCIDENTS · WALLETS HIT, DOLLARS TAKEN, DOLLARS PER WALLETWallets hit11June 202673729 OctoberDollars taken$2.94MJune 2026$2.73M29 OctoberPer wallet$267KJune 2026$3,70029 OctoberJune figures are press estimates (11 wallets, $2.94M). October figures are from this investigation.
June's figures are press estimates. October's come from this investigation.

Hundreds of small accounts in one hour points to approvals made in bulk. That is hard to do by tricking people one at a time.

10 · The responseWhat Polymarket has said

Polymarket's first posts said it was looking into the reports. It had paused trading and the relayer. Twenty-three minutes after the last drain, it said it had found and fixed the cause. One of its outside providers had been hacked. It has told law enforcement, and it says users who lost money will be made whole.

The relayer came back 19 minutes after that statement. Nineteen minutes later, one more account was drained through it, and $10.99 went straight to the attacker. The approval was as fresh as the others, and the same account had already been drained once during the hour. It was the only late drain we found up to 19:49 UTC.

The drains stopped when the relayer stoppedPolymarket relayer transactions every five minutes, 29 October (UTC)
POLYMARKET RELAYER TRANSACTIONS PER 5 MINUTES · 29 OCTOBER, UTCDrain hourRelayer paused05001,0001,50016:3017:0017:3018:0018:3019:00Statement 18:33One more drain, 19:11Last relayer transaction before the pause: 18:10:35. First after: 18:52:29.Transactions sent to Polymarket's deposit wallet factory, any kind.
The relayer went quiet 30 seconds after the last drain and came back at 18:52. One more drain followed at 19:11.

Polymarket has not named the firm. Nor has it said how many accounts were hit, or given a total. Early reports put the loss anywhere from hundreds of thousands to $2.65 million. Here is how those claims compare with the record.

SourceClaimRecordVerdict
Car$800,000 drained from Car's accountThe largest single account on this route lost $358,369Not one account
CarA friend lost $600,000No single account lost more than $358,369Not one account
The BlockAbout $2.65 million$2.73 million left the accounts. The attacker held a little less in POL after swap costsClose, a little low
PolymarketAn outside provider was hackedEvery drain carried a valid approval. The chain cannot show who made themFits, not proven
PolymarketThe cause was found and fixedOne more drain came through the relayer at 19:11, 38 minutes laterNot yet borne out

11 · What to doIf you use Polymarket

Polymarket says it will make users whole. Watch its own accounts for how. Ignore anyone who messages you about a refund.

Do not approve anything you did not start. A withdrawal you did not ask for is the warning sign users reported. Check the address on each withdrawal before you approve it.

Trading was halted when we read the chain. Check the site's status before you trade or withdraw.

12 · The methodHow we traced the Polymarket hack

We started from the address users shared, 0x3F99…fc18, and read every transfer into and out of it with Bitquery's Polygon data. For each payment into it, we read the rest of that transaction to find the account it came from. We read Relay's public records for each bridge request. Later moves came straight from the chain.

Names come from our labels. Trades come from the Polymarket API. The Ethereum side comes from our Ethereum data. The full history is also sold as files, as the Polygon, Polymarket and Ethereum datasets on the Bitquery Data Store. For cases like this, we also run crypto investigation services.

Limits on these findings

Transfers were read up to 19:49 UTC on 29 October on Polygon and Ethereum. Anything later is not covered.

Dollar totals count pUSD, USDC and USDC.e at $1. POL and ETH values use Relay's prices at 18:34 UTC: POL at $0.0908, ETH at $2,324.

Totals cover money paid to the attacker's address 0x3F99…fc18. Losses sent elsewhere by other routes are not counted, so the totals are a floor.

Outcome shares are counted, not valued. At most they are worth $1 each.

The record shows that each approval was valid. It does not show who made it, or how.

Names of accounts come from Bitquery's address labels and may be incomplete.

13 · The recordThe addresses behind the Polymarket hack

0x3f99139f1c5854bb628c2e576aaf638e99dffc18
0xc6fcf3a65c85eb322fe41c193f74bb37845e19be29364b126d3ea7a149f78dcc
0x5a2764fbbe5d139ef0ed988ec5f95320ce730c0b
0xe4c4c39c1733e1c7c06b79f97ed442b68df41ec6
0x5392587814ce8c6af6789764f88e5e9ab0b9962c
0xc91ee0574a14446de200923729c349b9cae19b60
0xc91ee0574a14446de200923729c349b9cae19b60
0x3f7019221a925537dc20767c38e80a7127fb1ffa
0xe5e76a4d73f3bfb5cc9a8f53d4f8459fcac495f6
0x74e940e4eb470a9d8b78c5eb8919938041219897
0x6ff9322601c17bd3f82933c5a9399a615d7c8687f786646225531a9369af7738
0x744fdeed0629d9704f42817de0cbbe04626a0a8860892fa411daa440a054825f
0x9ab3c17b1a37886f1d702945fcf8016e3e549b18
0xa7727418d0c2dce55461840c41ef017d2646feb72f18e5bb74ad4af20b884351
0x00000000000fb5c9adea0298d729a0cb3823cc07
0xb92fe925dc43a0ecde6c8b1a2709c170ec4fff4f
Run it yourself

Follow the Polymarket money in plain English

Every transfer in this story comes from Bitquery's Polygon and Ethereum data. The Bitquery MCP server puts that data behind an AI assistant, so you can ask where a wallet's money went, or which labels an address carries, without writing a query. The full history is also sold as files on the Bitquery Data Store, as the Polygon dataset and the Ethereum dataset.

Watch the three Polygon wallets still holding POLTrace any Polygon or Ethereum wallet across a bridgeCheck an address against Bitquery's labelsPull any Polymarket account's trades and transfers
Explore Bitquery MCP →Polygon and Ethereum transfers, calls and events from Bitquery. Data read on 29 October 2026.
Legal disclaimer

This article is provided for informational and educational purposes only and reflects analysis of publicly available on-chain data as of the dates indicated. It does not constitute legal, financial, compliance, or investment advice, and nothing in it is a recommendation to buy, sell or hold any token or asset, or to use or avoid any prediction market, wallet, bridge, protocol, exchange or service.

The findings describe transactions and balances observed on Polygon and Ethereum on 29 October 2026. Attributions come from Bitquery's address labels and from on-chain behaviour; they may be incomplete or incorrect and may be revised as more data becomes available.

References to Polymarket, Relay, deBridge, Polygon, The Block, PANews, Crypto Briefing, Car or any other named project, company, service or person describe what the public record shows about addresses and transactions linked to them, and what those parties have said in public. They are not statements about any party's intent, security practices, solvency or conduct, and nothing here asserts that any named party acted unlawfully or negligently. Account names are public Polymarket names and identify no person. The wallets that took the funds are described by their behaviour and attributed to nobody.

Nothing herein should be relied upon as a definitive determination of fact. Readers should conduct their own independent verification before taking any action. The authors and publisher accept no liability for any loss or damage arising from reliance on this material. All trademarks and company names are the property of their respective owners.

Reported by Gaurav Agarwal for Bitquery Research, with AI tools; every figure was checked against the raw data.

FAQ

Was Polymarket hacked?

Its users' accounts were. In one hour on 29 October, 737 accounts lost about $2.73 million. No smart contract was broken. Each withdrawal had a valid approval and went out through the site's own relayer. Polymarket says one of its outside providers was hacked.

How much was stolen in the Polymarket hack?

About $2.73 million in pUSD and USDC left 737 accounts in one hour. The attacker also took open bets from 33 accounts.

Will Polymarket refund users?

Polymarket said on X that users who lost money will be made whole. It has not yet said how or when.

Is Polymarket safe to use now?

Polymarket says it found and fixed the cause. Trading was halted while it brought the site back. One more account was drained after that statement. Do not approve any withdrawal you did not start, and check the address on every approval.

Where did the stolen money go?

It was swapped into POL and sent to one address. That address split it across three new wallets, which began bridging it to Ethereum through Relay, deBridge and Polygon's own bridge. Most of it was still on Polygon when we last read the chain.

Who was behind the Polymarket hack?

Nobody has been named. Mid-attack, the attacker opened a new account, gfg44433, to sell stolen bets. Polymarket has told law enforcement.

Run the next investigation in minutes

Ask any question of the blockchain. Bitquery's AI Investigations agent traces funds, attributes wallets, and writes auditable reports across every major chain. Prefer to do it yourself? Connect the Bitquery MCP server to your AI assistant, pull the raw datasets, or query the chain directly with the Bitquery API.