The Ronin Bridge Hack: How Axie Infinity Lost $625 Million

Empty bank vault with its round steel door standing open, illustrating the drained Ronin bridge

Quick answer: on March 23, 2022, attackers drained 173,600 ETH and 25.5 million USDC from the Ronin bridge, the link between Ethereum and the sidechain that ran the NFT game Axie Infinity. The haul was worth about $625 million at the time. The bridge needed signatures from 5 of its 9 validators to release funds. Sky Mavis, the company behind Axie, ran four of them, and an old permission it had never revoked gave it signing power over a fifth. Once the attackers got into Sky Mavis systems, reportedly through a fake job offer sent to an engineer, they had everything they needed. Nobody noticed for six days. The US Treasury later tied the theft to North Korea’s Lazarus Group. Sky Mavis raised $150 million, reopened the bridge in June 2022 and repaid users 1:1, but the case remains the clearest lesson in NFT history about concentrated keys and forgotten permissions.

Why Axie Infinity needed a bridge at all

Axie Infinity was a play-to-earn game where every creature, called an Axie, was an NFT. Players bought three Axies to start, battled them, and earned a token called SLP that they could sell. In 2021 the game became a real income source for many players in the Philippines and elsewhere, and at its peak in November 2021 it drew roughly 2.7 million daily active users.

That kind of traffic could not run on Ethereum’s main network, where a single transaction could cost more than the item being traded. So Sky Mavis built Ronin, an Ethereum-linked sidechain with cheap, fast transactions. To get money into the game, users sent ETH or USDC to the Ronin bridge contract on Ethereum, and the bridge issued matching tokens on Ronin. To leave, the process ran in reverse.

This design means the bridge contract on Ethereum ends up holding a huge pile of real assets. Every wrapped token on Ronin is only worth something because the original sits locked on the other side. Whoever controls withdrawals from that contract controls the whole pool.

How the attack worked

The Ronin bridge used a validator system that works a lot like a multi-signature wallet. Nine validators watched for withdrawal requests, and any withdrawal with 5 of their 9 signatures was treated as legitimate. On paper, an attacker would have to compromise five separate parties to steal anything.

In practice the nine were not independent. Sky Mavis operated four validator nodes itself. The fifth weak point came from an arrangement made months earlier. According to Halborn’s analysis of the breach, in November 2021 the Axie DAO temporarily allowed Sky Mavis to sign transactions on its behalf while the network was under heavy load. That arrangement ended in December 2021, but the allowlist that granted the permission was never switched off.

So an attacker who got deep enough into Sky Mavis infrastructure could sign with four Sky Mavis keys and then use the stale allowlist to get the Axie DAO validator’s signature as well. That is five of nine, which is a valid withdrawal.

On March 23, 2022, the attacker did exactly that. Two withdrawals moved 173,600 ETH and 25.5 million USDC out of the bridge contract to an address the attacker controlled.

Printed job offer letter on a wooden desk with a fishing hook resting on it, representing the phishing offer behind the Ronin hack

The fake job offer

Sky Mavis did not say publicly how the attackers first got in. In July 2022, The Block reported, citing people with direct knowledge of the matter, that a senior Sky Mavis engineer had been approached on LinkedIn about a job at a company that did not exist. After several rounds of interviews, the engineer was sent a generous offer as a PDF. The file carried malware, and that foothold let the attackers move through the company’s network until they reached the validator keys.

No smart contract bug was involved. The code did what it was written to do. The failure was a person opening a document, combined with a signing setup where one company held too much of the power.

Six days before anyone noticed

The theft was not discovered until March 29, when a user tried to withdraw 5,000 ETH and the bridge could not pay out. There was no automated alert for a withdrawal that emptied most of the contract. For almost a week, Ronin kept running while the assets backing it were gone.

Who was behind it

On April 14, 2022, the US Treasury’s Office of Foreign Assets Control added the attacker’s Ethereum address to its sanctions list and identified its owner as the Lazarus Group, a hacking organization linked to the North Korean government. CoinDesk reported that the FBI had reached the same conclusion, and Ronin confirmed the attribution in its own update.

The sanctions had a practical effect. Any US person or company that knowingly handled funds from that address could face penalties, which made the stolen ETH far harder to cash out through regulated exchanges. The attackers moved the money through mixers, including Tornado Cash, and through hundreds of transactions across several blockchains.

