Notice: Editorial analysis that does not constitute financial advice or a recommendation regarding any asset. The on-chain figures in this article come from two proprietary frozen readings: one from Oct-21-2026 at 14:32 UTC and another from Oct-26-2026 at 21:37 UTC. Figures attributed to specific addresses belong to third parties (Arkham, Onchain Lens, Lookonchain, PeckShield, PublicAML) and are always accompanied by their source and publication date: CleanSky does not attribute any deposit to any actor. No addresses are published. CleanSky does not receive commissions or referral payments from any of the mentioned protocols.

On Oct-19-2026, not a single deposit entered the Tornado Cash 100 ETH pool: zero during the 24 hours of that day. At 07:00 UTC the following day, 122 entered in one hour, and 108 more in the next. Between 00:00 UTC on Oct-20 and 14:32 UTC on Oct-21 —38.53 hours— that pool (each Tornado pool accepts deposits of a single fixed size; the 100 ETH one is the largest of the four ether pools) recorded 566 deposits against 59 withdrawals, and 478 of those 566 fell within four hours: the 07:00 to 09:00 UTC windows of both days. Before that, the protocol had been emptying for 74 days: from Aug-07 to Oct-20, the four ETH pools lost a net 19,999.8 ETH, or 7.31%. Five days after the burst, the ether remains inside: 283,200 ETH in the 100 pool on Oct-26, 6,700 more than at the close of the burst, with the inflow rate 22 times slower. This article tracks that clock segment by segment, quantifies how much of those 38 hours has a public name —77.19%, according to traces published by tracker Onchain Lens on Oct-21— and records the dates when the readings can be verified.

What did the Tornado Cash balance show in the 74 days prior to the burst?

On Aug-07-2026, the four Tornado Cash ether pools (0.1 ETH, 1, 10, and 100) held 273,595.7 ETH. On Oct-20-2026 at 00:00 UTC, they held 253,595.9. Between those two readings, 148,920.8 ETH entered via 21,371 deposits and 168,920.6 left via 20,597 withdrawals: a net loss of 19,999.8 ETH, or 7.31% (CleanSky calculation based on on-chain readings frozen on Oct-21).

The drain has a single origin. Between Aug-07 and Oct-20-2026, the Tornado Cash 100 ETH pool received 1,085 deposits and paid out 1,310 withdrawals: a net outflow of 22,500 ETH. The three smaller pools did the opposite, with a net inflow of 2,500.2 ETH distributed among them. The outflow from that single denomination is equivalent to 112.5% of the protocol's net loss: the three smaller ones offset the difference.

On-chain Reading (UTC)0.1 ETH Pool1 ETH Pool10 ETH Pool100 ETH PoolTotal ETH
Aug-07-2026, 00:00588.73,897.020,810248,300273,595.7
Oct-14-2026, 00:00621.84,246.022,790231,500259,157.8
Oct-20-2026, 00:00626.94,309.022,860225,800253,595.9
Oct-21-2026, 00:00628.84,283.022,980252,200280,091.8
Oct-21-2026, 14:32 (stamp)629.04,276.023,070276,500304,475.0
Oct-26-2026, 21:37 (control)633.24,342.023,910283,200312,085.2

In dollars, the same window reads in reverse. DefiLlama, the aggregator that publishes the TVL (total value locked) for Tornado Cash on the Ethereum chain, showed 533.31 million dollars on Aug-07 and 621.40 million on Oct-20: an increase of 16.5%.

How are Tornado Cash deposits counted without reading its event log?

Each Tornado Cash pool maintains two things that can be queried in any past block. The first is the contract's ether balance. The second is nextIndex(), the position of the next free leaf in the Merkle tree where commitments are recorded: a counter that only goes up and is equivalent to the number of deposits accumulated since deployment.

