Tornado Cash: from the August 2022 OFAC sanctions to the November 2025 Treasury reversal
The forty-month argument over whether a government can sanction code the way it sanctions a person. Pertsev, Van Loon, Roman Storm, and the November 2025 guidance that effectively rewound the original designation.
The Editors
Editorial desk
The day code went on the sanctions list
On August 8, 2022, the US Treasury's Office of Foreign Assets Control did something it had never done before. It added a set of Ethereum smart contract addresses to the Specially Designated Nationals list. Not a person, not a company, not a foundation or a wallet controlled by a known operator, but a deployed, immutable piece of software called Tornado Cash. From that morning forward, any US person who interacted with those contracts was, on paper, exposed to the same secondary sanctions regime used against arms traffickers and state sponsors of terrorism. The reasoning was that Tornado Cash had laundered, by Treasury's own count, more than seven billion dollars since 2019, including roughly 455 million dollars stolen by North Korea's Lazarus Group. The remedy was to treat the code itself as a sanctioned entity.
What followed was a forty month argument, conducted simultaneously in two federal courts, one Dutch criminal court, and the comment sections of every crypto policy blog with a pulse, over a question that had never required an answer before: can a government sanction software the way it sanctions a man.
What OFAC actually did
The original designation listed dozens of contract addresses and three associated domains. Within hours, the major US compliance stack moved. Circle froze roughly 75,000 USDC held by sanctioned addresses on the same day. GitHub disabled the repositories of Tornado Cash maintainers, including the personal account of Roman Semenov. Infura and Alchemy blocked RPC access to the contract addresses. Coinbase, which had quietly funded part of the Coin Center lawsuit that would later challenge the action, took a more careful posture, and several of its users became plaintiffs in the suit that eventually became Van Loon v. Treasury.
The practical effect on ordinary users was strange and large. Anyone who had ever deposited into Tornado Cash, even years before any North Korean hack, woke up on August 9 to find their wallets potentially exposed. A handful of pranksters sent small amounts of mixed ETH to celebrity addresses to test whether the sanctions could weaponize themselves through unsolicited transfers. They could not, in any prosecutable sense, but the chilling effect was immediate. Privacy on Ethereum, for the average person who had used the protocol for non-criminal reasons, became something you had to lawyer your way out of.
The Pertsev case
Two days after the SDN designation, on August 10, 2022, the Dutch Fiscal Information and Investigation Service arrested Alexey Pertsev at his home outside Amsterdam. Pertsev was one of the protocol's named developers and had been involved since the 2019 deployment. He spent most of the next twenty months in pre trial detention.
On April 27, 2024, the District Court of East Brabant in 's-Hertogenbosch convicted him of money laundering and sentenced him to five years and four months. The Dutch court's theory was important, and it is worth reading carefully, because it does not depend on US sanctions law at all. The court found that Pertsev had continued to maintain, update, and promote the protocol after it became clear that a substantial fraction of throughput was stolen funds, and that this active maintenance amounted to a money laundering operation under Dutch criminal code. The decision did not rule that writing the protocol was illegal. It ruled that running it once you knew was.
The American track
The American case took a different shape. Six Tornado Cash users, organized and partially funded by Coin Center and the Blockchain Association, sued Treasury in Texas. They lost at the district court. They appealed to the Fifth Circuit. On August 26, 2024, a three judge panel reversed.
The opinion, written by Judge Don Willett, did not reach the First Amendment question that the amicus briefs from EFF, a16z, Coin Center, and the Blockchain Association had pressed for years. Instead it ruled on the narrower and more devastating statutory ground that the International Emergency Economic Powers Act simply does not authorize what OFAC had done. The reason was definitional. IEEPA lets the President block "property" in which a foreign national has an interest. Tornado Cash's immutable smart contracts, the court found, are not property. They cannot be owned, transferred, or controlled by anyone, including their original deployers. As the panel put it, OFAC had reached past the statute's text and tried to sanction software directly "as opposed to the rogue persons and entities who abuse it."
What the court explicitly did not decide matters as much as what it did. It did not decide whether code is speech under the First Amendment. It did not decide whether Treasury could sanction an upgradeable smart contract, a multisig controlled protocol, or a DAO with a working governance token. It did not decide whether Roman Storm, then awaiting trial in SDNY on conspiracy charges, was criminally liable for writing the same code. The ruling was a clean statutory win on a narrow question, which is exactly the kind of ruling that survives en banc review and Supreme Court attention.
The delisting and the November 2025 guidance
OFAC took seven months to act on the ruling. On March 21, 2025, Treasury removed Tornado Cash from the SDN list and quietly noted it would continue monitoring transactions that might benefit malicious cyber actors. The delisting was not a confession of error. It was an administrative cleanup.
The real reversal came eight months later. On November 18, 2025, Treasury issued formal interpretive guidance stating that immutable smart contracts, defined as smart contracts whose code cannot be altered by any party, are not "property" within the meaning of IEEPA and therefore cannot be sanctioned as such. The guidance applies the Van Loon reasoning prospectively across all OFAC programs, not just the Tornado Cash file. It leaves untouched the agency's authority over upgradeable contracts, signing keys, frontends, deployer addresses, and any human actor associated with a protocol.
For code authors writing privacy software the change is meaningful. For users of any specific mixer it is much smaller. The Pertsev conviction stands in the Netherlands. The Roman Storm prosecution, which ended in a hung jury and a mistrial on August 7, 2025, can be retried, and the Department of Justice has signaled it intends to. Anyone using Tornado Cash today is still subject to bank secrecy reporting, suspicious activity flags from every major exchange, and the lingering social presumption that mixed ETH is dirty ETH.
Key dates
- August 8, 2022: OFAC adds Tornado Cash contract addresses to the SDN list
- August 10, 2022: Alexey Pertsev arrested in the Netherlands
- April 27, 2024: Pertsev convicted of money laundering by the District Court of East Brabant
- August 26, 2024: Fifth Circuit decides Van Loon v. Treasury
- March 21, 2025: OFAC removes Tornado Cash from the SDN list
- August 7, 2025: Roman Storm trial ends in mistrial in SDNY
- November 18, 2025: Treasury issues formal guidance that immutable smart contracts are not sanctionable property
What this changes for the Directory
Tornado Cash itself is not in our directory, and the November 2025 guidance does not change that. We list services we can review, contact, and hold to a documented operational standard. A protocol with no operator and no service desk is not something we can vet, regardless of its legal status. What changes is the editorial frame.
For four years the prevailing assumption in privacy tooling was that any project a regulator disliked enough could be removed from the internet with a stroke of an OFAC pen, and that this removal was a permanent architectural fact you had to design around. Van Loon and the November guidance turn that assumption into something less terminal. Sanctions on code can be challenged, narrowed, and reversed through ordinary statutory litigation, on a roughly three year timeline, without ever needing to win a First Amendment argument. That is a different threat model. It is closer to the trade compliance posture that ordinary software exporters have lived under for thirty years, and further from the existential framing the privacy community has been using since 2022. We will write accordingly. The Pertsev case, meanwhile, remains the operational warning. Maintaining a protocol after it is materially captured by sanctioned actors is a personal criminal risk in jurisdictions that do not need to win the property argument to win the maintenance one.
Sources
- US Treasury press release JY0916, Tornado Cash sanctions (Aug 8, 2022)
- Van Loon v. Department of the Treasury, Fifth Circuit (Aug 26, 2024)
- Coin Center, Tornado Cash litigation and policy
- Electronic Frontier Foundation, code-is-speech coverage
- Chainalysis, Tornado Cash sanctions analysis
Edit log
- 2025-11-25 : First draft after Treasury's November 18 guidance circulated. Pulled the Willett opinion language directly from the slip opinion rather than secondary coverage to avoid the usual paraphrase drift. Cut a planned section on Samourai Wallet because it deserves its own piece.
- 2025-12-02 : Added the Circle USDC freeze detail after a reader pointed out we had skipped over the on-chain compliance response from August 2022. Reworked the Pertsev section to make clear the Dutch theory was maintenance, not authorship, which is the part most US readers get wrong.
- 2025-12-09 : Trimmed roughly 180 words from the Van Loon section after legal review flagged that we were drifting into First Amendment territory the court explicitly avoided. Replaced with the verbatim "rogue persons and entities who abuse it" quote.
- 2025-12-14 : Added the Roman Storm retrial signal after DOJ's December 11 status conference filing. Held off on naming the prosecutors because the docket is still moving.
- 2025-12-18 : Final pass on the Directory section. Sharpened the threat model paragraph after an internal disagreement about whether to call the new posture "trade compliance" rather than "sanctions risk." Kept trade compliance because it is more accurate and less alarming, which is the editorial position we want to hold going forward.
Browse the directory
Find a no-KYC service for what you need.
More articles
Investigation
A wallet that does not collect identity, paired with a Swiss IBAN that legally cannot exist without it
OffChain just announced a Swiss IBAN linked to its no-KYC mesh wallet, EUR/CHF/USD conversion on demand, a debit card, and SEPA/SWIFT in both directions, all of it "fully offline". We walk through the four ways this can actually work, and the one Swiss law makes hardest.
Read article
Regulation
The comment window closes at midnight, and every US-licensed stablecoin issuer is now on the clock
FinCEN and OFAC's joint proposed rule on Permitted Payment Stablecoin Issuers under the GENIUS Act closes its public comment docket today, June 9 2026. Five obligations, USDC and PYUSD in scope, and what it means for self-custody on-ramps.
Read article
Profile
The story that changed when the honeypots leaked
A 2026 working threat model for an investigative reporter covering crypto cybercrime, after the IDMerit, Sumsub, and Chen Zhi cases reshaped what an organized criminal adversary can buy. Tools, walkthrough, twenty-four hours over her shoulder.
Read article