On-chain investigationSolana26 October 2026

48 Bloom wallets lost 9,408 SOL in 94 seconds. All of them belonged to nine traders

A Telegram trading bot's users found their SOL gone before most of Europe was awake. We followed every transfer to learn whose wallets they were, how the attacker picked them and where the money is now.

At a glance
Early on 26 October, an attacker emptied 48 wallets used with Bloom, a Telegram trading bot, and took 9,408 SOL, about $953K. The wallets belong to nine traders. A script tested one wallet per trader, then drained each trader's wallets biggest first, in 94 seconds. It used the owners' own keys, and its list included wallets that had not traded on Bloom since the first half of 2025. It took only SOL. Almost all of it sits unmoved in one wallet, and Bloom has promised refunds.
9,408
SOL taken from 48 Bloom wallets, about $953K
9
Traders behind the 48 wallets, tested one at a time
94 s
From the first full drain to the last
0 SOL
Moved out of the attacker's holding wallet
Key findingsEach line has its own share link
  1. 9,408 SOL

    Taken from 48 wallets used with the Bloom trading bot, about $953K, in 94 seconds on 26 October.

  2. 9 traders

    Own all 48 wallets. The script tested one wallet per trader, then emptied each trader's wallets biggest first.

  3. 1 signer

    On every drain: the wallet's own key. No approval and no contract. Whoever did this held the private keys.

  4. 24

    Of the 48 had not traded on Bloom for a month. Five had not since the first half of 2025, and were drained anyway.

  5. $56,853

    In USDC left behind. The attacker went back for $49,041 in one wallet, and the owner moved it out first.

  6. 0 SOL

    Moved out of the attacker's holding wallet, which holds 9,408.21 SOL untouched.

01 · What happenedWhat happened to Bloom trading bot users

If you trade memecoins through a Telegram bot, the bot can spend from your wallet. Early on Monday, someone else did. In 94 seconds, 48 wallets lost almost all of their SOL, worth close to a million dollars.

The owners noticed fast. Eight minutes after the drain, one trader posted a $64,000 transfer out of his wallet and asked for help. Within half an hour, another account was calling it a possible exit scam, the kind where a project runs off with its users' money. "got drained for 100k gg," a third trader wrote later, under a link to his own transfer.

Every one of the 48 wallets had been used with Bloom, a trading bot that runs inside the Telegram chat app. You tap a button or type a command, and Bloom buys or sells a coin for you in seconds. To trade that fast, Bloom keeps the private key to each wallet you use with it. A private key is the secret code that approves transactions, and whoever holds it can move everything inside.

Bitquery traced every transfer in the drain with its Solana data. In all, the attacker took 9,408 SOL, about $953,000. The 48 wallets belong to nine traders. The attacker tested one wallet for each of them, then emptied their wallets one trader at a time, biggest first. The list included wallets that had not traded on Bloom for more than a year. The attacker took only SOL and left behind about $57,000 in USDC, a dollar stablecoin. Almost every SOL taken still sits in one wallet, untouched.

02 · How the bot holds your keysHow a Telegram trading bot holds your keys

Trading bots like Bloom either create a fresh wallet for you or import one you already have. After that, the bot signs your trades on its own servers. There is no pop-up to approve, which is why memecoin traders use these bots to get into new coins first.

The price of that speed is that the bot holds a live copy of your key. In crypto terms, every bot wallet is a hot wallet, one whose key sits on a machine connected to the internet. If those keys leak, anyone holding them can empty the wallets, and the blockchain treats it as the owner moving their own money.

Bloom charges a fee on each trade, paid in SOL to a single fee wallet. That is how we know who used Bloom. In the month before the drain, more than 6,000 wallets paid it.

03 · 94 secondsOne test per trader, then 94 seconds

The attack began just before 1am UTC with two failed tries on the biggest wallet in the set. Then the attacker sent a small test from that wallet to a brand-new address, 7kY8qx…p8BQ, which would collect everything that followed. It was the first SOL that address had ever received.

Less than two minutes later came nine more tiny tests, a few seconds apart. Each came from a different trader. Soon after, the first wallet was emptied in full. Then the main run started, and the script emptied 47 more wallets in 51 seconds.

One test per trader, then 94 secondsevery drained wallet, one row per trader, 26 October (UTC)
ROWS T1 TO T9: THE NINE TRADERS · OPEN CIRCLE: A TEST · DOT: A DRAIN, SIZED BY SOLTestsDrainsT1T2T3T4T5T6T7T8T901:02:1001:02:2501:03:0001:03:3001:04:0001:04:30…01:03:07 first full drainBefore this: two failed tries at 00:59 and a 0.01 SOL test at 01:00:28, from trader 1's biggest wallet.
Each trader got one small test, a few seconds apart. Then the script emptied them in the same order, biggest wallet first.