It works like a turnstile counter at a box office. The turnstile (nextIndex) tells you how many people have entered in total and never resets; the cash register (the balance) tells you how much money remains inside. With a fixed entry price —100 ETH, or 10, or 1, or 0.1— withdrawals are easily calculated: withdrawals = new deposits minus the change in balance divided by the denomination. The limit of this mapping should be stated upfront: the turnstile counts entries, not people. This measurement shows how many notes entered and left, and nothing about who placed them.

The quality control for this calculation is arithmetic: if the count is correct, the number of withdrawals results in a non-negative integer for each pool and each segment, because the pools only accept and return exact multiples of their denomination. In the Oct-21 reading, all 24 pool × segment pairs resulted in integers; in the Oct-26 control, all 28 did. The balance of the 100 pool on the day of the stamp, 276,500 ETH, represents exactly 2,765 active notes: each deposit generates a "note," the secret used for later withdrawal.

One gap remains in the measurement. The natural redundant verification would be to download the Deposit logs for the 100 pool during the burst window and verify they total 566. This could not be done in either attempt, on Oct-21 or Oct-26: none of the free providers tested served that query in that range, due to free plan rejections, archive node token requirements, 50-block query limits, and serial usage errors on the explorer. Redundancy comes via two paths that could be measured: the hour-by-hour profile of the counter adds up to 566 on its own, without using the difference between endpoints, and the proprietary count for the 07:00 to 10:00 UTC window on Oct-20 yields 25,820 gross ETH compared to the 25,700 from public traces of that same batch, a 0.46% difference.

During which hours did the 566 deposits of the Tornado Cash burst occur?

On Oct-19-2026, none occurred: the 24 hours of the day show zero deposits in the 100 ETH pool and zero in the 10 ETH pool. This aligns with what Decrypt published on Oct-20, stating that the addresses it tracks had been inactive for "about two months" before moving. Oct-20 begins with a trickle —1 deposit between 00:00 and 01:00 UTC, 1 more in the following hour, 5 and 6 in the next two— followed by three hours at zero, from 04:00 to 07:00. The burst starts abruptly at 07:00.

The hourly profile was measured by querying the counter at the first block of each hour: 62 hourly slots between 00:00 UTC on the 19th and 14:00 UTC on the 21st. These are the ones with significant activity in the 100 pool.

Time Slot (UTC, 2026)100 ETH Deposits10 ETH DepositsGross ETH
Oct-20, 00:00-04:00 (initial trickle)1351,350
Oct-20, 07:00-08:00122012,200
Oct-20, 08:00-09:00108110,810
Oct-20, 09:00-10:002812,810
Oct-20, 10:00-11:002072,070
Oct-21, 07:00-08:00144314,430
Oct-21, 08:00-09:00104810,480
Total Burst (38.53 h)56610657,660

The four slots from 07:00 to 09:00 UTC across the two days account for 478 of the 566 deposits, or 84.45%. The peak in a single hour was 144, on Oct-21 between 07:00 and 08:00. Only six of the 38.53 hours in the window reached 20 or more 100 ETH deposits; the others ranged between 0 and 6.

In net terms, the burst injected 50,879.1 ETH into the four pools: 20.06% of the balance the protocol had started with on Oct-20, and 126.76 million dollars at the stamp price ($2,491.32 per ether). The breakdown by denomination: +50,700 ETH in the 100 pool, +210 in the 10 pool, −33 in the 1 pool, and +2.1 in the 0.1 pool.

PublicAML published a count on Oct-05-2026 of 18,391 ETH arriving at Tornado Cash from nine theft incidents between July 1 and September 30, expressly warning that this figure is not the protocol's total flow for the quarter. The 56,600 gross ETH that entered the 100 pool in 38.53 hours is 3.08 times that quarterly count.

How much of the Tornado Cash burst has a public name?

