On-chain investigationCoinDCX21 October 2026

A thief took $15.99M from 40 CoinDCX wallets. CoinDCX was still using them that morning

Forty wallets, one new address and $16 million in USDT. We read the public record of every wallet involved, back to 2023, and traced the stolen USDT to where it sits now.

Live story. We read the balances at 12:15 UTC on 22 October. We will add dated lines here if the money moves or the exchange says more.
At a glance
On 21 October a thief emptied 40 TRON wallets tied to CoinDCX, one of India's biggest crypto exchanges, and took 15.99M USDT. CoinDCX says these were old addresses it stopped using after a hack in July 2025. The chain says otherwise. The exchange's own system was moving customer deposits through the same wallets that morning, and kept doing so after the theft. Almost all the money, $15.82M, came from a single address where 88 deposits had sat unmoved since March. Within a day, about $9.63M reached OKX, Binance and Gate.
$15.99M
USDT taken from 40 CoinDCX wallets
5 min
Between the last routine move and the thief's first
$15.82M
From one address left untouched since March
$2.28M
Still in thief wallets, not frozen
Key findingsEach line has its own share link
  1. $15.99M

    Taken from 40 CoinDCX wallets on TRON on 21 October. The exchange says they were old addresses it stopped using after July 2025.

  2. 5 minutes

    Between the exchange's last routine move through one of the wallets (12:14 UTC) and the thief's first move (12:19 UTC).

  3. 276

    Fee top-ups sent by the drained hot wallet TFLx… since August. Each one was followed by a deposit move.

  4. $15.82M

    Came from a single address holding 88 deposits from one depositor. None of them had ever been moved on.

  5. $9.63M

    Reached OKX, Binance and Gate within 18 hours of the main transfer, through six wallets in between.

  6. $2.28M

    Still sits in seven wallets on the thief's side at 12:15 UTC on 22 October. Tether has frozen none of it.

01 · What happenedCoinDCX wallets were emptied, and the exchange called them old

On the evening of 21 October, about $16 million left wallets belonging to CoinDCX. CoinDCX is one of India's biggest crypto exchanges. The money went to one new address. Within hours it was split up and sent on to other exchanges.

The coins were USDT, the dollar stablecoin, on TRON, the blockchain most exchanges use to move USDT cheaply. Darcy, who works at the security firm Salus, was first to flag the transfers, in a post early the next morning. CoinDCX replied that users' funds were safe and that the wallets were old addresses, created in January 2025 and compromised in its July 2025 hack. They "have not been used by CoinDCX since", it added. Co-founder Sumit Gupta added that none of the exchange's current addresses had sent money to them.

Bitquery reads TRON's full public record, so we tested that claim wallet by wallet. It does not hold up. The exchange's own system was moving customer deposits through the drained wallets on the morning of the theft. CoinDCX's treasury had been refilling one of them all year. We also traced where the money came from and where it went. What the record cannot show is how the thief got the keys.

02 · How a deposit movesDeposit addresses, hot wallets and the fee that moves them

When you send USDT to CoinDCX, the app gives you a deposit address of your own. A program the exchange runs, usually called a sweeper, watches all of those addresses. When a deposit lands, it moves the coins into a hot wallet, the wallet the exchange uses for day-to-day payments. Exchanges keep most of their money offline in cold wallets, also known as treasury wallets. They top up the hot wallets from there.

On TRON, each USDT transfer costs a small fee, which crypto people call gas. It is paid in TRX, TRON's own coin. A fresh deposit address holds no TRX, so before each move CoinDCX sent it 15 TRX from a hot wallet whose address starts with TFLx.

How CoinDCX's deposit system ran in 2026the TRON wallets behind every USDT deposit
THE TRON DEPOSIT LOOP IN 2026 · RED = WALLETS THE THIEF EMPTIEDCustomersends USDT to theirown deposit addressDeposit addressesone per customer36 were emptiedHot wallet TU7Bb…collects every depositTreasury walletsTU1Giq…, TQTKnU…,TQTKhx…moved within~30 seconds$29.94Msince Nov 2025Hot wallet TFLx…pays the gas thateach move costs14,519 TRXApr–Aug 202615 TRX, 769 timesin 2026Gas is the TRX a TRON wallet must pay to send USDT. Without it, a deposit address cannot move its coins.
Each customer gets a deposit address. The exchange moves every deposit into its hot wallet within seconds, and pays the small TRX fee for that move from a second hot wallet. The treasury keeps that second wallet topped up. The thief emptied the wallets drawn in red.

