All War Stories
advancedOracle price manipulation + cross-margin abuseOctober 11, 2022

Mango Markets: the $114M oracle squeeze

Protocol
Mango Markets
Chain
Solana
Loss
~$114M drained
Status
Convicted April 2024; conviction overturned on May 23, 2025 (judge found insufficient evidence of false representation to a permissionless protocol)
TL;DR

In under an hour, a trader used two anonymous accounts and roughly $10M of his own capital to pump the price of a thinly traded governance token, MNGO, on the exchanges that fed Mango Markets' oracle. The protocol trusted that fake price, valued his unrealized perp profits at hundreds of millions, and let him borrow out almost every real asset in the vault. There was no code bug. Every transaction was valid. He just lied to the price feed - and the risk engine believed it.

What it is

Mango Markets was a trading platform built on Solana smart contracts - think of a crypto exchange with no company in the middle. There was no website holding your coins; the rules were code, and anyone could use it.

What it does

On Mango you could do three things from one account: buy and sell tokens (spot), take leveraged bets that a token would go up or down (perpetual futures), and lend or borrow against your balances to earn or pay interest.

How it works

The core idea is 'cross-margin.' Instead of separate wallets for each trade, one account holds your tokens, your open positions and your loans together, and a single number - your health - decides how much you are allowed to borrow. To compute that number, the platform constantly needs to know what everything is worth.

Where prices come from

Mango did not decide prices itself. It used an oracle that read a token's price off several exchanges and averaged them. If those exchanges had thin trading, the price was easy to nudge - and because borrowing power depended on that price, nudging a price meant nudging how much anyone could borrow. That is the door the attacker walked through.

Mango Markets was a cross-margined trading platform: one account could hold spot balances, perp positions and debt, and a single 'health' number decided how much it could borrow. The price of MNGO - used to value MNGO perp positions - came from an oracle that averaged MNGO's price across spot venues (Mango itself, plus external exchanges). Those venues had almost no MNGO liquidity.

That combination is the whole exploit:

1. Fake the price. Buy a few million dollars of MNGO on those thin venues. With a shallow order book, a modest buy walks the price up violently - from ~$0.038 to ~$0.91 - and the oracle faithfully reports the new number. 2. Fake the profit. One account was long 483M MNGO-perps; the other short. The inflated oracle marked the long side's unrealized profit at hundreds of millions. 3. Borrow against the fiction. The risk engine accepted that unrealized profit as collateral, so the short account could borrow and withdraw ~$116M of real BTC, USDT, SOL and mSOL. 4. Pull the rug back down. Once he stopped buying, MNGO collapsed to its old price. The collateral was worth a fraction of the debt, leaving the protocol with ~$115M of bad debt - and real users holding worthless claims.

You are the detective. Someone moved money that was not theirs, and all you have is a public blockchain and a few free websites. The five moves below are the same routine professional investigators run on almost any exploit - bridges, oracles, rug pulls. No coding required, just curiosity.

  1. The headline is a starting point, not an answer. 'Mango was hacked for $114M' tells you almost nothing. Your very first move is always the same: pin down WHAT moved, WHEN it moved, and WHICH address touched it. Convert the story into questions you can actually answer on a block explorer.

    Do this

    Open the protocol's official statement (their X/Twitter post or blog) next to a block explorer. Write down three facts: the exact date and time in UTC, the asset that left, and the chain it was on.

    Look for

    Vague wording. If the team says 'funds were drained' but never says how, that gap is exactly where your investigation starts.

    In this case

    Mango, October 11 2022, Solana. The twist: the attacker did not steal one token - he walked out with ~$116M of real BTC, USDT, SOL and mSOL. So the real question became: 'how were those real assets unlocked?'

    Protocol X postSolscan
3:36 - 3:50 PM ET

The attacker moves ~$14M USDC from a Circle account through an exchange account, sending ~$5.5M and ~$5M to two fresh Solana wallets (court filings call them 'Solana Wallet-1' and 'Wallet-2').

6:07 - 6:18 PM ET

Both wallets fund two separate Mango Markets accounts with ~$5M USDC each, giving him two identities on the same protocol.

6:25 PM ET

Wallet A posts an offer to sell 483M MNGO-perpetual futures at $0.038. Wallet B buys all of it. The two accounts are on opposite sides of one trade - a wash trade that manufactures a huge position without a real counterparty.

6:26 - 6:30 PM ET

He spends a few million dollars buying MNGO on the thin spot venues that feed the oracle across Mango, AscendEX and FTX. The oracle price rockets.

6:26 - 6:45 PM ET

MNGO spikes as much as ~24x, peaking near $0.91. The oracle reports the artificial high, inflating the collateral value of the long account.

6:29 - 6:45 PM ET

Wallet B borrows and withdraws ~$116M of real assets against the fake collateral - the single largest withdrawal is ~$54M USDC, followed by ~$25M mSOL. Mango is drained of nearly all user funds.

6:45 PM ET

He stops buying. MNGO collapses back toward its pre-attack price, leaving ~$115M of bad debt stranded in the protocol.

October 12, 2022

An anonymous DAO proposal appears demanding ~$70M as a 'bug bounty' and asking the protocol not to pursue criminal charges. It is voted on using the MNGO acquired in the attack.

October 15, 2022

Avraham Eisenberg publicly identifies himself, calling the exploit 'a highly profitable trading strategy' and arguing 'all of our actions were legal.'

October - late 2022

~$67M is returned to Mango after a DAO vote; ~$47M is kept.

December 26-27, 2022

Eisenberg is arrested in Puerto Rico; the DOJ, CFTC and SEC all bring charges.

April 18, 2024

A Manhattan jury finds Eisenberg guilty of fraud and market manipulation.

May 23, 2025

U.S. District Judge Arun Subramanian overturns the fraud and market-manipulation convictions, ruling prosecutors failed to prove Eisenberg made false representations to a permissionless, smart-contract-run protocol. Eisenberg is separately still serving a four-year sentence from an unrelated 2024 guilty plea.

The MNGO oracle was a volume-weighted price over markets with almost no liquidity - a few million dollars could move it ~24x.

The risk engine treated *unrealized* perpetual profits as borrowable collateral, so paper gains became real withdrawals.

Two anonymous accounts traded a 483M-token position against each other (a wash trade) - a classic manipulation footprint.

The position size dwarfed the protocol's real liquidity, meaning any honest valuation would have rejected it.

Replay the attack

REPLAY THE EXPLOIT

Run the Mango Markets attack yourself

Generate two throwaway wallets, fund them, manufacture a position, move the oracle, and borrow against a price that does not exist. 100% simulated - no real chain, no real funds.

→
→
→
→
→

An attacker never uses one wallet. Two identities let you trade against yourself - a wash trade - without a real counterparty.

Wallet-A
—
Wallet-B
—
Position
—
Withdrawn
—

Replay it in the sandbox

Don't just read it - do it. Oracle Attack lab (P5) lets you pull the same levers the attacker used and watch it unfold. Safe, simulated, and free.

Educational purposes only. Not financial advice. Tier 1 runs on Solana Devnet and Tier 2 in a sandbox — both use fake money. Never risk real funds.