The burst received coverage the same day and was attributed by third parties. Decrypt published on Oct-20-2026 that approximately 25,700 ETH —about 61.56 million dollars— were deposited "over about two hours," "in batches of 100 ETH, worth about $237,800 each, plus smaller 10 ETH fragments," using data from the Arkham analysis platform, and noted that Drift Protocol, the Solana perpetuals exchange drained in April, attributed the attack in June to the group identified by forensic firm Mandiant as UNC6862. Tracker Lookonchain gave the same figure for the same window, reported by crypto.news the following day. That same outlet published the numbers from Onchain Lens, another on-chain movement tracker, on Oct-21 at 11:59 UTC: 25,710 ETH on Oct-20 and 18,800 on Oct-21, 44,510 ETH in total, approximately 109 million dollars. When compared against the on-chain counter, these figures provide a percentage for the portion of the burst that has a name.

Window (UTC, 2026)Gross ETH (on-chain counter, CleanSky)Attributed ETH (trackers)Attributed Share
Oct-20, 07:00-10:0025,82025,700 (Arkham via Decrypt, Oct-20; Lookonchain via crypto.news, Oct-21)99.54%
Oct-20, full day30,98025,710 (Onchain Lens via crypto.news, Oct-21)82.99%
Oct-21, until 14:3226,68018,800 (Onchain Lens via crypto.news, Oct-21)70.46%
Full Burst (38.53 h)57,66044,510 (Onchain Lens via crypto.news, Oct-21)77.19%

In the three-hour window on Oct-20, the attributed and measured figures match almost perfectly: the public figure covers 99.54% of the gross ether that entered, with a 120 ETH difference, or 0.46%. Over the full 38.53 hours, the 44,510 ETH attributed by Onchain Lens covers 77.19% of the 57,660 gross ETH that entered the Tornado Cash 100 and 10 pools. The remaining 13,150 ETH are deposits for which none of the public traces collected in this article provide an origin: an upper bound of the unattributed portion, and nothing more. These could be ordinary users of the protocol, or the same flow using addresses that trackers had not labeled by Oct-21.

There are other public attributions in those weeks, none of which fall within the burst. Security firm Salus attributed 1,255.8 ETH across 30 transactions —12 of 100 ETH, 5 of 10, 5 of 1, and 8 of 0.1— to the Aztec Connect exploiter, dating them to Oct-19 in a notice published at 07:58 on Oct-20 Beijing time; the 100 pool counter shows zero deposits for the entire day of Oct-19 UTC, so those transactions fall outside the measured window and the date discrepancy remains unresolved. The same firm attributed 4,970 ETH —49 deposits of 100 and 7 of 10— to the Triple-A exploiter in a notice from Oct-10: this does fall within the 74 days of net outflow, which was not a period without attributed deposits but rather one where withdrawals outweighed them.

Sources also disagree with each other: 25,700 ETH according to Arkham via Decrypt versus 25,710 according to Onchain Lens via crypto.news for the same Oct-20 batch; and 81,454 ETH remaining across 71 addresses in the Arkham reading cited by Decrypt on Oct-20 versus 56,569 in the one cited by crypto.news on Oct-21. There is one more attribution from the same week: security firm PeckShield published, via ChainCatcher, 821.2 ETH —about 1.89 million dollars— from the X100 exploiter, at 22:59 on Oct-26 Beijing time, which is 14:59 UTC. This is prior to the close of the control reading, so if the attribution is correct, that ether is already counted within the Oct-26 figures; it is not added separately because it is a third-party attribution and not a proprietary measurement.

While the 44,510 ETH attributed by Onchain Lens to the April exploiter —the attack we analyzed step-by-step at the time— were entering the mixer, creditors of the attacked protocol were being paid in the Drift recovery pool at a rate of 0.010417 USDT per DFX token, 1.04% of what that token claims.

Does the ether remain in the Tornado Cash 100 ETH pool five days after the peak?