The order gives the plan away. For each trader, the script started with the wallet it had tested, then went down their wallets from the biggest balance to the smallest. Eight of the nine runs follow that order exactly. The attacker's list was sorted by trader before the drain began.

04 · Nine tradersNine traders, not 48 strangers

Bloom's own count is nine. In a post on X, it promised to "fully reimburse all funds lost by the 9 affected wallets." The chain shows 48 wallets that lost SOL. Five clues tie them to nine people.

The first two are the tests and the running order. The third is Bloom's own fees. When a trader buys from several wallets at once, those wallets pay their fees in the same second. Dozens of pairs among the 48 did this again and again, and every such pair sat inside a single trader's group.

The fourth came after the drain. Trader 1 sent what was left in all five of their wallets to one new address, and trader 8 did the same with most of theirs. The fifth is a screenshot of trader 6's Bloom wallet list, which we were shown. It lists six wallets. Five were drained within a few seconds of each other, and the sixth has never made a transaction, so there was nothing in it to take.

Both public posts fit. The "100k" post matches trader 4, who used one wallet, and the $64,000 transfer came from trader 6's biggest.

What each trader lostSOL taken from each trader's wallets
9,408 SOL IN ALL · DOLLARS AT THE PRICE DURING THE DRAINTrader 11,864 · $189K · 5 walletsTrader 21,146 · $116K · 4 walletsTrader 31,309 · $133K · 6 walletsTrader 41,040 · $105K · 1 walletTrader 51,022 · $103K · 1 walletTrader 6865 · $88K · 5 walletsTrader 7771 · $78K · 7 walletsTrader 8650 · $66K · 12 walletsTrader 9742 · $75K · 7 walletsEach bar: SOL taken, its dollar value at the time, and how many wallets. Traders are numbered in the order the script reached them.
Two traders used a single wallet. Trader 8 had 12, and lost SOL from every one.

These were whales. The smallest loss by any trader was 650 SOL. The median wallet lost about $9,000, and six wallets held most of the SOL taken.

Six wallets held 61% of the SOLthe 48 drained wallets, grouped by dollar loss
LEFT: HOW MANY WALLETS · RIGHT: THEIR SHARE OF THE SOL TAKENWalletsShare of the SOL takenOver $50K661%$10K to $50K1528%$1K to $10K1611%Under $1K11under 1%The median wallet lost 89 SOL, about $9,000.
The counts match the table in the first public post about the drain.

05 · One scriptOne script, and the owners' own keys

Every drain was a plain SOL transfer, signed by the wallet's own key and nothing else. There was no token approval for a user to be tricked into, no smart contract and no second signer. Whoever sent these transactions held the private keys.

They also came from one script. Each paid exactly the same network fee, including a small tip to get in faster. Each left behind the same tiny amount of SOL, enough to keep the account open. The first full drain left a little less, and a try seconds before it had failed because it left too little. The attacker was still tuning the script as it ran.

One key, one transfer, every timewhat each of the 48 drain transactions contained
THE FOUR PARTS OF A DRAIN TRANSACTIONSignedby the wallet's own keythe only signerFee0.000105 SOLincl. 0.0001 SOL priorityOne transferall SOL but a littleno tokens, no approvalsTo the attacker7kY8qx…p8BQa brand-new walletThe same in every one of the 48:Signers1, the wallet itself. No contract, no approval, no co-signerNetwork fee0.000105 SOL every timeLeft behind0.001395 SOL in 47 wallets; 0.000895 SOL in the first oneTokens takennone. USDC and memecoins stayed putOrdertrader by trader, biggest wallet first
No approval, no contract and no co-signer. Whoever sent these held the wallets' private keys.

The keys may have been stolen at different times. They were used together, by one person or group, in one sitting.

06 · Old walletsEvery wallet had used Bloom, some not for a year

All 48 had paid a Bloom fee at least once. One paid a single fee, back in March. Half had not traded on Bloom in the month before the drain, and five had not since the first half of 2025.

24 of the 48 had gone quiet on Bloomthe last Bloom trading fee each drained wallet paid
ROWS T1 TO T9: THE NINE TRADERS · ONE DOT PER WALLET, AT ITS LAST BLOOM FEEJan 2025Apr 2025Jul 2025Oct 2025Jan 2026Apr 2026Jul 2026Oct 2026last 30 daysdrainT1T2T3T4T5T6T7T8T9Amber: no Bloom fee in the 30 days before the drain (24 wallets). Teal: paid one in that time.
Five wallets last traded through Bloom between January and May 2025. The attacker had their keys anyway.

