The jury needed two hours and eleven minutes. Not two weeks. Not a hung panel split over the philosophical line between a clever trade and a felony. Two hours, one unanimous verdict, and Jonathan Spalletta — a working cybersecurity consultant — was convicted of stealing roughly $55 million from Uranium Finance, an automated market maker that ran on Binance Smart Chain in 2021.
We didn't get ambiguity. We didn't get a court that threw up its hands at smart-contract semantics. Judge Jed Rakoff has set sentencing for February 16, and the statutory ceiling is 20 years. The defense never denied the transactions occurred. It argued they weren't crimes — that Spalletta "merely used publicly available functions" inside the contract, forged no credentials, deployed no malicious code. The jury rejected that framing in the time it takes to eat lunch.
That speed is the story. Not the dollar figure. The speed.
Uranium Finance is a case study in the BSC fork economy of 2021. The chain was cheap, fast, and flooded with projects that copied Uniswap v2's constant-product formula — x*y=k — pasted it into a fresh repo, tweaked a few lines, and launched with a token, a farm, and no meaningful audit. Uranium was one of them. A fork of a fork, wrapped in yield-farming incentives that pulled real liquidity from real users.
The mechanic matters because it's the whole ballgame. Uniswap v2's safety doesn't live in the swap function. It lives in the invariant checks — the assertions that verify the pool's reserves are consistent after every operation. Break that verification logic, and you don't need to hack anything. You just call the function the way it's written and walk out with the money. That's the difference between an "exploit" and a "hack," and it's not academic.
Based on my audit experience reviewing fork deployments from that era, the failure mode is almost always the same: a developer edits the fee-calculation or the reserve-accounting line to add a feature, removes an assertion that looked redundant, and ships it. The contract compiles. The tests — if there are any — pass. The invariant that protected half a billion dollars of Uniswap liquidity is quietly gone.
Uranium was attacked twice in 2021. Twice. Same protocol, same year, and the platform never recovered — it shut down, its token went to zero, and users' funds vanished. Two attacks in a single calendar year tell you the code had more than one independent flaw, or the first fix was cosmetic. Either way, the autopsy writes itself.
Here's what the court record actually establishes, stripped of the rhetoric.
First: the classification. This was an exploit, not an intrusion. The defense's core claim — "publicly available functions, no forged credentials, no malicious code" — is technically accurate and legally irrelevant. That's the fault line. In smart-contract terms, calling a function exactly as written is not a break-in. It's participation. But a federal jury does not grade on the curve of "the code let me." It grades on intent, authorization, and harm. Spalletta, by the government's account, understood the contracts deeply enough to extract $55 million through their own logic — and that understanding is precisely what makes the "I just used the API" defense collapse.
The two-attack sequence deserves its own paragraph, because it's the part that should terrify every fork team still shipping code. A single exploit is a bug. Two exploits on the same protocol within months is a design failure. The first attack likely exploited one accounting path — a fee-on-transfer miscalculation, a reserve desync, the classic mutable-fee trap that Uniswap v2 forks kept reintroducing. The second suggests either a patch that didn't cover the root cause or a second, independent flaw hiding in the same rewritten invariant logic. When you modify the core formula of an AMM, you don't inherit Uniswap's security. You inherit its surface area.
Second: the laundering rail. The charges tie directly to Tornado Cash. Spalletta used the mixer to break the on-chain link between the stolen funds and his wallets. This is now the third or fourth major case where Tornado Cash sits at the center of the prosecution's narrative. Regulation didn't have to name the tool a crime. The cases do it for them, one indictment at a time. The OFAC sanctions logic — "privacy infrastructure as criminal infrastructure" — no longer needs a policy memo. It has a conviction record.
Third: the money trail. Law enforcement seized roughly $31 million in crypto assets against the $55 million taken. That's a 56% recovery rate. Sit with that number. For a crime executed through a mixer, across two attacks, four years ago, that's an extraordinarily high clawback. It means the chain analysis firms — Chainalysis, TRM, the usual suspects — can now reconstruct flows through Tornado Cash with enough fidelity to support a seizure. The "untraceable" mixer isn't untraceable. It's just expensive to trace, and the government has decided it's worth the invoice.
Fourth: the physical exit. This is where the case gets weird, and where my security brain starts flagging. The seized assets include roughly $3 million in rare trading cards, $600,000 in ancient Roman coins, and — I am not making this up — a $137,000 fragment of the Wright brothers' airplane. Stolen crypto, converted into collectibles. Subjective valuation. Thin liquidity. No standardized custody. A perfect laundering channel for someone who wants to move value out of the digital domain and into something a court has to appraise by hand.
I've spent enough time around forensic reporting to know that this pattern — crypto into alternative physical assets — is not novel. What's novel is the scale and the confidence. This wasn't a panic move. It was portfolio construction.
And here's the detail the headlines bury: Spalletta wasn't an anonymous script kiddie. He was a cybersecurity consultant. He understood contracts at the level where you read bytecode, not just Solidity. That's not a mitigating fact — it's an aggravating one in sentencing math. Courts treat expertise-driven crime as more culpable, not less. The same knowledge that would have earned him a bounty if he'd disclosed responsibly is now the reason the government will argue for the top of the range.
Everyone is reading this as a win for the good guys. I'm not so sure it's that clean.
The conviction is being framed as accountability, and on the surface it is. But zoom out, and the real signal isn't the guilty verdict. It's the 56% recovery rate — and what it implies about the next decade of DeFi.
Here's the angle nobody's writing: this verdict does more damage to whitehat security research than to blackhats. The defense's argument — "I used public functions" — was the strongest version of a case that legitimate researchers rely on every day. Bug bounty hunters, greyhat auditors, exploit developers who disclose responsibly — they all operate in a space where "the contract allowed it" has historically been a shield. That shield just took a direct hit. A jury said intent and authorization trump code permissiveness. Which means the legal line between a whitehat disclosure and a criminal exploit is now a matter of prosecutorial discretion, not technical fact.
And notice what the market isn't pricing: the fork economy's structural rot. Uranium died because someone forked audited code, modified the invariant logic, and skipped re-auditing. That's not a hacker problem. That's a developer-hygiene problem, and it's still everywhere. We didn't learn that lesson. We learned that the guy who found the gap goes to jail.
Watch February 16. If Rakoff sentences near the 20-year ceiling, the message is unmistakable: DeFi exploit equals federal crime, full stop, no technical carve-out. And watch what happens to fork deployments over the next two quarters — because the only durable fix here was never prosecution. It was an audit. Regulation didn't stop this theft. An invariant check would have.


