On-chain investigationBitcoin · Litecoin30 Oct to 2 Nov 2026

For three days a thief emptied hot wallets on old BTCPay Servers. We traced $1.6M. Nearly all of it is still parked

Shops run BTCPay Server so that nobody else holds their money. On servers left without updates, that money sat one login away from a stranger. We followed the two addresses BTCPay named to count what left, and where it went.

At a glance
Between 30 October and 2 November a thief emptied BTCPay Server hot wallets on servers that had not been updated since July. BTCPay named the two addresses that collected the money. We traced $1,628,450 to them, 18.38 BTC and 3,405 LTC, taken in 682 separate sweeps. 87% of it moved in one wave on the afternoon and evening of 1 November, and sweeps kept arriving after BTCPay's alert. At 06:00 UTC on 2 November more than 99% of the money still sat in addresses first used in the theft, and none had reached a known exchange.
$1.63M
Taken, at 2 November prices
682
Sweeps on Bitcoin and Litecoin
62 hours
From the first sweep to BTCPay's alert
99%+
Still in addresses first used in the theft
Key findingsEach line has its own share link
  1. $1.63M

    Taken from BTCPay Server hot wallets in 682 sweeps between 30 October and 2 November: 18.38 BTC and 3,405 LTC.

  2. 62 hours

    Passed between the first sweep we can see and BTCPay's public alert at 22:25 UTC on 1 November.

  3. 87%

    Of the money moved in one wave on 1 November, between 14:12 and 22:16 UTC.

  4. 267

    More sweeps landed after the alert, worth $150K. Some old servers were still online.

  5. 77%

    Of the money came from 32 sweeps of $10,000 or more. About half of all sweeps were under $100.

  6. 99%+

    Of the money still sat in addresses first used in the theft at 06:00 UTC on 2 November. Only about $1,600 reached an older wallet.

01 · What happenedWhat happened in the BTCPay Server hack

On Sunday, 1 November, shops that take bitcoin on their own servers kept working as usual. Buyers paid. Orders were marked as paid. All afternoon, behind the checkout, the money was leaving.

These shops run BTCPay Server, free software that lets a business take bitcoin and other coins with no payment company in the middle. The business runs the server itself, and payments go straight to its own wallet. Some owners keep that wallet's keys on the server, a setup called a hot wallet. With the keys there, the server can send coins without anyone signing each payment by hand.

Some of those servers had gone months without an update. A thief signed in to them as an admin and sent all the coins in their hot wallets to two addresses, one on Bitcoin and one on Litecoin. BTCPay told everyone running the software to shut it down at 22:25 UTC that night. Its lead developer, Nicolas Dorier, posted both addresses early the next morning.

Bitquery reads every transaction on Bitcoin and Litecoin, so we followed those two addresses. We counted $1.63M taken in 682 separate sweeps, transfers that empty a wallet in one go. They ran over about three days, and most of the money went in one afternoon and evening. The thief has paid most of the bitcoin out to brand-new addresses, and almost none of it has moved again since then. We cannot tell how many servers were hit, because the chain records wallets and says nothing about the servers behind them. Each total here runs to 06:00 UTC on 2 November, and the count was still rising when we stopped.

02 · The softwareWhat BTCPay Server is, and what a hot wallet does

BTCPay Server is a free alternative to a bitcoin payment processor. Shops and charities run it so that no company holds their money, and it is open source. The owner runs it on a rented server or a machine at home. It watches the blockchain for payments to each invoice.

Each order gets a new address, so when a customer pays, the coins land there and stay until the owner moves them. What happens next depends on where the keys are kept.

In a watch-only setup the keys stay on the owner's own device, often a hardware wallet, so the server can see the money but has no way to move it. In a hot wallet setup the seed, the master key that every address in the wallet comes from, sits on the server. That lets a shop send refunds or payouts from its dashboard. It also means that whoever runs the server as an admin can spend the coins.

Where the keys livetwo ways to run a BTCPay Server wallet
WHERE THE KEYS LIVE DECIDES WHO CAN SPENDWatch-only walletA customer paysan invoice at checkoutBTCPay checks the paymenton its own nodeCoins reach a new addressone new address per orderKeys stay with the ownerit can watch, not spendHot wallet on a server running 2.4.1 or olderA customer paysthe same checkoutCoins reach a new addressexactly as beforeThe seed is on the serverso the server can signA thief logs in as adminand sends everything outA seed is the master key that every address in a wallet comes from.
Only the hot wallet lets the server spend. On old servers that put the money one admin login away from the thief.