The old wallets matter because they point at where the keys came from. The attacker held keys these traders were no longer using, sorted by trader, alongside the ones they used every day. That fits a leak from wherever Bloom keeps its keys, or from a provider that holds them for it. Bloom says it is checking whether "a third-party provider may have been compromised." Neither Bloom nor the chain has confirmed a cause.

There is another explanation. Malware on each trader's computer, or a leak of keys the traders exported, could produce the same list, if someone gathered the nine sets and sorted them. The record cannot rule that out.

Either way, the attacker chose whales. If they had Bloom's whole store of keys, they skipped thousands of smaller wallets. If they had only these nine, every one held more than $65,000 in SOL.

07 · SOL onlyThe attacker took SOL and left the dollars

During the drain, the script moved SOL and nothing else. When it ran, the wallets still held about $57,000 in USDC, and memecoins on top. Most of that USDC sat in one wallet, trader 1's 7YoMjE…z1AY.

The attacker did come back for that one. A few minutes after taking its SOL, the same script tried to send a tiny amount of USDC from it to the attacker. The transfer failed. The wallet had too little SOL left to pay for it. Twenty minutes later, the attacker sent the wallet a little SOL to cover fees.

The owner moved first. The fee money landed, and 96 seconds later the USDC was gone, sent to a wallet that has funded this one since January. The network fee for that rescue was paid by the FOMO app, which our labels show the trader also used. When the attacker's test finally went through, about 50 cents was left.

A race for $49,041 in USDCtrader 1's wallet 7YoMjE…z1AY, 26 October (UTC)
WHO MOVED FIRST, MINUTE BY MINUTE01:03:07SOL drained6.36 SOL01:08:51USDC test failsno SOL left for fees01:28:43Attacker sends 0.02 SOLto pay fees01:30:19Owner moves 48,550 USDCto the wallet that funds it01:46:03USDC test lands0.52 USDC left01:0001:1001:2001:3001:4001:50Red: the attacker's script. Teal: the wallet's owner, with the network fee paid by the FOMO app.
The attacker's fee money arrived at 01:28:43. The owner moved the USDC out 96 seconds later.

Other owners moved their USDC out too. By the morning, less than $5,000 was left in the 48 wallets.

The dollars stayed behindUSDC in the 48 drained wallets
THE ATTACKER TOOK NONE OF ITHeld at the drain$56,853Moved out by owners$52,035Still there$4,818"Still there" read from a public Solana node at 06:33 UTC.
Owners moved most of it to safety after the drain. 86% of it had sat in one wallet.

So the first post's "6 figs in USDC" was too high. Most of the USDC was one wallet's, and its owner got it out.

08 · Where the SOL isWhere the stolen SOL is now

The attacker left the SOL in the collecting wallet for about three and a half hours. Then it moved every coin to a second new wallet, 6nYyCz…moe9. That address had not sent anything when we last checked, at 07:34 UTC.

9,408.21 SOL in one walletwhere the SOL went, 26 October (UTC)
SOLID ARROWS: THE SOL TAKEN · DASHED: SMALL TRANSFERS48 walletsnine Bloom traders01:03:07 to 01:04:417kY8qx…p8BQthe attacker's walletnew; first SOL at 01:00:286nYyCz…moe9holds 9,408.21 SOLnothing sent by 07:34 UTC9,408 SOL04:30Trader 1's wallet7YoMjE…z1AYgot 0.02 SOL for fees, 01:28:43Look-alike addressessent dust to both walletsaddress poisoning baitNo exchange, bridge or mixer has touched either attacker wallet so far.
The only other SOL the attacker sent was the fee top-up for one victim wallet.

The only visitors since have been scammers. Look-alike addresses sent both attacker wallets tiny amounts of SOL, hoping the attacker would later copy one of them by mistake. That trick is called address poisoning, and it is common on Solana.

No exchange, bridge or mixer has touched either attacker wallet. The holding wallet can be watched with the Bitquery MCP, which lets you ask an AI assistant where a wallet's money goes next.

09 · What Bloom saidWhat Bloom said about the hack

Bloom answered about three and a half hours after the drain, in a reply on X. It said there was no need for a community relief fund, because Bloom would repay the affected wallets itself, sending the money to new wallets chosen by their owners. It said it was still looking for the cause, including a possible breach at a third-party provider.