A deposit address only moves money when someone with its private key tells it to. So if the exchange's sweeper was still moving deposits through these addresses in October, CoinDCX still held the keys and was still using them. The full TRON record behind this check, block by block, is open through Bitquery's TRON API.

03 · The night of 21 OctoberFive minutes between CoinDCX's last move and the thief's first

That morning the hot wallet that collects deposits, TU7Bb, passed a batch of them on to a treasury wallet. Just after noon UTC, TFLx sent its usual 15 TRX to one of the deposit addresses. Seconds later that address moved its deposit into the collecting wallet.

Five minutes later the same wallet, TFLx, paid 100 TRX into a brand-new address. That was the thief's first move. Over the next half hour TFLx sent the new address all its USDT and all its TRX. That TRX paid for each deposit move.

Two hands on the same wallets21 October 2026, in UTC
21 OCTOBER 2026 (UTC) · WHO MOVED WHATCoinDCXThief07:01Hot wallet TU7Bb… pays treasury TU1Giq…12:13Last routine 15 TRX gas top-up from TFLx…12:14TMRgWC… deposit moved into TU7Bb…12:19TFLx… funds new address TAg6SZ… (100 TRX)12:33TFLx… sends 9,361 USDT12:46TFLx… sends 5,684 TRX15:00First of 35 deposit addresses emptied15:17Last of the 35 emptied15:3480 TRX passed on to TU7Bb… (sweep or test?)15:3515,819,002 USDT leaves TQKJQr…20:55Sibling deposit TF9MqT… moved into TU7Bb…5 minutes apartTeal = the usual deposit and gas moves. Red = transfers into the thief's address. Grey = could be either.
Teal dots are the exchange's routine moves. Red dots are the thief's. The grey dot could be either.

The thief tested with small amounts through the afternoon, then emptied 35 deposit addresses, one after another, into the new address. About 20 minutes later the big one followed, 15.8 million USDT from a single deposit address, TQKJQr.

CoinDCX's own system kept running. More than five hours after the theft, it moved a small deposit from a second address into the collecting wallet. It had done the same all year.

The thief also held the keys to two older wallets of the exchange. One was a hot wallet that went quiet in October 2023. The other was funded by a CoinDCX cold wallet earlier that year. So the thief held keys the exchange had retired long ago as well as keys it used every day. That points to access to a whole store of keys.

04 · Still in useThe exchange moved deposits through these wallets until the day of the theft

CoinDCX's statement says these addresses fell out of use after the July hack. The record shows the opposite.

Start with the deposit addresses. All 35 small deposit addresses the thief emptied had a deposit moved out by the exchange after 1 September. For 22 of them it happened in the final week. Their money went into TU7Bb, the hot wallet that collects deposits, and on into the treasury.

CoinDCX was still using the drained addresseslast move out of each drained deposit address
LAST DEPOSIT MOVED OUT OF EACH DRAINED ADDRESS · 36 ADDRESSESJul 2025Oct 2025Jan 2026Apr 2026Jul 2026Oct 202619 Jul 2025: the $44M hack21 Oct: theftTQKJQr…, 4 MayEach dot is one deposit address the thief emptied. A move means the exchange swept a customer deposit into its hot wallet.
Every one of the 35 small deposit addresses the thief emptied had a deposit moved out by the exchange after 1 September 2026. Nine of them were moved on the day before the theft.

The fee wallet points the same way. TFLx kept sending 15 TRX top-ups every month after the July hack, apart from two gaps. Since August it sent 276 of them. Each one was followed by a deposit move into the collecting wallet, usually within half a minute. That is a program at work, and the money it moved landed in CoinDCX's hot wallet.

The fee wallet never stopped working15 TRX top-ups sent by hot wallet TFLx…, per month
15 TRX GAS TOP-UPS SENT BY TFLx…, PER MONTH08001,6002,4001,726Jul20251,340Aug2,206Sep712Oct717Nov579Dec195Jan20260Feb0Mar140Apr135May23Jun0Jul2026104Aug116Sep56Octno top-ups:TFLx… ran dryhack monthOctober 2026 runs to 12:13 UTC on 21 October, the last routine top-up before the theft.
A top-up is the 15 TRX that lets a deposit address pay to move its USDT. TFLx… kept sending them after the July 2025 hack, apart from February, March and July 2026.

