Compound goldCOMP Treasury Self-Delegation Governance-Capture Attempt (2024-07-29)
- Name: Compound goldCOMP treasury self-delegation governance-capture attempt
- Date: 2024-07-29
- Protocol: Compound DAO
- Chain: Ethereum
- Category: governance capture / delegated-voting concentration / treasury self-delegation / attempted DAO capture
- Loss: no onchain treasury drain completed, but proposal
289sought to move499,000 COMPof Compound treasury inventory into the Golden Boys’TrustSetup/goldCOMPstructure, which would also have handed the same bloc a large new tranche of live voting power - Summary: This was a governance-capture attempt through recursive vote concentration rather than flash-loaned votes, thin-float spot buying, or proposal-code smuggling. A bloc around Humpy / the Golden Boys had already accumulated suspiciously large delegated COMP balances by May 2024, prompting OpenZeppelin to warn that five Bybit-funded addresses plus the initial proposer already represented about
325,333 COMP, only74,667 COMPshort of Compound’s400,000 COMPquorum. The crucial mistake was that the proposed treasury investment path did not separate economics from constitutional power: deposited treasury COMP insidegoldCOMPwould still delegate governance rights to the GoldenBoyz multisig. The campaign escalated in three clear steps: proposal247asked for a direct92,000 COMPtransfer to a Golden Boys multisig; proposal279wrapped the same92,000 COMPtransfer in aTrustSetupshell; proposal289then raised the request to499,000 COMPand paired it with agrantPhase(1)call so the trust could invest immediately after funding. By late July, defenders treated that sequence as an attempted DAO capture and began organizing proposal290as an emergency constitutional response. Contemporaneous forum posts and Blockful’s writeup describe proposal289as having passed the vote stage, but the plan never converted into live treasury control because Humpy canceled it on 2024-07-30 under community pressure, after which the defensive counter-proposal was also withdrawn. - Trigger / entry point:
- Compound governance still treated delegated COMP balances as direct constitutional power over treasury and timelock outcomes, with a
400,000 COMPquorum that could be approached by a relatively small number of coordinated delegates. - OpenZeppelin’s May 2024 governance-security notice identified five addresses withdrawing COMP from Bybit and delegating to fresh accounts, totaling
230,333 COMP; together with the proposal-247 wallet’s95,000 COMP, that suspicious bloc was already about325,333 COMPstrong. - The Golden Boys’
goldCOMPdesign delegated deposited COMP voting rights to the GoldenBoyz multisig, meaning treasury-deployed COMP would not become inert capital; it would become additional governance weight for the proposal beneficiary. - Compound’s proposal surface allowed treasury COMP to be transferred into an externally operated trust/vault structure without first neutralizing or quarantining the governance rights attached to that COMP.
- Compound governance still treated delegated COMP balances as direct constitutional power over treasury and timelock outcomes, with a
- Root cause:
- Compound let a proposal beneficiary ask the DAO to transfer treasury-held governance tokens into a structure that would also delegate those same governance rights back to the beneficiary’s operator set.
- The DAO’s treasury-investment path failed to separate economic exposure from governance power. In this design,
deploy treasury assetsandamplify the proposer's voting blocwere the same action. - Governance assumed that if a proposal formally passed, the resulting vote concentration was constitutionally legitimate even when the transfer itself would make future governance reversals much harder.
- Defensive capacity depended on rapid delegate coordination and emergency counter-governance, not on a built-in rule that treasury-owned COMP must remain neutral, non-voting, or DAO-controlled.
- Exploit path:
- On 2024-05-06, Compound governance proposal
247unexpectedly asked the DAO to transfer5%of the COMP treasury to a Golden Boys-controlled strategy. OpenZeppelin’s warning thread recorded five Bybit-funded delegated addresses totaling230,333 COMPand estimated that, together with the proposer’s95,000 COMP, the apparent bloc already held about325,333 COMP, only74,667 COMPbelow quorum. - The initial onchain version, proposal
247, sought to transfer92,000 COMPdirectly to the Golden Boys multisig at0x941dcEA21101A385b979286CC6D6A9Bf435EB1C2, which would then deposit the COMP intogoldCOMP, stake the resulting wrapper in a99/1Balancer pool, and later return principal plus periodically swapped rewards to Compound. - On 2024-07-09, Humpy returned with a
TrustSetupwrapper at0xb9259D9f2249eB7FB44140926BFd376B63c4925e, arguing that phase-gated invest/divest permissions made the structure safer. The forum post still described the core mechanics plainly: treasury COMP would be transferred into the trust setup, the trust could latergrantPhase(1)to invest, and the resultinggoldCOMPdesign remained controlled by the Golden Boys’ operating multisig. - On 2024-07-15, the same trust-setup design reached Compound governance as proposal
279, again asking for92,000 COMPplus an invest-enable action. OpenZeppelin’s follow-up warning treated that vote as a live coordination test and reiterated that the underlying governance-risk issue had not been fixed. - Wintermute’s response to that trust-setup version identified the real constitutional issue rather than only the custody details: the DAO could not directly force divestment, and the
goldCOMPvault delegated deposited COMP voting rights to the GoldenBoyz multisig. Wintermute warned that the requested92,000 COMP, combined with Humpy’s own holdings and the suspiciously accumulated delegates from OpenZeppelin’s notice, would already be enough to cross quorum and threaten future governance. - By late July, the same campaign escalated into proposal
289, which Tally and Blockful both describe as a much larger request for499,000 COMPand a call tograntPhase, allowing the trust setup to invest immediately once treasury funds arrived. - Because deposited treasury COMP inside
goldCOMPwould delegate to the same Golden Boys-controlled delegatee, execution of proposal289would not merely have invested treasury assets; it would have enlarged the proposer’s own voting bloc with treasury-owned COMP and made later recovery votes harder to win. - Community members treated that outcome as an attempted constitutional takeover. Alex Netto / Blockful’s proposal-290 response thread explicitly framed the situation as DAO capture risk and proposed moving timelock admin to a community multisig so Compound could deploy a new governor that would ignore the
goldCOMPdelegatee’s votes or otherwise route around the concentrated voting block. - On 2024-07-28, proposal
290was published as the defensivePrecautionary Transfer of Timelock Adminpath, but before its vote opened Humpy agreed in the AlphaGrowth thread to cancel proposal289. Forum posts early on 2024-07-30 confirmed proposal289had been canceled, and proposal290was then canceled the same day.
- On 2024-05-06, Compound governance proposal
- What the attacker needed to be true:
- A sufficiently large delegated COMP bloc had to exist before the treasury transfer so that adding treasury-owned COMP would push the same faction into decisive or near-decisive governance control.
- Deposited treasury COMP had to keep its live voting rights and delegate them to the same operator set benefiting from the proposal.
- Compound’s governance had to allow treasury-allocation proposals that also changed the future electorate by moving governance tokens into a beneficiary-controlled wrapper.
- There had to be no built-in veto, guardian, or treasury-vote-neutralization rule strong enough to stop or sandbox the transfer once governance approved it.
- Other large COMP holders had to remain disengaged enough that emergency defense required unusually high coordination pressure.
- Technical anatomy worth remembering:
- This is a useful governance-capture cousin because the attacker did not need flash loans, vote-rental primitives, metamorphic proposal code, or a thin-spot-market buyout. The governance surface was threatened by a self-reinforcing treasury transfer.
- The key mistake was not simply
delegate concentration. It was allowing the treasury’s own governance token inventory to be mobilized as new voting power for the bloc asking to control it. TrustSetupreduced some raw multisig discretion around invest/divest phases, but it did not solve the more important problem thatgoldCOMPdelegated the treasury’s COMP voting rights to the GoldenBoyz multisig.- Proposal
279matters because it showed the intermediate hardening pattern attackers can use in governance capture attempts: replace the obviously beneficiary-controlled multisig wrapper with a narrower shell, keep the same delegatee outcome, and use the revised proposal to test defender coordination before making a larger ask. - Proposal
290is part of the technical anatomy, not just social color: defenders were already discussing a replacement governor that would explicitly ignore thegoldCOMPdelegatee’s votes. That is strong evidence that participants understood the proposal as a constitutional capture path, not an ordinary treasury-allocation disagreement. - The preserved lesson is that governance-token treasuries need explicit rules for vote neutrality. Otherwise a hostile faction can use governance to hand itself the treasury’s own electorate.
- Representative addresses and control points:
- Compound Governor / governance surface:
0xc0Da02939E1441F497fd74F78cE7Decb17B66529(governance identifier used by Tally) - Golden Boys multisig requested in proposal
247:0x941dcEA21101A385b979286CC6D6A9Bf435EB1C2 - TrustSetup contract used in proposals
279and289:0xb9259D9f2249eB7FB44140926BFd376B63c4925e - Defensive proposal
290target / timelock admin recipient: Compound community multisig at0x6d903f6003cca6255d85cca4d3b5e5146dc33925 - Suspicious delegated addresses highlighted by OpenZeppelin:
0x4f3a2bfd91761ac0d82261b82bb5c8ace4644a51,0x9d0361f5da754994c1df011e86469416d6f1ec31,0x93cb8af7d9589f0ae34501391e8ea57850581a08,0x4ac0dbce527bcb60787cef10053348b146c6b5e3,0xc64c27791b2355b3080721197b89602ac6c92b7b
- Compound Governor / governance surface:
- Response / mitigation:
- OpenZeppelin publicly warned delegates in May that the goldCOMP push looked like a possible coordinated governance attack and urged active vote monitoring, then reiterated during proposal
279that the trust-setup revision had not fixed the core governance-risk issue. - Wintermute and other delegates opposed the trust-setup version because divestment still depended on the GoldenBoyz multisig and because deposited COMP would delegate governance power to that same operator set.
- AlphaGrowth proposed an alternate staked-COMP design conditioned on immediate cancellation of proposal
289, with arr00 agreeing to rescind proposal290if the threat was removed. - Blockful and allied delegates organized proposal
290as an emergency path to move timelock admin to a community multisig and potentially deploy a governor that would not count thegoldCOMPdelegatee’s votes. - Proposal
289was canceled on 2024-07-30 before execution; proposal290was then canceled before its voting period opened.
- OpenZeppelin publicly warned delegates in May that the goldCOMP push looked like a possible coordinated governance attack and urged active vote monitoring, then reiterated during proposal
Pattern tags
- governance-capture
- treasury-vote-amplification-governance-token-neutrality-failure
- beneficial-owner-vote-operator-separation-failure
- backstop-failure-governance-capture
- The dangerous step was not only
move treasury COMP into a yield wrapper; it wasmove treasury COMP into a yield wrapper whose delegate policy hands that same COMP voting power to the proposal beneficiary. - Proposal
289would have changed the future electorate, not just treasury exposure. The same vote that approved the transfer would also have made later reversal votes materially harder by amplifying the beneficiary bloc with treasury-owned COMP. TrustSetupnarrowed some raw custody discretion compared with the original direct transfer ask, but it did not neutralize the decisive constitutional fact that deposited COMP insidegoldCOMPstill delegated to the GoldenBoyz multisig.- The emergency discussion around proposal
290matters because defenders were already reasoning at the governor and timelock layer, which is strong evidence that participants understood the proposal as electorate capture rather than an ordinary treasury-allocation disagreement.
Why the exploit worked
- Compound collapsed
treasury deployment of COMPandfuture constitutional power over COMPinto one proposal surface. Once treasury-owned COMP could move intogoldCOMPwithout first becoming vote-neutral, the beneficiary was not merely asking for yield-bearing inventory; it was asking for more votes in future governance fights. - The proposal sequence shows a useful hostile-governance hardening pattern. Proposal
247made the self-serving transfer obvious, proposal279wrapped the same outcome in a narrowerTrustSetupshell, and proposal289then scaled the ask dramatically once the intermediary form had tested defender attention. The mechanics changed, but the delegatee outcome did not. - Active-turnout math already made the capture plausible before the treasury transfer. OpenZeppelin’s May notice preserved the core precondition: a suspicious bloc was already only about
74,667 COMPshort of quorum. That meant the treasury’s own COMP inventory was not a passive asset; it was a potential constitutional swing tranche. - Recovery would have been structurally harder after execution than before it. That is the sharper danger here: the same proposal that passed under the old electorate would have enlarged the beneficiary’s future electorate, making reversal depend on beating the very bloc the proposal had just amplified.
- The live defense was mostly social coordination plus emergency counter-governance, not a built-in vote-neutrality rule. Compound survived because delegates noticed, argued, and pressured cancellation before execution, not because the treasury-management path mechanically refused to turn treasury COMP into beneficiary-controlled votes.
Detection and audit pivots
- Review any treasury-governance-token deployment as
electorate reconfiguration, not onlyyield generation. The critical question is who controls the votes after execution, not whether the wrapper’s economics sound plausible on paper. - Model post-execution coalition math explicitly. If transferred treasury COMP would move one bloc from
near quorumtocan likely block reversal or win the next vote, the proposal is already constitutional-grade even if the prose emphasizes treasury returns. - Ask whether wrapper hardening is constitutional hardening or only custody hardening. A trust shell, phase gate, or narrower multisig can reduce operational discretion while still leaving the decisive vote-routing outcome unchanged.
- Trace divestment authority and delegate authority separately. If the DAO cannot rapidly neutralize the votes without first defeating the newly amplified bloc, recall is weaker than it looks.
- Treat treasury-held governance inventory as part of the root trust boundary whenever active float is thin. Compound’s
499,000 COMPask mattered because treasury balances were large enough to reshape quorum politics, not just portfolio composition. - Audit defender backstops against the proposal that changes the next electorate, not only the first transfer. Proposal
290is the reminder that a real governance defense needs a path to interrupt electorate mutation before the mutated electorate starts governing.
Failure-prevention checklist
- Keep treasury-held governance tokens constitutionally neutral by default. If the DAO wants economic exposure to its own token, the deployment path should either strip voting rights, force delegation back to a DAO-controlled neutral address, or use a wrapper whose votes cannot be redirected by the strategy operator.
- Treat any proposal that changes the future electorate as a constitutional proposal, not a routine treasury-allocation proposal.
Send COMP to a yield structureandchange who can win the next voteshould never be reviewed as separate surfaces when the asset being moved is the governance token itself. - Require explicit vote-neutrality proofs for treasury deployments of the governance asset: who holds the wrapper, who controls delegation, who can change delegatee, who can divest, and whether the DAO can recover assets without first defeating the newly amplified bloc.
- Do not let beneficiary-controlled wrappers, trusts, or multisigs become the sole divestment path for treasury governance tokens. If recovery requires cooperation from the same operator that gains the votes, the neutrality boundary is already gone.
- Add a cooling period or narrower approval lane for proposals that would meaningfully concentrate voting power, especially when treasury inventory would move to one delegatee, wrapper, or operator-controlled structure.
- Monitor delegated-vote concentration and exchange-funded accumulation continuously enough to flag when one bloc is approaching quorum before a treasury-transfer proposal gives it the rest.
- Keep emergency constitutional backstops legible and rehearsed: what guardian, timelock-admin, replacement-governor, or veto path exists if a proposal would route treasury-owned voting weight into an attacking bloc?
- Maintain explicit design rules for treasury strategies involving the governance token itself. A DAO should be able to state in advance whether staking, wrapping, liquidity provision, or third-party management of treasury governance tokens is ever allowed and under what vote-neutrality constraints.
Audit prompts
- If this proposal executes, who controls the voting rights attached to the transferred governance tokens on day one, and who can change that delegatee later?
- Can the DAO recover or neutralize the treasury tokens without first winning a vote against the very bloc that just gained those votes?
- Does the proposed treasury wrapper, trust, vault, or pool keep governance rights live, and if so are those rights neutralized, burned, redirected to a DAO-owned neutral address, or delegated to the beneficiary?
- How much additional voting power would the proposal create for the beneficiary relative to current quorum, current active turnout, and known aligned delegate blocs?
- Is divestment permission symmetric with investment permission, or does the beneficiary control the exit path even after the DAO transfers the assets?
- What suspicious delegation buildup, exchange-funded accumulation, or low-float concentration already exists outside the proposal, and does this treasury move turn that latent bloc into a winning constitutional coalition?
- Would the proposal still look acceptable if reviewed as
electorate reconfigurationrather thantreasury yield generation? - What emergency path exists if the proposal passes but the community then realizes it has made future governance reversals structurally unwinnable?
- Are delegates being asked to trust social assurances about future restraint, or is vote neutrality enforced mechanically by the strategy design itself?
Lessons that should already be standard
- Treasury management of the governance token is governance security, not just treasury management. The balance-sheet and constitution are the same object once the treasury asset can still vote.
- A wrapper that preserves vote delegation is not neutral capital. If the beneficiary controls the delegatee, the treasury transfer is also an electorate transfer.
The DAO approved itis not enough when the approval itself would rewrite the future electorate that must approve any reversal.- Trust-minimizing the investment path is not the same thing as neutralizing governance power. Compound’s
TrustSetupstill left the decisive question unanswered: who owned the votes after the COMP moved? - Hostile governance campaigns often harden cosmetically before they harden constitutionally. Replacing a direct multisig transfer with a narrower shell can still leave the same voting-power outcome intact.
- Emergency counter-governance is a brittle last line of defense. Healthy systems should not depend on a perfectly coordinated rescue proposal to stop treasury-owned voting weight from being turned against the DAO.
- Low active turnout makes treasury self-delegation especially dangerous. A proposal does not need to buy the whole supply if it can capture the treasury’s own dormant electorate.
Why this incident matters
- It adds a distinct governance-capture exemplar to the corpus: treasury self-delegation. The proposal beneficiary was trying to acquire not just assets, but the treasury’s own future voting weight.
- It shows why governance-token treasury management is not operationally separable from governance security. A
yieldproposal on the governance token can also be a control-plane proposal. - It preserves a clean case where the constitutional danger was obvious enough that defenders immediately discussed replacing the governor itself, not just voting
Againsta normal treasury motion. - It is a useful comparison case for other DAOs that hold large inventories of their own governance token in treasury, staking, liquidity, or wrapper programs without clearly neutralizing the attached voting rights.
Internal linkages
- Sharper recurring pattern: treasury-vote-amplification-governance-token-neutrality-failure.
- Positive-design treasury companion: treasury-governance-token-vote-neutrality-discipline — the healthy-side question here is how Compound should have kept treasury COMP economically deployable without letting one proposal route the treasury’s own electorate weight into a beneficiary-controlled bloc.
- Broader operator-vs-principal lens: beneficial-owner-vote-operator-separation-failure.
- Core parent family: governance-capture.
- Adjacent defender-path lens: backstop-failure-governance-capture.
- Positive-design backstop companion: governance-backstop-scope-and-intervention-latency-discipline.
- Adjacent protocol note: compound.
Control surface
-
The leverage sat in delegated COMP accumulation, the
400,000 COMPquorum threshold, treasury custody of the governance token itself,goldCOMP’s delegatee policy, and the timelock/governor machinery that could convert one passed proposal into a larger future electorate for the same bloc. -
The dangerous mistake was not just
a whale got bigger. It was letting a proposal use the treasury’s own governance token inventory as the fuel for its beneficiary’s future constitutional power. -
Sources:
- https://www.comp.xyz/t/governance-security-notice-goldcomp-proposal-247/5220
- https://www.comp.xyz/t/trust-setup-for-dao-investment-into-goldcomp/5406
- https://www.comp.xyz/t/alphagrowth-stake-compound-product/5478
- https://www.comp.xyz/t/possible-solutions-around-proposal-290/5485
- https://compound.finance/governance/proposals/247
- https://compound.finance/governance/proposals/279
- https://compound.finance/governance/proposals/289
- https://compound.finance/governance/proposals/290
- https://paragraph.com/@blockful/anatomy-and-antidote-for-compound-war
- https://etherscan.io/address/0xb9259d9f2249eb7fb44140926bfd376b63c4925e#code
-
Last reviewed: 2026-07-30 UTC