Trading on Bloom stopped around the same time. On 25 October, about 90 wallets paid Bloom's fee every hour. The last fee came in at 04:05 UTC, and none had followed three and a half hours later.

Bloom trading stopped hours after the drainwallets paying Bloom's trading fee each hour, UTC
BLUE: BEFORE THE DRAIN · RED: FROM THE HOUR OF THE DRAIN ON05010015000:0025 Oct06:0012:0018:0000:0026 Oct06:0001:03 drain04:37 BloomstatementNo fee was paid after 04:05. Data to 07:34 UTC on 26 October; the last hour is partial.
Fee payers held near their usual level through the drain, then fell away. None paid after 04:05.

Calls of an exit scam started early, so we looked for any sign of one. Neither attacker wallet has ever sent money to Bloom's fee wallet or received money from it. The drain hit nine accounts, out of the thousands of wallets that pay Bloom fees each month. An exit scam usually takes from as many users as it can. None of this proves who the attacker is.

10 · How it comparesBloom against two earlier bot drains

This is the third bot drain we have traced since September. At the end of that month, leaked keys emptied more than 20,000 wallets at TradeWiz, another Solana bot, and the median wallet lost 63 cents. We covered it in the TradeWiz hack. Earlier in September a drainer emptied about 2,400 Ethereum wallets, among them half of all wallets that had ever paid LootBot, a Telegram airdrop bot that kept its users' keys. That story is in the LootBot hack.

Fewest wallets, biggest haulthree bot drains we traced, September and October 2026
RED: BLOOM · GREY: THE TWO EARLIER DRAINSWallets drained (log scale)Bloom26 Oct 202648TradeWiz30 Sep 202620,793LootBot7–8 Sep 20262,442Money takenBloom26 Oct 2026$953KTradeWiz30 Sep 2026$459KLootBot7–8 Sep 2026$627KMedian loss per wallet (log scale)Bloom26 Oct 2026$9KTradeWiz30 Sep 202663 centsLootBot7–8 Sep 2026$26TradeWiz and Bloom on Solana, LootBot on Ethereum. Figures from our earlier investigations.
Bloom's attacker took more money from 48 wallets than the other two took from thousands.

Bloom's attacker went the other way. It took the most money of the three from the fewest wallets, and the median loss was about $9,000.

11 · The first reportsChecking the first reports

The first counts on X came from on-chain watchers within hours. The post that started our check, from Inside Calls, got almost everything right. Onchain Lens and Coin Bureau reported the total and the biggest single loss.

SourceClaimRecordVerdict
Inside Calls48 wallets drained for $950K48 wallets, 9,408.23 SOL, about $953KRight
Inside CallsAll of them had used BloomAll 48 paid Bloom's fee wallet at least onceRight
Inside CallsOnly SOL was drainedOnly SOL. One later USDC grab failedRight
Inside CallsSix figures in USDC left behind$56,853 in USDC when the SOL wentToo high
Onchain Lens9,408 SOL from 49 victims9,408 SOL from 48 wallets; the other senders sent dustClose
Onchain LensLargest loss 1,636 SOL, about $166K1,636 SOL from one wallet, $166KRight
Onchain LensThe final number might be much higherNo second collecting wallet or second sweep by 07:34 UTCNot seen
BloomNine affected wallets48 wallets that belong to nine tradersMatches

12 · What it meansWhat the Bloom hack means for bot traders

A trading bot wallet is a hot wallet, and it stays one after you stop trading. Five of these wallets had not traded on Bloom since the first half of 2025, and they were drained with the rest. A key that has been inside a bot can be used by whoever gets hold of it, for as long as the wallet holds money.

Moving funds to a new wallet whose key never touched the bot removes that risk. Keeping only trading money in bot wallets limits it. Bloom plans to send its refunds to new wallets for the same reason.

For the people who build these bots, the old wallets are the warning. Keys for wallets nobody had used in a year were still worth stealing, because someone still had them.

13 · How we traced itHow we traced the Bloom drain

We read every transfer into and out of the two attacker wallets with Bitquery's Solana data. Then we pulled each of the 73 transactions that touched the first wallet from a public Solana node, to see who signed them and what each one left behind. We grouped the wallets by the order of the drain, by Bloom fees paid in the same second, and by where their owners moved money afterwards. Our address labels named the apps involved. Dollar values use the SOL price minute by minute during the drain, about $101.3.

The full Solana history is also sold as files. Bitquery does this kind of tracing for clients through its crypto investigation services, and we traced the CoinDCX hack the same way.

Limits on these findings