The treasury wallets point the same way. They kept the fee wallet topped up with TRX this spring and summer. Last year one of them also sent TFLx more than $27M in USDT. Bitquery's address labels mark these as CoinDCX wallets, and they were moving money on the day of the theft. Gupta's point was that no current address had paid these old ones. These payments say otherwise.

05 · The $15.82 millionOne deposit address held 99% of what was taken

Almost all the money came from TQKJQr. It belonged to one big depositor. ZachXBT says it was a liquidity provider. Over 14 months that depositor paid in more than $100M. CoinDCX moved each deposit on within a minute, $85M of it in all. The sweeper was thorough. In May it even passed on four tiny transfers from a look-alike address, the calling card of address poisoning scams.

Then the moves stopped for one stretch. The 88 deposits that arrived from late January to the end of March were never moved. Together they come to exactly the amount the thief took from this address. To the cent.

The $15.82 million that CoinDCX never moveddeposit address TQKJQr…, per month
TQKJQr…: DEPOSITS IN AND DEPOSITS MOVED ON, PER MONTH (USDT)DepositedMoved onLeft in the address$0M$6M$12M$18MMar2025AprMayJunJulAugSepOctNovDecJan2026FebMarAprMayJunJulAugSepOctnot moved$15.82M taken 21 OctDeposits are from the one depositor that used this address. Moves are transfers to the collecting hot wallet.
For ten months, the exchange moved each deposit on within a minute. Deposits that landed between 29 January and 30 March 2026 stayed put, and the pile sat there until the thief took it.

Why those deposits stayed there is not clear from the record. In those same weeks TFLx sent no top-ups at all, until the treasury refilled it on 1 April. But TQKJQr held enough TRX of its own to pay for a move. And on 11 March CoinDCX swept 518 other deposit addresses in six minutes and left this one, which by then held more than $9 million. When top-ups came back, each new deposit was moved on within a minute. The old pile stayed exactly where it was until the thief came for it in October.

There are two ways to read that. If the exchange had credited those deposits to the depositor, the theft cost it the money. If it had not, a customer's deposits went uncredited for months. Only its books can say which.

06 · Where the money wentOKX, Binance and Gate within a day

The thief started moving the money in the early evening, UTC. Over the next ten hours the new address split it across six wallets, four of them brand new, and from there it fanned out. The first deposit at Binance landed half an hour later, and by the next morning $9.63M had reached deposit addresses at OKX, Binance and Gate.

Where the money came from, and where it wentUSDT, 21–22 October 2026
WHERE THE 15.99M USDT CAME FROM AND WHERE IT WENT · BAND WIDTH = AMOUNTDeposit address TQKJQr…$15.82M35 more deposit addresses$161kTwo hot wallets, TFLx… and TM5r1b…$10kTwo older wallets$1kThief's addressTAg6SZ…15.99Mnew on 21 Oct,split into sixwalletsOKX$5.46MBusy wallets, owners unknown$4.13MBinance (net)$2.61MStill in thief wallets$2.28MGate$1.39MBridges out of TRON$110kBinance is shown net: it paid 158,728.50 USDT back to a thief wallet, which sent it on again.
The width of each band shows the amount. The thief split the money across six wallets before it reached the places on the right.
WhereHow it got thereUSDT
OKXTwo OKX deposit addresses, TMLWVq…oQQF (via a busy wallet) and TTQgHQ…tS395,461,300
BinanceBinance deposit addresses THkMta…iYyA and TF6tAo…yoeu; 158,728.50 USDT came back out2,772,797
GateGate wallet TBA6Cy…SqPt, four transfers1,392,200

Binance sent about 159,000 USDT back out to one of the thief's wallets, which looks like a withdrawal from the account the thief had just paid into. Exchange accounts come with names and IDs, so these deposits are where investigators can reach a person.

Another $4.1M went into busy wallets that hundreds of other people pay into, most of it to a single wallet. We could not tell who runs them. A little over $100k left TRON through the USDT0 and Bridgers bridges.

Where the stolen USDT sits nowshare of 15.99M USDT at 12:15 UTC on 22 October
WHERE THE 15.99M USDT WAS AT 12:15 UTC ON 22 OCTOBEROKXBusy walletsBinanceThief walletsGate34% OKX ($5.46M)26% Busy wallets, owners unknown ($4.13M)16% Binance (net) ($2.61M)14% Still in thief wallets ($2.28M)9% Gate ($1.39M)1% Bridges out of TRON ($110k)OKX, Binance and Gate are exchanges. They can see who owns the accounts the money reached.
Busy wallets are addresses that hundreds of people pay into. We could not name their owners.

