Tornado Cash vs. Uniswap: Who Controls The Code?
The judge assigned to Roman Storm's case has come to drastically different conclusions on what constitutes control in her dismissal of a case against Uniswap.

The Second Circuit has found that Judge Katherine Failla – the same judge assigned to the criminal prosecution of Roman Storm – properly dismissed a class action suit against Uniswap, because “the hosts of the Protocol do not hold title to the tokens placed in the liquidity pool by third party users of the platform.”
Uniswap is a protocol which allows users to trade cryptocurrency tokens peer-to-peer, also known as a decentralized exchange. The original complaint, filed in 2022, alleged that Uniswap and its backers Andreessen Horowitz and Paradigm engaged in "rampant fraud" on the exchange by offering unregistered securities, known as "pump and dump" and "scam tokens", from which the defendants made a profit by earning fees.
In 2023, Failla dismissed the Uniswap suit, arguing that whether tokens offered by Uniswap were securities was a question better addressed to Congress due to unclear regulations. Failla additionally sided with defendants claiming that Uniswap had no central ownership structure "by its very nature", and that allowing the case to proceed would be akin to holding a "developer of self-driving cars liable for a third-party’s use of the car to commit a traffic violation or rob a bank", as phrased by the defense.
Plaintiffs appealed Failla's dismissal, but the Second Circuit ruled that Failla had properly dismissed the case this month, arguing that "the hosts of the Protocol do not hold title to the tokens placed in the liquidity pool by third party users of the platform [...] it is the token issuers and liquidity providers who retain title of their tokens through pool tokens."
Finding that "smart contracts are simply standardized computer codes that allow the Protocol to fill in the terms for individual trades between and controlled by its users," Second Circuit judges stated that "it 'defies logic' that a drafter of a smart contract, a computer code, could be held liable under the Exchange Act for a third-party user’s misuse of the platform."
Readers who have been following the prosecution of Tornado Cash developers in the Southern District of New York (SDNY) will notice that Failla dismissed the Uniswap case based on the exact same arguments Roman Storm's defense is making: that the law is unclear as to the application of sanctions and anti-money laundering frameworks to non-custodial, decentralized services, and that Tornado Cash developers should not be held responsible for the actions of third-party users, as the developers had no control over their actions.
Denying a motion to dismiss the case, Failla argued the opposite than she argued in the case against Uniswap, finding that it was not necessary for Tornado Cash developers to have control over funds to be found criminally liable for unlicensed money transmission, and that the developers held sufficient control over the Tornado Cash protocol to be held liable for the activity of their users.
It is true that civil actions in the Securities laws and the criminal laws at stake in Tornado cash have different elements that require a different legal framing and burden of proof from prosecutors. Nonetheless, the heart of the matter, whether developers should be liable for the bad of unlicensed things third parties do with their software, remains the same. If anything, in the criminal context where one should be innocent until proven guilty and where strict due process requirements apply, that question should be more, rather than less, determinative.
Three Issues, Six Different Arguments
In his motion to dismiss, Storm argued that the charges against him should be dropped as Tornado Cash developers had no control over funds or the protocol's operations, and second, that Tornado Cash developers did not charge a fee for fund transmission – a possibly defining variable to determine liability for money transmission charges.
First, both Tornado Cash and Uniswap develop, maintain, and control User Interfaces (UIs) for their respective projects, making the protocols easily accessible for non-technical users. In both cases, changes to the UI have no effect on the protocol.
In an oral argument in September, Failla rejected Storm's motion to dismiss stating that, while Tornado Cash smart contracts are immutable, "other aspects of the Tornado Cash service were not similarly free from tinkering," such as that "Tornado Cash's three founders controlled [...] and had the ability to make changes to [the UI] at their own discretion throughout the charged time period," describing the fact that the Tornado Cash UI was open source as "a public relations move without any real effect."
Therefore, according to Failla, Tornado Cash developers could have and should have prevented illicit activity.
In Uniswap's dismissal, Failla on the other hand highlighted that the delisting of tokens in the "open-source" UI wouldn't have prevented illicit activity on the protocol, arguing that Uniswap defendants did not have sufficient control over the network: "while Labs may be able to shut down a user’s access to a given token on the Interface, that does not stop the user from finding another way to access and trade that token", Failla stated.
It is unclear why Failla would apply such strikingly different reasoning concerning the same question: are defendants, or are they not, able to stop crime in a meaningful capacity when the protocol is immutable, but the UI isn't.
Regarding the profit motive, Failla stated that while Tornado Cash does not charge direct fees on transactions, "the Tornado Cash enterprise is not an altruistic venture" because Tornado Cash is backed by Venture Capital, the team used bank accounts to sustain the Tornado Cash website, and the developers "designed and promoted Tornado Cash's relayer feature, including its structure of charging fees for withdrawals", which Failla described as "a formula for capitalizing on relayer fees to boost the value of TORN tokens".
In Tornado Cash's business model, any user can run a relayer to add extra privacy, which kicks back fees to users who stake TORN tokens – a proposal implemented in 2022, with 30% of TORN tokens allocated to the Tornado Cash developer team.
In Uniswap's business model, any user can run a liquidity pool to collect fees in UNI, but the project charges a direct fee on trades in certain cases "to sustainably fund our operations", as opposed to merely profiting off of the protocol token's value appreciation – a proposal which was implemented after the protocol's initial release, voted on by UNI holders, of which 88% are held by the defendants, according to plaintiffs.
Addressing plaintiff's claims that Uniswap intentionally solicited fraudulent coins for profit, Failla argued that "no plaintiff would sue the New York Stock Exchange or NASDAQ for tweeting," and that "plaintiffs are looking for a scapegoat for their claims because the defendants they truly seek are unidentifiable," concluding that "plaintiffs’ allegations that Labs [...] solicited the transactions [...] as a means of obtaining a profit are entirely conclusory and devoid of factual support."
Again, we are left without apparent explanation as to why Failla would find one project liable for soliciting and profiting from potential illicit activity when the other is not, given that both projects employ virtually the same business model.
Last and most strikingly, Failla equates her reasoning of both projects' software and business structures to (the lack of) control over the service itself. On the one hand, Failla equates Tornado Cash to the centralized, custodial mixer Bitcoin Fog, stating that it is "not meaningfully different from the cryptocurrency mixing services recognized as money transmitting businesses."
On the other hand, Failla makes a clear distinction between custodial and non-custodial services in her Uniswap dismissal, stating that "Labs is a mere developer of the smart contracts, and the VC Defendants are merely alleged to be liquidity providers. There is no allegation that Plaintiffs transacted with Labs or with the VC Defendants themselves, or that the Protocol or any Defendant ever maintained control of Plaintiffs’ crypto wallets."
Again, we are left wondering as to why Failla would apply two very different yardsticks to virtually the same issue, given the fact that she appears very much aware of the technical intricacies of custodial vs. non-custodial services.
Schrödinger's Computer Code Regulations
Another central question in the criminal prosecution of Storm is whether developers of computer code can be held liable for what other people do with it. In July, Failla seemed to have a keen grasp of the issue while granting a delay of the Tornado Cash trial, asking whether holding the Tornado Cash developers liable for criminal activity on their protocol would be similar to holding the developers of WhatsApp accountable because criminals used it.
This reasoning is similar to the judgement Failla applied in the Uniswap dismissal, stating that "it defies logic that a drafter of computer code underlying a particular software platform could be liable [...] for a third-party’s misuse of that platform" because "smart contracts are self-executing, self-enforcing code that contain the terms of the agreement between the buyer and seller."
Since the 1996 landmark decision in Bernstein vs. United States, which reversed export restrictions and licensing requirements for encryption, code has largely been defined as speech. Just like John Stuart Mill or Thomas Jefferson could not be held liable for inspiring Anders Breivik can the developers of OpenSSL not be held liable for having their code used by North Korea – a decision widely attributed to have enabled the flourishing of software development to this day.
While Failla appeared to have been aware of the wider impacts of holding developers liable for writing code in Uniswap and prior Tornado Cash hearings, she completely changed her opinion by September.
"The conduct charged in the indictment includes the functional capability of code … to the extent that the indictment alleges that Mr. Storm used computer code, it was to design a program that further [sic] money laundering and sanctions evasion scheme. […] The use of computer coding or software to achieve these ends is far from the expressive sort of coding that would merit First Amendment protection," Failla stated, ruling against Storm's motion to dismiss.
According to the advocacy group CoinCenter, the standards cited by Failla "inappropriately put judges in the business of determining whether speech is sufficiently expressive of 'First Amendment values' to even warrant protection. It asks judges to decide the very thing the First Amendment is meant to prevent the government from doing: picking which ideas, based on their content, should and should not be freely spoken."
"To be as clear as possible," CoinCenter writes, the standards cited by Failla are effectively defunct thanks to more recent rulings on data as speech in the second circuit and from the Supreme Court, as "there is no longer any functional vs expressive analysis to be done in a First Amendment case about software."
Circling back to the issue of control, Failla notably argues against 2019 FinCEN guidance in the criminal case against Storm, which stated that providers of anonymity-enhancing software were exempt from classifying as money transmitters.
Specifically, FinCEN stated that “an anonymizing software provider is not a money transmitter,” exempting “those persons providing ‘the delivery, communication, or network access services used by a money transmitter to support money transmission services’. This is because suppliers of tools (communications, hardware, or software) that may be utilized in money transmission, like anonymizing software, are engaged in trade and not money transmission.” Denying Storm's motion to dismiss, Failla yet highlighted that a service like Tornado Cash would not fall under network access services.
In Uniswap’s case, where no such guidance has been issued by the SEC, Failla yet ruled in favor of the defendants. Overall, it remains to be seen why judge Failla would have such strikingly different opinions on virtually the same types of software and business models. One can only hope that she will come to the conclusion that the apparent discrepancies in her opinions are at the very least unfair.
Independent journalism does not finance itself. If you enjoyed this article, please consider making a donation.