Tornado Cash: The Code as Speech Argument, Both Sides

Tornado Cash: The Code as Speech Argument, Both Sides

Prepared by the editorial team. Updated August 31, 2026.

Research Notice: This guide is part of our fintech research series examining blockchain privacy tools and their regulatory context. It is informational and educational only, is not legal, financial or compliance advice, and does not endorse or instruct the use of any mixing service. Laws differ by jurisdiction and change over time; verify current rules for your location.

Tornado Cash sits at the center of an argument three decades older than the protocol: whether publishing source code is expressive activity that a government may not restrict the way it restricts ordinary business conduct. The argument has a real history and a serious answer from the other direction. This article sets out both sides without picking one, because no court has settled it.

What does the code as speech argument actually claim?

The argument holds that source code is a form of written expression, so publishing it is closer to publishing an essay than to running a business. On that view, a developer who releases code and then walks away has spoken rather than acted, and speech carries a protection that conduct does not.

The claim is narrower than it sounds. Nobody argues that calling code speech makes every act involving software immune from law. The argument is about one act: writing a program and making the text of it public. That act produces a document other people read, study, criticize and copy, which is the ordinary description of publication.

Source code has an unusual dual character, and that is what makes the question hard. It is written in a human readable language, carries comments meant for other programmers, and appears routinely in textbooks. It is also, once deployed, a set of instructions a machine executes without further human involvement. If code is primarily a text about a method, restricting its publication looks like restricting what people may say about cryptography. If it is primarily a working machine, restricting it looks like regulating a device, and most of the disagreement reduces to which description controls.

Which earlier disputes shaped the argument?

The argument was worked out in the 1990s, when US export rules treated strong encryption software as a controlled munition. Academics and programmers challenged those rules, arguing that publishing a cipher implementation was publishing a scientific idea. Several federal courts engaged the question, and the resulting decisions are the reference points still cited today.

Two cases are cited more than any others. In Bernstein v. United States Department of Justice, a mathematician sought to publish an encryption program together with an academic paper describing it, and the appellate court addressed whether export licensing could constitutionally reach that publication. In Junger v. Daley, a law professor who wanted to post encryption code alongside his course materials brought a parallel challenge, and that court addressed the expressive character of source code directly.

The procedural history of both matters, and it is usually left out of summaries. The Bernstein litigation moved through several rounds while the government revised the regulations, and it never produced the kind of stable final appellate holding lawyers cite as settled law. Junger produced an appellate statement that source code is protected expression, but on a record about export licensing rather than criminal liability for a deployed system. The 1990s therefore left a strong rhetorical position rather than a controlling rule.

How did the argument surface in the Tornado Cash cases?

It surfaced mainly as a public and advocacy argument rather than as a decided question. Developers, civil liberties groups and parts of the industry framed the sanctions and the prosecutions as punishing publication. No US court has held that publishing this particular code was protected activity, and no court has squarely held the opposite either.

The dispute became concrete with the August 2022 OFAC action that added the name to the sanctions list. In the weeks that followed, code repositories were taken down and a public interface went offline, while the pool contracts kept functioning untouched. To many developers that looked like the removal of published text rather than the disabling of a service, because the only things that disappeared were documents and web pages.

The one appellate decision to emerge from the sanctions fight did not resolve the speech question. In November 2024 the Fifth Circuit held in Van Loon v. Department of the Treasury that the immutable contracts are not property capable of being blocked, and had no occasion to reach a constitutional argument.

The criminal proceedings framed the issue differently again. The Dutch conviction of Alexey Pertsev in May 2024 and the August 2025 jury verdict against Roman Storm on one count of conspiracy to operate an unlicensed money transmitting business both turned on what the defendants were found to have done, not on the text they released. Whether those can be cleanly separated is the substance of the disagreement, not something either proceeding answered.

How can you date and source a legal claim you find online?

You trace the claim to a primary document, check when the claim was written, identify who is speaking and in what capacity, separate what a court decided from what an advocate asserted, and confirm the point with a qualified lawyer before relying on it. This is a reading method for research, not legal advice.