After the attack, Dorier advised users not to keep too much in a hot wallet.

03 · The timelineThree days, hour by hour

The first sweep we can see came early on 30 October, less than a day after BTCPay shipped version 2.4.7. It emptied a wallet of 42 addresses into a second wallet tied to the thief. That wallet passed the coins on to the named Bitcoin address later that day. A trickle of smaller sweeps followed over the next day and a half.

Then the pace changed. Litecoin sweeps began on 1 November, and the Bitcoin wave started within the hour. Over the next eight hours the thief took 87% of everything we counted. The busiest single hour moved $725K.

Most of it went in one afternoon and eveningdollars swept each hour, 30 October to 2 November (UTC)
DOLLARS SWEPT EACH HOUR, 30 OCT TO 2 NOV (UTC)BitcoinLitecoin$0$250K$500K$750K30 Oct31 Oct1 Nov2 NovFirst sweep, 18.6 hours after 2.4.7Litecoin sweeps startBTCPay alert 22:25Addresses named$725K in one hourEach bar is one hour. Values at $78,326 per BTC and $55.54 per LTC.
The busiest hour, from 16:00 UTC on 1 November, moved $725K. Bars are valued at 2 November prices.

BTCPay's alert went out late that evening. By then the wave had mostly passed. The sweeps did not stop.

04 · The lossesHow much the BTCPay Server hack took

Bitcoin made up 88% of the value, and Litecoin the rest. We value both coins at Monday morning's prices.

Bitcoin made up most of itdollars taken on each chain
WHAT WAS TAKEN ON EACH CHAINBitcoin$1.44M · 18.38 BTC · 534 sweepsLitecoin$189K · 3,405 LTC · 148 sweepsValues at $78,326 per BTC and $55.54 per LTC, 2 November.
Both chains are valued at prices from the morning of 2 November.

Most sweeps were small. About half were worth less than $100, the kind of balance a shop builds from a few days of modest orders. A few dozen large ones carried three quarters of the money.

Many small sweeps, a few large onesshare of sweeps against share of dollars, by size of sweep
MOST SWEEPS WERE SMALL. A FEW HELD MOST OF THE MONEYShare of sweepsShare of dollarsunder $10049%<1%$100 to $1K32%5%$1K to $10K15%18%$10K to $100K4%45%$100K and up<1%32%Both chains, 682 sweeps, valued on 2 November.
About half the sweeps were under $100. Sweeps of $10,000 or more made up 77% of the money.

On Bitcoin the gap is sharper still. The ten largest sweeps hold 60% of the bitcoin taken.

The largest sweeps hold most of the bitcoinshare of the bitcoin taken, held by the largest sweeps
SHARE OF THE BITCOIN TAKEN, HELD BY THE LARGEST SWEEPS0%25%50%75%100%10%largest one29%largest 360%largest 1083%largest 3096%largest 100100%all 534Bitcoin only. The three largest sweeps came from one wallet in a single block.
Out of 534 Bitcoin sweeps, the ten largest hold 60%.

05 · The biggest lossesThe wallets that lost the most

A bitcoin wallet holds its money as separate coins, one for each payment it has received. A shop that has taken thousands of small orders ends up with thousands of coins, and moving them all takes a large transaction.

The largest loss came in a single block on 1 November. Three sweeps landed together, each built from 566 coins, worth $421K between them. Sweeps that share a block and a coin count point to one wallet, emptied in three parts. Another sweep that evening gathered 1,316 coins worth $62K.

The ten largest Bitcoin sweepstime on 1 November (UTC), coins in each sweep, and value
THE TEN LARGEST BITCOIN SWEEPStime (UTC, 1 Nov) · coins in the sweep16:50 · 566 coins1.86 BTC · $145K16:50 · 566 coins1.78 BTC · $139K16:50 · 566 coins1.74 BTC · $136K21:27 · 5 coins1.29 BTC · $101K16:08 · 197 coins1.07 BTC · $84K16:39 · 304 coins0.86 BTC · $67K20:27 · 1,316 coins0.80 BTC · $62K15:15 · 27 coins0.57 BTC · $45K22:01 · 342 coins0.55 BTC · $43K23:11 · 420 coins0.49 BTC · $39KThe top three share one block and the same number of coins: very likely one wallet,5.37 BTC ($421K) in total.
Values at 2 November prices. No wallet is named here.