Transfers were read to 07:34 UTC on 26 October. Live balances were read from a public Solana node at 06:20 and 06:33 UTC. Anything after that is not covered.

Dollar values use the SOL price minute by minute during the drain, about $101.3 per SOL. USDC counts at $1.

We group the 48 wallets into nine traders from the order of the drain, from Bloom fees paid in the same second, and from where owners moved money afterwards. The grouping is firm for seven traders; for traders 3 and 7 the drain order is the main evidence.

We identify Bloom's fee wallet by its behaviour: it collects a fee on Bloom trades from thousands of wallets a month. We call wallets Bloom users because they paid it.

We name FOMO only because its wallet paid one network fee. Nothing here suggests it knew about or took part in the drain.

The record shows which wallets moved money and when. It does not show who controls the attacker's wallets or how the keys were obtained.

14 · The addressesWhere to look

These are the main wallets and transactions in this story. Each description links to the explorer, and the holding wallet is marked in green.

7kY8qx8MqJ7Rz2vMhgHETdZLHcTp1oM78AA9dmE9p8BQ
6nYyCzJJzErbmfxvXqzbAqwoBzNvXUiwr15KCkcgmoe9
ADe8xTkY71BXz5ehqWhxqpgsGyFqzhw6dH1FNbURrj4G9hQMcQAWunKULWMGzimJQh47CPYJkpdL4xveMqK9Fvi
4PzAaBNv86D1igC5VVb3JwCxXbb13W7MS6WmUmMq8SFtnZSm8ErhgygKHSsg5exfSCARAH4JLkm6GApRUTCXwZBM
5qXWqiDfgQ8ixdVPXMA2w9NAymFu8KWeXDFi7NWJ7RDbZysyPXLWJrkz41dQFUQ5nNxJWeT3xBLZSsbsFrkfdSiR
2LQ8nHstLcbUBs53QSqBSNLsihGGJo2EytGmVXuU7GJNrDHKwtF3YXeTGeha23shmx36cDe7g3zyz2QzPrihGfNo
25uyG7WYrC4p3UWGKKKjgNTDsQvoyjqPE5QoMzqqF77QrqpV1qH4GmFz952tzXN2yjWD4zabHPZbSDvHaYa4gYRM
TwxZvzhX4Ztt94BuR8KvZLMD25wrDVGgXfwDVJdG4qm2ywt7x1AafbEgy2m958NWeeHcg6HCdY4vYZLkikhYMFT
7HeD6sLLqAnKVRuSfc1Ko3BSPMNKWgGTiWLKXJF31vKM
9LxMdvs1m8QRFvFuhvzzMXykAkpaHTJhktULdpBztUMm
7YoMjEFGiEcMhYPoksbPP3fdtvpUenYYixdX9TgXz1AY
Run it yourself

Follow the Bloom drain in plain English

Every transfer in this story comes from Bitquery's Solana 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 Solana dataset.

Watch the wallet holding the 9,408.21 SOLTrace where any Solana wallet's money came from and wentCheck an address against Bitquery's labelsRun your own SQL over Solana transfers
Explore Bitquery MCP →Solana transfers from Bitquery, checked against a public Solana node. Data read on 26 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 trading bot, protocol, exchange or service.

The findings describe transactions and balances observed on Solana between December 2024 and 26 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 Bloom, Inside Calls, Onchain Lens, Coin Bureau, FOMO 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. 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 Bloom hacked?

Bloom's users were. On 26 October someone used the private keys of 48 wallets, all used with the Bloom trading bot, to take 9,408 SOL. Bloom says it is investigating whether a third-party provider was compromised. The cause has not been confirmed.

How much was stolen from Bloom trading bot users?

Bloom trading bot users lost 9,408 SOL in the drain, worth about $953,000 at the time. It came from 48 wallets, and those wallets belong to nine traders, each of whom lost a large balance.

Is the Bloom trading bot safe to use?

Trading on Bloom stopped a few hours after the drain, and Bloom has not said what caused it. What the record shows is that any wallet whose key a bot holds can be emptied by whoever gets those keys, including wallets that have not traded in over a year.

Where did the stolen SOL go?

Almost all of it went to one new wallet, 6nYyCz…moe9, a few hours after the drain. It had not sent anything when we last checked, and no exchange or bridge has touched it.

Will Bloom refund the victims?

Bloom said on X that it will fully repay the nine affected wallets, sending the money to new wallets their owners choose, and that no relief fund is needed.

Why did the attacker not take USDC?

We do not know. The script moved only SOL. It later tried to move USDC from one wallet holding about $49,000, but the owner moved the money out first.