Free Strategy Call

Governance attack

A governance attack takes control of a protocol by using its voting system as designed rather than by breaking it. The attacker acquires enough voting weight, passes a proposal that hands them funds or privileges, and executes it. Beanstalk lost roughly 182 million dollars this way in a single transaction in April 2022, and the contracts behaved exactly as written from start to finish.

The defence against a governance attack is time, not code. Every documented case turns on an attacker acquiring voting weight and spending it faster than anyone could respond, which is precisely what an execution delay and a proposal time snapshot exist to prevent.

The Beanstalk sequence, 17 April 202201Flash loanborrowed in onetransaction02Mint vote weightdeposit receiptscarry votes03Cross two thirdssupermajority inone block04emergencyCommitexecutes with nodelay05Repay and keeploans returned,profit retained

Scroll to see the full diagram

Every step after the first is legitimate governance. Remove step four and the sequence stalls for the length of the delay, which is the only window in which anybody else can react.

Why this is a different category from an exploit

A smart contract exploit finds a mistake in the code. A governance attack finds no mistake at all. The proposal is valid, the vote is valid, the execution is valid, and at the end of it the treasury belongs to somebody else. That distinction has a commercial consequence, because the controls that catch the first category, audits and formal verification, do not catch the second. A protocol can pass every audit it commissions and still be one flash loan away from handing over the keys.

Two conditions have to hold for the attack to work. The attacker has to be able to acquire enough voting weight, and the system has to let them spend it before anyone can respond. Break either condition and the attack becomes a slow, expensive, visible accumulation that a community can watch approaching.

Beanstalk, 17 April 2022

Beanstalk's own statement puts the attack at roughly 12:24pm UTC on 17 April 2022 and the theft at about 76 million dollars in non-Beanstalk user assets, carried out by using a flash loan to exploit the protocol's governance mechanism.1 CertiK's analysis puts the total loss at approximately 182 million dollars, of which the attacker kept 76 million as profit.2

The root cause is two design choices meeting. Voting power was tied to Silo deposit receipt assets that could be minted inside the same transaction with borrowed funds, with no check for it. And Beanstalk carried an emergencyCommit function that executed immediately, with no timelock delay, once a supermajority above two thirds had been reached.2

Put those together and the attack writes itself. Borrow, mint voting weight, cross the two thirds line, execute, repay the loans, keep the difference, all inside one transaction that no human saw before it confirmed. Nobody had to find a bug, because there was nothing to find.

Mango Markets: the vote as a settlement device

On 11 October 2022 Avraham Eisenberg manipulated the price of the MNGO token through large positions on Mango Markets, borrowed against the inflated collateral value, and drained roughly 114 million dollars from the protocol's liquidity pools.3 What came next is the part that belongs in this entry. He acquired MNGO governance tokens with part of the proceeds and used them to vote on a settlement proposal with Mango DAO, returning some of the funds in exchange for keeping the rest and the DAO agreeing not to pursue him.3

It did not work where it mattered. A federal criminal prosecution followed in the Southern District of New York, United States v. Eisenberg, No. 1:23-cr-00010, filed 9 January 2023, alongside separate civil actions brought by the CFTC and by Mango Labs in the same district.4

The design lesson is blunt. A governance vote binds the protocol's own contracts. It does not bind a prosecutor, a regulator or a counterparty, and a vote bought with the proceeds of the underlying conduct reads as evidence rather than as a release. Any governance design that treats an onchain vote as a settlement instrument is making a legal assumption that this record does not support.

What we could not confirm, and are therefore not printing

Two figures circulate with the Mango incident that will not appear here. The Mango DAO proposal identifier for the settlement, and the exact amount Eisenberg was permitted to retain, which is reported inconsistently across public accounts. Neither could be tied to a primary Mango DAO governance document.

That refusal is deliberate. A reference page that invents a proposal number to look thorough is worse than one saying the number is not established, because the invented one gets quoted, then cited, then treated as settled. The same discipline applies to the claim attached to almost every article in this subject area, that most DAOs run under ten percent governance participation. There is no study behind it. Design your defences against turnout you have measured yourself.

Five controls, and the ones Beanstalk was missing

The named defences against flash loan governance capture are well established: a meaningful delay between a vote passing and its execution; snapshotting token holdings at the time a proposal is submitted rather than at the time of the vote; time weighted voting power that requires tokens to be held for a period before they confer weight; multi stage governance requiring several rounds over an extended period; and contract level detection of a vote occurring in the same transaction as a large deposit.5

Beanstalk had none of the first three where it counted. The emergencyCommit path removed the delay, voting weight was read live rather than from a proposal time snapshot, and freshly minted deposit receipts carried full weight immediately.2 Any one of those three, on its own, would have broken the sequence. The delay alone would have turned a single private transaction into a public window with hours in it.