We do not name any victims. The chain shows only wallets.

06 · After the alertThe alert did not stop it

Shutting a server down stops a thief who needs that server to sign. Owners who saw the alert could do that at once, and BTCPay said some hosting companies switched old servers off for their customers. Not everyone heard in time.

After the alert we counted 267 more sweeps, worth $150K. They kept coming in each hour through the night, and they were still coming in when we stopped counting at six the next morning.

267 sweeps after the alertsweeps per hour from BTCPay's alert to 06:00 UTC on 2 November
SWEEPS KEPT LANDING AFTER THE ALERTBitcoin sweepsLitecoin sweeps020406080$14K22:26$54K23:00$31K00:00$36K01:00$5.0K02:00$6.9K03:00$2.3K04:00$1.7K05:00Dollar value of each hour's sweeps above each column. The first column starts at the alert.Every sweep means an old server was still online with money in its hot wallet.
The first column starts at 22:26 UTC. Each column's dollar value sits above it.

07 · The second walletA second wallet tied to the thief

BTCPay named one Bitcoin address. Part of the money reached it through a second one.

Early on 30 October, a wallet of 42 addresses was emptied into this second wallet in one go. The sender paid a fee about 20 times the median in that block. People do that when they want a payment through fast. About five hours later the second wallet sent those coins to the named address. They were among the first coins the named address received.

After that the two wallets acted as one. On the afternoon of 1 November they paid the same fresh address in the same block, at the same fee rate. Four and a half hours later they paid out together again, in one block, at a matching fee. Both send their change, the leftover from each payment, back to themselves.

Why we tie the second wallet to the thiefthe evidence, in the order it happened (UTC)
WHY WE TIE A SECOND WALLET TO THE THIEF30 Oct, 08:22 · the first sweep we can seeA wallet of 42 addresses is emptied into the secondwallet, 0.32 BTC. Fee: 20 sat/vB, while transactionsin that block paid a median of 1 sat/vB.30 Oct, 13:35 · handed to the named addressThe second wallet sends those coins on. They areamong the first coins the named address received.1 Nov, 13:46 · one block, one payeeBoth wallets pay the same fresh address in thesame block, both at 3 sat/vB.1 Nov, 18:17 · one block againBoth wallets pay out in one block, both at 5 sat/vB.Both send their change back to themselves.sat/vB is the fee a sender offers per unit of transaction size. Wallet software usually picks it, so matching feesin the same block point to the same software and the same hand.
Each box is one transaction, or two sent in the same block.

We treat the second wallet as the thief's, with moderate-high confidence. Another 0.26 BTC came into it and never reached the named address. Our totals leave that out.

08 · The moneyWhere the stolen money went

The thief started paying bitcoin out ten minutes after the first coins came in, and over the next three days made 17 payments, each to an address that had never been used before the theft. The two largest went out on 1 November, and one of them was confirmed four minutes after BTCPay's alert.

The thief's Bitcoin payoutseach payment out of the named address, by time and size
THE THIEF'S BITCOIN PAYOUTSNot moved sinceMoved on, then stopped0 BTC2 BTC4 BTC6 BTC30 Oct31 Oct1 Nov2 Novalert5.5 BTC, 17:064.71 BTC, 22:291.3 BTC, 16:421.3 BTC, 00:5317 payments, 17.88 BTC in all. No receiving address had been used before the theft.
The 4.71 BTC payment was confirmed four minutes after BTCPay's alert.

None of those addresses had spent anything when we stopped counting, apart from two early ones whose coins moved on a step or two and then stopped. About $1,600 reached a wallet that has been in use since February. The Litecoin address has never sent a coin.