For the Tornado Cash ether pools, three thresholds were set on Oct-21-2026 before measuring again: if the 100 pool fell below 252,200 ETH (its level at 00:00 UTC that day), what entered had already left and the correct verb would change from "entering" to "passing through"; if more than 20,000 net ETH entered after the stamp, the October event was a protocol level shift rather than a burst; and the arithmetic reconciliation had to continue yielding integers. The control was executed on Oct-26-2026 at 21:37 UTC, with five intermediate daily marks.

CheckThreshold set on Oct-21-2026 (Tornado Cash, ETH pools)Measured on Oct-26-2026Result
Did it enter or just pass through the 100 pool?below 252,200 ETH = left283,200 ETHdoes not fall: remains inside
Burst or level shift?more than 20,000 net ETH = level shift+7,610.2 ETH in 127.08 hremains a burst
Does withdrawal arithmetic match?integer and non-negative in each pool and segment28 of 28 pairsmatches
Reading (UTC, 2026)100 ETH PoolNet for the four pools in segment
Oct-21, 14:32 (burst stamp)276,500—
Oct-22, 00:00277,900+1,301.3
Oct-23, 00:00281,600+4,188.8
Oct-24, 00:00284,300+2,950.6
Oct-25, 00:00284,800+453.0
Oct-26, 00:00284,000−834.3
Oct-26, 21:37 (control)283,200−449.2

The cumulative total since the stamp is 218 deposits and 151 withdrawals in the 100 pool —an additional 6,700 net ETH— and +7,610.2 ETH across the four pools combined. The inflow rate into the Tornado Cash pools changed scale: 59.9 net ETH per hour in the five subsequent days compared to 1,320.4 per hour during the 38.53 hours of the burst, 22 times slower. In 100 ETH deposits per day: 41.2 versus 352.5. And the last two measured segments are negative, the first since the burst began.

The total for the four pools in the Oct-26 reading is 312,085.2 ETH, 2.5% above the Oct-21 stamp and 23.06% above the Oct-20 level (CleanSky calculation based on the two readings).

Why did the dollar value of Tornado Cash show the opposite sign twice in fifteen days?

For Tornado Cash TVL on Ethereum according to DefiLlama, from Aug-07 to Oct-20-2026, dollars rose 16.5% while units fell 7.31%, with ether appreciating 26.2%. From Oct-22 to Oct-26, the opposite happened: TVL in dollars on the Ethereum chain fell from 771.89 to 736.11 million, a −4.63% drop, while units in the same series rose from 305,776.2 to 311,911.5 — a +2.01% increase, with ether falling 7.17% between the two stamps (from $2,491.32 to $2,312.77). It is the same artifact twice, in opposite directions and within the same fortnight: a series denominated in dollars for a pool that only holds one currency measures price as much as it measures flow, and when the two forces move in different directions, the larger one wins.

Two perimeter notices. DefiLlama labels the pool contents as WETH (ether wrapped in an ERC-20 token), yet the contracts hold native ether: its two readings for Oct-26 are 173.7 ETH apart (311,911.5 at 20:18 UTC versus 312,085.2 on-chain at 21:37), and the figures in this article are always the on-chain balance. Furthermore, the weekly variation that circulated during the peak days, "+16.6%," does not measure the same thing as the +17.32% from Oct-14 to Oct-21: it aggregates all chains over seven rolling days, not just Ethereum between two fixed dates.

Did the money move to Railgun and Privacy Pools, the pools with proof of innocence?

If the October event were a general demand for privacy on Ethereum rather than a specific flow, pools that require proof of origin should have noticed it.

Protocol and Series SourceOct-20-2026Oct-26-2026Variation
Tornado Cash, four ETH pools (on-chain reading)253,595.9 ETH312,085.2 ETH+23.06%
Railgun, WETH on Ethereum20,380.0920,462.22+0.40%
Privacy Pools, WETH on Ethereum789.99711.24−9.97%

Railgun and Privacy Pools: last reading from DefiLlama series on Oct-26-2026 (20:20 and 20:58 UTC). Tornado Cash: on-chain balance at 21:37 UTC. All three Oct-20 columns are from the 00:00 UTC point.