Notice what is absent from that list: an audit. Every one of those five is an economic parameter rather than a code property, which is why they get decided by whoever designs the token mechanics and not by whoever writes the tests. This is a tokenomics failure mode that happens to be executed in Solidity.

The question that finds this before an attacker does

For every asset that carries voting weight, ask what it costs to acquire that weight for one block. If the answer involves a lending market, an AMM, or anything else that will lend you the asset and take it back within a single transaction, your governance is priced at the cost of a flash loan fee. Then ask how long the gap is between a vote passing and execution, including every emergency path. Those two numbers are your governance security budget, and most teams have never written either of them down.

In our experience the emergency path is where the check fails. Teams design the main route carefully, then add a fast lane for incidents, and it inherits none of the protections that took a quarter to argue about. Beanstalk's emergencyCommit was that fast lane. Every protocol has one, and it should be reviewed as its own governance surface rather than as an exception to the real one.

The last question is what the vote is protecting. A governance surface is worth attacking in proportion to what sits behind it, so the treasury and revenue you are defending set the budget for defending them. That is an ordinary security decision, and it stops being ordinary only when people forget the voting system is part of the attack surface.

Common questions

What is a governance attack in crypto?

It is taking control of a protocol by using its voting system as intended rather than by finding a bug. The attacker acquires enough voting weight, passes a proposal transferring funds or privileges to themselves, and executes it. Because nothing malfunctions, audits and formal verification do not catch it. The controls that do are economic: execution delays, snapshot timing and time weighted voting power.

How did the Beanstalk hack work?

Beanstalk's voting weight was tied to deposit receipts that could be minted inside a single transaction with borrowed funds, and its emergencyCommit function executed immediately once a supermajority above two thirds was reached, with no delay.2 On 17 April 2022 an attacker used a flash loan to mint the weight, pass the proposal and execute it in one transaction. CertiK puts the total loss at about 182 million dollars.

Can a flash loan be used to take over a DAO?

Only where voting weight can be acquired and returned inside a single transaction. That is the case when weight is read live from a balance rather than from a snapshot taken when the proposal was submitted, and when execution can happen in the same transaction as the vote. Snapshotting at proposal time and enforcing an execution delay each break the sequence on their own.5

Does a timelock stop governance attacks?

A delay does not stop an attacker acquiring voting weight. It stops them spending it privately. That window is what lets anyone else notice a queued proposal and respond to it. We could not find a documented case of a delay being the confirmed reason a malicious proposal was cancelled, but Beanstalk is the clear counter example: its emergency path removed the delay, and that is why one transaction was enough.2

See Tokenomics Audit for how this applies in practice.

Sources

  1. Beanstalk Farms Shares the Next Steps Forward After Multimillion Dollar Flash Attack
    Beanstalk Farms, distributed via Newsfile, 2022
    The protocol's own statement: attacked at roughly 12:24pm UTC on 17 April 2022, about 76 million dollars in non-Beanstalk user assets taken, using a flash loan against the governance mechanism.
  2. Revisiting Beanstalk Farms Exploit
    CertiK, 2022
    Approximately 182 million dollars lost with 76 million retained as profit. Root cause: voting power tied to Silo deposit receipt assets mintable by flash loan in the same transaction, with no anti flash loan check, plus an emergencyCommit function executing with no timelock delay above a two thirds supermajority.
  3. $114M Mango Markets Exploiter Outs Himself, Returns Most of the Money
    CoinDesk, 2022
    The 11 October 2022 manipulation and roughly 114 million dollar drain, and the subsequent use of MNGO governance tokens to vote through a settlement with Mango DAO.
  4. Docket, United States v. Eisenberg, No. 1:23-cr-00010 (S.D.N.Y.)
    CourtListener (RECAP mirror of PACER), 2023
    Federal criminal docket, filed 9 January 2023 in the Southern District of New York. Two parallel civil dockets in the same district, CFTC v. Eisenberg (1:23-cv-00173) and Mango Labs, LLC v. Eisenberg (1:23-cv-00665), were confirmed through CourtListener's search API during research without a separately fetched page URL, so they are recorded here rather than linked.
  5. Beanstalk Farms $182M Governance Attack
    Safeguard, 2024
    Sets out the five named defences: governance execution delays, snapshot based voting at proposal submission, time weighted voting power, multi stage governance, and same transaction flash loan detection.

Last reviewed 2026-08

Know the terms but not sure how they apply to your project? That is what an engagement is for. We design, document, and stress-test the whole token economy inside the Tokenomics Data Room.

Book a discovery call

80+ projects advised. Complete tokenomics in 4 to 6 weeks.