Step 1: Find the primary document behind the claim

Locate the opinion, indictment, statute or agency notice a claim rests on, because a summary has already made choices about what to emphasize and what to leave out. If no primary document exists, treat the claim as opinion.

Step 2: Check when the claim was written

Look for the publication date and any revision history, since a claim accurate in 2023 may have been overtaken by a ruling, a delisting or a verdict since. Undated pages are the commonest source of stale legal information here.

Step 3: Identify who is speaking and in what role

Work out whether the author is a court, an agency, a party, an advocacy group or a commentator, because each speaks with a different kind of authority. A brief filed by a party is an argument dressed as a statement of fact.

Step 4: Separate what was decided from what was argued

Distinguish the part of a document that records a decision from the part that records a position someone urged, since headlines routinely present the second as though it were the first. A court that declined to reach an argument has not accepted it.

Step 5: Confirm the point with a qualified lawyer

Take any conclusion that would affect your own conduct to a qualified lawyer in the relevant jurisdiction, because commentary cannot account for your facts or your role. A general reading of the law is not an answer about your situation.

What is the counterargument about conduct?

The reply is that these cases were never about publication. Prosecutors have argued that the conduct at issue included operating and profiting from a running system, promoting it, and developing it while aware of how it was used. On that framing, the code is evidence of what was done rather than the thing being punished.

The distinction has a familiar shape outside software. Publishing a manual is generally expression, while using the same knowledge to run an enterprise, take fees from it and direct its growth is generally conduct. A document at the center of an enterprise does not turn the enterprise into a publication.

The complication here is that the core pool contracts are immutable, with no owner, no pause function and no upgrade path, so a developer who cannot alter or stop a deployed contract is in a weaker position to be described as operating it. The response has been to point at the parts of the system that were not immutable, including public interfaces, governance and the relayer role. Both descriptions fit the same facts, which is why the question is genuinely unsettled, and until an appellate court addresses the boundary neither side can claim it resolved.

Publishing code versus running a service

The disagreement is easier to follow when the two descriptions are set side by side rather than argued in the abstract. The table below states each side’s characterization of the same underlying facts, and it summarizes positions in a live dispute rather than stating what the law is or how a court would rule.

The same fact Read as expression Read as conduct
Source code published openly A text released to read and reuse A tool supplied with a foreseeable use
Contracts deployed and immutable The author surrendered all control Deployment was itself the act
Interfaces and docs maintained Continued authorship of material Continued operation of a service
Fees through related arrangements Incidental to a public good A business with revenue
Development after public warnings Ordinary open-source stewardship Awareness of use, bearing on intent

No row in this table is disputed as a matter of fact. What is disputed is which column a court should treat as the correct description, and that is a question of legal characterization and of how a jury reads intent, not one settled by looking at a blockchain.

Frequently asked questions

Does an open-source license affect criminal liability?

A license governs what other people may do with a copyrighted work, and it operates within civil law. It does not decide questions of criminal law, and no license term can waive a duty imposed by statute. A permissive license may be background about intent, but it is not a defense in itself.

Does the argument apply to compiled output as well as source code?

The 1990s reasoning rested heavily on source code being human readable and used to teach, which is why it was compared to a scientific paper. Compiled output is harder to describe that way, and courts drew the distinction explicitly. The line blurs further with bytecode already deployed on a public chain.

Why do people still cite export cases that were never finally resolved?

They contain the clearest judicial language on the question and nothing has replaced them. Citing them as persuasive reasoning is fair, while citing them as settled law controlling a criminal prosecution overstates what they decided. That distinction is usually lost in secondary summaries.

Did the March 2025 delisting resolve the speech question?

No. Removing a name from a sanctions list is an administrative decision about one entry and says nothing about constitutional protection for publication. The criminal proceedings continued after the removal, which is the clearest indication that the two matters operate independently.

Leave a Comment

Your email address will not be published. Required fields are marked *