Railgun remained flat and Privacy Pools lost 9.97% of its ether in the same week that Tornado rose 23.06% in units. The first two require, in different ways, that the depositor prove the origin of their funds or accept a filtered anonymity set; the third asks for nothing, and the ether that week went to the one that asks for nothing. This is the tension facing the Ethereum Foundation's institutional privacy plan and privacy stablecoins with zero-knowledge proofs. Zama, which DefiLlama also classifies under privacy, is excluded from the comparison: they are confidential wrappers for ERC-20 tokens, not a mixing pool with fixed denominations.

What does the Roman Storm docket say about the trial that did not start on October 26?

Tornado Cash was removed from the SDN list (Specially Designated Nationals, the U.S. Treasury's registry of sanctioned entities) on March 21, 2025: "sanctioned" ceased to be accurate that day and remains the most repeated error regarding the protocol, including in our crypto privacy and security guide, which should be read with this correction applied. What follows are dates: this article asserts no relationship between them and the deposits.

The proceedings against Roman Storm, a Tornado Cash developer, are ongoing in the Southern District of New York before Judge Katherine Polk Failla. Entry 300 of the docket, signed on Aug-25-2026, postpones the new trial to April 26, 2027, with the final conference on April 20, motions on March 30, and responses on April 9. The date that new trial held before the postponement is noted in the title of entry 298, dated August 3: it was Oct-26-2026. The burst began six days before that date.

The four docket entries that the first reading left without text were read on Oct-26. Entries 305 and 306 are an exchange of letters between the prosecution and defense regarding supplemental authority on territorial jurisdiction, dated October 5 and 9. Entries 307 and 308 concern the departure of an assistant prosecutor from the case: his letter dated October 16 and the judge's approval the same day, docketed on the 19th —"Motion GRANTED... the Clerk is directed to terminate Mr. Rehn from the docket"—. None of the four affect the schedule. According to the RECAP copy consulted on Oct-26-2026 at 21:53 UTC, the docket records no activity since October 19, and October 26 passed without a new entry.

Which three dates will determine if the October Tornado Cash event was a burst or a regime change?

These are the three dates on which CleanSky will re-execute the measurement, with the threshold written before measuring again:

  1. Nov-02-2026. Re-execution of the control over the four pools. If the 100 ETH pool falls below 276,500 ETH —the level at which the burst closed on Oct-21— the verb in this article changes: the ether will have passed through the mixer and left, and the five-day stay will have been just a delay.
  2. Dec-01-2026. If between Oct-26 and that date more than 20,000 net ETH enter without a publicly attributed incident to explain them, the October event will not have been a named burst: it will be the protocol's new normal flow, and the framing of this piece will have fallen short.
  3. Apr-26-2027. Date of the new Roman Storm trial according to entry 300. Any docket entry that moves it —forward or backward— requires an update to the final section.

What the measurement maintains is narrow and can be replicated from any public node: 19,999.8 ETH outflow in 74 days, a full day at zero, 566 deposits of 100 ETH in 38.53 hours, 77.19% of that ether with public third-party attribution, and 283,200 ETH that remained inside five days later. To whom that money belongs and why it moved that morning does not come from a Merkle tree counter, and this article does not say.

Sources and links: DefiLlama · Tornado Cash · DefiLlama · Railgun · DefiLlama · Privacy Pools · OFAC · Tornado Cash removal from SDN list (Mar-21-2025) · CourtListener · United States v. Storm, docket 1:23-cr-00430 (S.D.N.Y.) · Entry 300 · postponement to Apr-26-2027 · Decrypt (Oct-20-2026) · crypto.news (Oct-21-2026) · PublicAML · Tornado Cash Q3 2026 · ChainCatcher · Salus on Aztec Connect exploiter (Oct-20-2026) · ChainCatcher · PeckShield on X100 exploiter (Oct-26-2026) · The Block (Aug-26-2026)