Nearly all of it sat stillwhere the stolen money was at 06:00 UTC on 2 November
WHERE THE MONEY SAT AT 06:00 UTC, 2 NOVEMBERFresh addresses the thief paid$1.36M83.4%Moved on one step, then stopped$40K2.5%Still in the Bitcoin collecting address$38K2.4%Litecoin collecting address, never spent$189K11.6%Reached an older wallet$1.6K<0.1%Valued at $78,326 per BTC and $55.54 per LTC. The first two rows had not moved at all by 06:00 UTC.
All but about $1,600 sat in addresses first used in the theft. 97% had not moved past the thief's first payments.

No address on the trail matches Bitquery's address labels, so we cannot yet say who holds them. Fresh, single-use addresses that receive round amounts are what deposit addresses at swap services and exchanges look like. They are also what a thief's own storage looks like. The first time any of them moves, the chain should show which.

09 · The causeHow the thief got in

BTCPay has not given a full account yet. What it has said narrows things down. On Monday it said the attack targeted servers running version 2.4.1, shipped in July, or older. It said it had no credible reports of drains on the current version, 2.4.7. Dorier said the thief "managed to log in as admin", and that BTCPay had "traces that pre 2.4.2 vulnerabilities were used".

Version 2.4.2, shipped in August, fixed two serious holes. One let anyone on the internet copy the files that control a server's Lightning node. BTCPay said at the time that attackers had used it to steal Lightning funds. The other let someone who knew an account's password sign in through BTCPay's programming interface without the two-factor code. In its August advisory, BTCPay said the first hole did not affect hot wallets.

A server still on 2.4.1 or older had gone at least 86 days without that fix when the main wave hit. BTCPay has not said which hole, or which mix of them, gave the thief admin access.

Months without an updateBTCPay Server releases, June to November 2026
BTCPAY SERVER RELEASES AND THE ATTACKVersions BTCPay says were targeted: 2.4.1 and olderSweeps, 30 Oct to 2 Nov2.4.02.4.12.4.22.4.32.4.42.4.52.4.62.4.72.4.2, 7 Aug: login and Lightning fixes · 86 days before the main wave2.4.7, 29 Oct: 85 fixesJulAugSepOct
BTCPay says the attack targeted 2.4.1 and older. Version 2.4.2 came out 86 days before the main wave.

The first sweep also came less than a day after version 2.4.7. That release fixed 85 problems found by an AI code scanner that Anthropic runs for open-source projects. Published fixes show where software used to be weak. The timing fits someone reading the new patches, but it proves nothing. BTCPay says it has no credible reports of drains on 2.4.7.

10 · What to doIf you run BTCPay Server

Update to 2.4.7 or later before the server goes back online. BTCPay says it has no credible reports of drains on that version.

If the server ran 2.4.1 or older, assume someone else may have had admin access. Read the wallet's transaction list for sends you did not make, and look for admin accounts or API keys you did not create.

Move the money out of the hot wallet into a new wallet with a new seed, one whose keys never touch the server. Keep only what you need for refunds and payouts on the server itself. Change admin passwords and replace each API key. Turn on two-factor sign-in.

If you lost money, send the details and your logs to security@btcpayserver.org, as BTCPay asked.

11 · The limitsWhat we could not measure

We cannot say how many BTCPay Servers were hit, because the chain records only wallets. A sweep empties a wallet completely and leaves no change behind to link one sweep to the next. One shop swept five times looks the same as five shops swept once.

We counted the two addresses BTCPay named, plus the second wallet we tied to them, but BTCPay Server can also take other coins and Lightning payments, and we did not count those. Any other addresses the thief used are missing too, so each total is a floor.

12 · The methodHow we traced the BTCPay Server hack

We started from the two addresses Dorier posted. On each chain we listed every transaction that paid them. Then we followed each payment the thief made, one step at a time, until the coins stopped. We checked each address on the trail against Bitquery's labels and found no match. Any Bitcoin hack leaves a public trail like this one. Anyone can follow it. Both counts stop at 06:00 UTC on 2 November.

The full history of both chains is also sold as files on the Bitquery Data Store, in the Bitcoin dataset and the Litecoin dataset. For an earlier study we read every Litecoin block since 2011. We have traced other thefts this year, too. They include the Coldcard wallet hack on Bitcoin, and the b14g drain and Name.com DNS hijack of 31 October. For cases like these we also run crypto investigation services.

Limits on these findings