At the time of writing, $2.28M was still sitting in seven wallets on the thief's side. Around noon UTC on 22 October the thief moved three of those balances to three new wallets. None of it went to an exchange. Tether, the company that issues USDT, can freeze USDT on any TRON address, and it froze millions within hours in the Ledger CryptoBilis theft. It had frozen none of these.

07 · The claimsWhat the record says about each claim

Here is each public claim set against the chain. The posts are CoinDCX's statement, Gupta's reply, Darcy's follow-up and ZachXBT's reply to CoinDCX.

The wallets' age is the easiest claim to test. CoinDCX says they were created in January 2025. Most were in use long before that, and none started that month. Three deposit addresses got their first deposit after the July 2025 hack, and CoinDCX swept them like any other.

The drained wallets were not new in 2025first use of each drained wallet
FIRST USE OF EACH DRAINED WALLET · 40 WALLETS2023202420252026Jan 2025: the month CoinDCXsays they were created (0)19 Jul 2025 hackFirst used before the July 2025 hackFirst used after itFirst use = first USDT or TRX transfer of at least 1 coin into the wallet.
26 of the 40 drained wallets were in use before 2025, the oldest since 2022. None was first used in January 2025. Three got their first deposit after the July 2025 hack.
ClaimWhat the record showsVerdict
Statement: the addresses "have not been used by CoinDCX since" July 2025The exchange moved customer deposits out of all 35 small drained addresses between 1 September and 21 October 2026, and sent the money on to its treasury.Not true
Statement: the addresses were created in January 2025The hot wallet TFLx… was first funded in October 2023. 26 of the 40 drained wallets were in use before 2025, and none started in January 2025.Not true
Gupta: no current address sent money to these old addressesTreasury wallets sent 14,519 TRX to TFLx… between April and August 2026.Not true
Statement: the addresses were compromised in July 2025No theft from them shows up in July 2025, and $15.82M sat in one of them for seven months untouched.Not supported
Statement: users' funds are safeThe drained money sat in the exchange's deposit addresses. Whether it had been credited to users is not visible on chain.Open
Darcy: TFLx… kept handing out 15 TRX after the hackIt sent 276 of them from August to the morning of the theft, and each was followed by a deposit move.True
Darcy: Binance got 2,020,943 USDT, Gate 1,392,199We count 2,020,943 and 1,392,200 on those routes. Another 761,854 reached a third Binance deposit address at 09:35 UTC.True
ZachXBT: TQKJQr… was in use for 10 months after July 2025Deposits were moved out of it until 4 May 2026. The 88 deposits left behind add up to the stolen amount.True

Darcy's follow-up also asked whether CoinDCX had taken its users' money itself. Nothing in the record points that way. None of the stolen USDT went back to a CoinDCX wallet; it went through new wallets, in round amounts, to other exchanges, which is how thieves usually cash out.

08 · Is CoinDCX safe?What this means for CoinDCX users

CoinDCX says users' funds are safe and trading goes on as usual. The TRON record can neither confirm nor rule that out. The record shows wallets. Customer balances sit in the exchange's own books. We only checked TRON.

What the record does show is that keys to wallets the exchange was still using ended up with someone else. It also shows that CoinDCX's first answer did not match its own wallets' history. In July 2025 CoinDCX said it would cover a $44M loss from its treasury. This time it has not yet said whether the drained deposits were credited, or when it last used these keys. Both answers sit in its own records.

If you sent USDT on TRON to CoinDCX and it never showed up, contact the exchange's support team. Give them the transaction hash.

09 · How we traced itMethod and limits

We read every USDT and TRX transfer into and out of the thief's first address. For each wallet that paid it, we read its history back to 2023, and matched each fee top-up to the deposit move that followed it. We then followed the money forward, step by step, until it reached an exchange, a bridge, or a wallet that still holds it. A separate review checked each claim from scratch on a second copy of the data, and its corrections are in this version.

The transfers come from Bitquery's TRON data. The full history is also sold as files on the Bitquery Data Store, as TRON and TRON transfers datasets. Any wallet in this story can be followed with the Bitquery MCP, which lets you ask an AI assistant where a wallet's money went. We traced earlier thefts the same way, including the NGRAVE LIQUID theft and the Bitget hack, and followed a $110M laundering circuit that ran through the biggest exchanges.