In September 2022, blockchain analytics firm Chainalysis said it had worked with US law enforcement to seize about $30 million of the stolen funds. Chainalysis described it as the first time cryptocurrency stolen by a North Korean hacking group had been seized. That was a meaningful precedent, but it covered only a small share of the total.

How Sky Mavis repaid users

Sky Mavis did not leave bridge users holding worthless wrapped tokens. On April 6, 2022, it announced a $150 million funding round led by Binance, with participation from Andreessen Horowitz, Animoca Brands, Paradigm, Accel and Dialectic. The money, together with funds from Sky Mavis’s own balance sheet, was set aside to restore what the bridge had lost.

The bridge reopened on June 28, 2022. In its reopening announcement, Ronin said all user funds were backed 1:1 and all users had been made whole. There was one exception. About 56,000 ETH belonging to the Axie DAO treasury was left uncovered while law enforcement recovery efforts continued, with the community to decide later what to do about it.

Before relaunch, the new bridge went through an internal review and external audits by Certik and Verichains. It also shipped with new controls:

  • A circuit breaker that requires more validator signatures, and for the largest amounts a human review, before big withdrawals go through.
  • A daily withdrawal limit, initially set at $50 million, so a compromise could not drain everything in one day.

Ronin also moved to bring more outside operators into its validator set, so that no single organization could control a majority of signatures.

What happened to Axie afterward

The hack did not start Axie’s decline, but it landed at a bad moment. Daily activity and SLP prices were already falling from their 2021 highs as the play-to-earn economy that depended on a steady flow of new players began to slow. The bridge freeze meant users could not move assets off Ronin for three months, and trust took a hit that the game did not quickly recover from. Axie and Ronin kept operating, and Ronin later expanded to host other games, but the game never returned to its 2021 scale.

For NFT owners, the case shows a risk that has nothing to do with the art or the collection. An NFT on a sidechain or layer 2 network depends on the bridge and infrastructure underneath it. If that infrastructure fails, the token in your wallet can stop being tradable or withdrawable, even though nothing about the token itself changed.

Close-up of an electrical circuit breaker panel with a red lockout padlock, representing the circuit breaker added to the rebuilt Ronin bridge

Lessons for collectors and projects

The biggest takeaway is that a signing threshold only protects you if the signers are truly separate. Five of nine sounds strong. Four of nine held by one company, plus a fifth reachable through that same company, is really one point of failure. If you use a multisig for a shared NFT treasury, put the keys on different devices held by different people, and make sure no single person can reach a majority.

Old permissions are dangerous because nobody is watching them. The Axie DAO allowlist was meant to be temporary and outlived its purpose by months. The personal version of this is the token approval you gave a marketplace or mint site years ago and forgot. It is worth checking periodically and revoking wallet approvals you no longer use.

Social engineering beats cryptography. The Ronin attackers did not break any encryption. They reportedly built a believable job offer and waited for someone to open a file. Unsolicited job offers and airdrop links sent to NFT holders follow the same pattern, which is why the advice in our guide on how to spot a fake or scam NFT project applies well beyond scam collections.

Monitoring matters as much as prevention. The theft went unnoticed for six days. Projects holding user funds need alerts on unusual outflows, and the rate limits Ronin added afterward are now a common feature of cross-chain bridges.

Frequently asked questions

How much was stolen in the Ronin bridge hack?

The attacker took 173,600 ETH and 25.5 million USDC, worth about $625 million at the time of the theft in March 2022. It was one of the largest crypto thefts on record.

Did Axie Infinity players get their money back?

Yes, for bridge users. Sky Mavis raised $150 million in a round led by Binance and reopened the bridge on June 28, 2022, saying all user funds were backed 1:1. The Axie DAO treasury’s roughly 56,000 ETH was not immediately covered.

Who hacked the Ronin bridge?

US authorities attributed the attack to the Lazarus Group, a hacking organization linked to North Korea. The Treasury sanctioned the attacker’s Ethereum address on April 14, 2022.

Was the Ronin hack caused by a smart contract bug?

No. The bridge code worked as designed. Attackers obtained enough validator keys to approve their own withdrawals, reportedly after compromising a Sky Mavis engineer through a fake job offer.

Be the first to comment

Leave a Reply

Your email address will not be published.


*