Bitcoin transfers were read up to block 974,216 (05:42 UTC on 2 November) and Litecoin transfers up to 06:00 UTC that day. Sweeps after that are not counted, and they were still arriving.

A sweep is one transaction that paid a named address and that the address did not fund itself. We count transactions, not servers or victims.

Values use one price per coin, $78,326 per bitcoin and $55.54 per litecoin, from Bitquery's hourly prices on the morning of 2 November. A 5% move in bitcoin's price moves the total by about $72K.

Nothing labels the second wallet; we tie it to the thief by how it behaved. The 0.26 BTC that came into it without reaching the named address is not in the totals.

Totals cover only the two addresses BTCPay named and the wallet tied to them. Other addresses and other coins, Lightning included, are not counted, so every total is a floor.

No address on the trail matched a label in Bitquery's data. Who holds the payout addresses is not known.

13 · The recordThe addresses behind the BTCPay Server hack

bc1p0f7wmcnesrapznymf9ljdn04pudgmh96sqtrm9vmgqxdh666fh8qvn63r7
ltc1qp49tmfdueyaqrmgrx0uyx4uegyygt8yt02whee
bc1qqjynymlsxuanp5tavacqjz6588pt0n9nh6aru5
bc1qn3fze9w3c0m38y84v76qr2z5dz9cjx0hz4aeva
bc1q8hyw6c47t4cskvn655csdc8ym7wc7tcnj6ws4j
870ec7afc3792dc02e81718e8fbaaad7ccdfdc77dbd89f45523393427703b82c
7a81bddd918af1fb49b323f56820491e9e4147355adca9a1a4418c9ec1bb1b1d
8e25f0a572f562dd12514607eac4687408af09df8ccacd41e9acc66cea54ec11
bc1qxy6r4hznukvwkavz7aq9rnresr53trx6zn644k
Run it yourself

Follow the thief's addresses in plain English

Every transaction in this story comes from Bitquery's blockchain data. The Bitquery MCP server puts that data behind an AI assistant, so you can ask where an address sent its coins, or which wallets paid it, without writing a query. The full history is also sold as files on the Bitquery Data Store, as the Bitcoin dataset and the Litecoin dataset.

Watch the named addresses for their first moveList every transaction that paid an addressFollow a payment one step at a timeCheck an address against Bitquery's labels
Explore Bitquery MCP →Bitcoin and Litecoin transactions from Bitquery. Data read on 2 November 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, security or investment advice, and nothing in it is a recommendation to buy, sell or hold any coin or asset, or to use or avoid any software, wallet, hosting provider, exchange or service.

The findings describe transactions and balances observed on Bitcoin and Litecoin between 30 October and 2 November 2026. Attributions come from on-chain behavior and from addresses BTCPay Server's developers published; they may be incomplete or incorrect and may be revised as more data becomes available.

References to BTCPay Server, its developers, Anthropic or any other named project, company or person describe what the public record shows and what those parties have said in public. They are not statements about any party's intent, security practices or conduct, and nothing here asserts that any named party acted unlawfully or negligently. Victims are not named. The wallets that took the funds are described by their behavior 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 BTCPay Server hacked?

Self-hosted BTCPay Servers running version 2.4.1 or older were broken into, and their hot wallets were emptied. BTCPay said it had no credible reports of drains on the current version, 2.4.7, and that its own public servers were not attacked.

How much was stolen in the BTCPay Server hack?

We traced about $1.63M in bitcoin and litecoin to the two addresses BTCPay named. Sweeps were still arriving when we stopped counting.

Which BTCPay Server versions were affected?

BTCPay said the attack targeted servers running version 2.4.1, released in July 2026, or older. Version 2.4.2 fixed a two-factor login bypass and a Lightning credential leak in August.

Is BTCPay Server 2.4.7 safe to use?

BTCPay said it had no credible reports of hot wallet drains on 2.4.7. Its lead developer still advises updating often and keeping little in a hot wallet.

Can victims get their money back?

Nearly all the money still sat in addresses first used in the theft on the morning of 2 November. If any of it reaches an exchange that can freeze it, victims may have a chance. BTCPay asked victims to send details to its security address.

What is a hot wallet?

A hot wallet keeps its keys on a computer that is online, so it can send coins without a person signing each time. In BTCPay Server, the hot wallet's seed sits on the server itself.

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.