Limits on these findings

Balances were read at 12:15 UTC on 22 October. The thief's wallets can move at any time.

The record shows which wallets moved money and when. It does not show who signed each transfer, how the keys were taken, or whether the exchange had credited the drained deposits to customer accounts.

We call a wallet CoinDCX's when Bitquery's address labels say so and its behaviour fits: deposit addresses that pass deposits to a CoinDCX hot wallet, and a hot wallet that pays CoinDCX treasury wallets. The treasury wallet TQTKhx… carries no label; we link it to CoinDCX through its transfers.

The 80 TRX passed on from TQKJQr… at 15:34:57 matches how the exchange's system handles TRX deposits on other addresses, but it could also have been a test by the thief. We do not lean on it.

Two of the first wallets the money reached were already in use before the theft: a Binance deposit address and a busy wallet with hundreds of senders. Their totals can mix stolen money with other money.

Busy wallets that took $4.13M have no labels and no memos, so we do not say who runs them.

We searched for Huione and Xinbi labels on about 100 wallets downstream and found none. That does not rule out a link further along.

10 · The addressesWhere to look

These are the main addresses in this story. All are on TRON.

RoleAddress
Thief's first addressTAg6SZ1HhgVVjUaKY1paQoFBUS2JFrg5bT
Deposit address that held $15.82MTQKJQrWok6fsBqZi3mkLkL6qX4YEgjqWUy
Hot wallet that paid the feesTFLxNHunhEizmeEdiMyA3r2XGLSKaEznGd
Hot wallet, idle since 2023TM5r1bNJ2TjZwfS757tPPtr84MwtEjL9qN
Hot wallet that collects depositsTU7BbAsb8t371eMijQeiGXsiLvY1vZbsFs
CoinDCX treasuryTU1GiqjrMuus4kDRD5VQgAXRNUH1D2Whod
CoinDCX treasuryTQTKnUuM6uJSM6gL5hA5JcGxRVgitNQtNh
Depositor of the $15.82MTSC5MzYDNqtp3HDpqCNpTAs5pnT7wt4Hrd
Split wallet, took $7.14MTMJMTCvtPgMRQmLBYUTmdwfEozoveccUjq
Split wallet, took $4.00MTFaHkHcMGWLnnBCaGVpHBHufb1DNNHbadh
Split wallet, took $3.00MTUNxeav4BWVoFGGaE97ygHkKYdKLJTHkbU
Run it yourself

Follow the CoinDCX money in plain English

Every transfer in this story comes from Bitquery's TRON 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 TRON blocks and TRON transfers.

Watch the seven wallets that still hold the stolen USDTTrace where any TRON wallet's money came from and wentCheck an address against Bitquery's labelsRun your own SQL over TRON transfers
Explore Bitquery MCP →Figures measured on TRON from March 2025 to 22 October 2026. Balances read at 12:15 UTC on 22 October.
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, hold or withdraw any token or asset, or to use or avoid any exchange.

The findings describe transfers and balances observed on TRON between March 2025 and 22 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 CoinDCX, Binance, OKX, Gate, Tether or any other named 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 received the drained 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 CoinDCX hacked in October 2026?

On 21 October a thief took about $16M in USDT from CoinDCX wallets on TRON. CoinDCX says its wallets were not breached and that the drained addresses were old ones it stopped using after July 2025. The record shows the exchange's own system moving deposits through those wallets on the morning of the theft.

How much was stolen from CoinDCX?

About $16 million in USDT, plus a few thousand TRX. Almost all of it came from a single address holding deposits that had never been moved on.

Is CoinDCX safe?

CoinDCX says users' funds are safe and trading continues. The theft hit TRON wallets that the exchange was still using. CoinDCX has not said whether the drained deposits had been credited to the customer who made them.

Where did the stolen USDT go?

About 60% reached deposit addresses at OKX, Binance and Gate within a day. About a quarter went into busy wallets with unknown owners, and $2.28M was still in the thief's wallets at the time of writing.

Were these wallets compromised in the July 2025 CoinDCX hack?

CoinDCX says so. The record shows no theft from them at the time of that hack. The exchange kept moving deposits through them until the day of the theft, and the drained $15.8M sat in one of them for seven months first.

Can Tether freeze the stolen USDT?

Yes. Tether can freeze USDT on any TRON address. At the time of writing it had not frozen any of the wallets that held the stolen USDT.