Knowledge base
HomeCapersWiki homeEssays
How Caper worksFoundationsRaising & marketsGovernanceEditorial policyHelpGeneral referenceDAOsDAO governance & toolingDecentralized scienceEconomics
MANIFESTO · CAPER / OWN THE GAME
An organization that raises and deploys its own capital. A market that never closes. Governance that can't be captured.
TermsPrivacy
Σ TVL:√901K|24H VOL:√0|CAPERS:13
LAUNCHGOVERN
  1. Wiki
  2. /
  3. DAO governance & tooling
  4. /
  5. Concepts
  6. /
  7. Voting & decision-making
  8. /
  9. Late-vote swings

PreviousKlerosNextLlama

Why a deadline is an advantage

An on-chain vote publishes each ballot as it is cast, and closes at a block height fixed when the proposal was created. Both properties are usually treated as virtues: the tally is auditable in flight, and nobody can extend a losing vote. Together they hand a measurable advantage to whoever votes last.

A holder who votes early reveals their weight and their direction to everyone who votes after them. A holder who votes late sees the whole distribution and reveals nothing anyone can still act on. The advantage is not an exploit and needs no privileged access — it is simply the shape of a public auction with a hard close, and it grows with the concentration of the electorate, because the fewer addresses can move the outcome, the more of it one late address captures.

It is sharpest against a proposal that appears to be losing. A minority that expects to be outvoted has an incentive to let the tally read Defeated for most of the period — which also suppresses turnout among opponents, since a proposal that is clearly failing is not worth the gas to oppose (voter apathy is a resource here, not only a complaint) — and then to vote its whole position at once, too close to the close for the newly-motivated opposition to organise.

Compound Proposal 289

The canonical case. In July 2024 a group calling itself the Golden Boys put Proposal 289, Trust Setup for DAO investment into GoldCOMP, to Compound's Governor Bravo: 499,000 COMP of the DAO's reserves — about $24 million at the time — into a vault the proposers would influence. Tally's record of the on-chain vote is 682.19K COMP for, 633.64K against, 5.24 abstaining, and the proposal's final state is Canceled: it was never executed.

The timing is what makes it a case rather than an anecdote. On CryptoSlate's reconstruction of the vote, 563,591 of the 682,191 supporting votes — 82% of all support — were cast in the final 34 minutes, with the largest single block landing eight minutes before the deadline. Nothing was exploited; Governor Bravo did exactly what it is written to do. The proposal passed, and then the proposers agreed to rescind it in exchange for a negotiated staking product.

That resolution is the part worth reading twice. The rules produced an outcome the DAO did not want, and what reversed it was not the rules but a negotiation conducted off-chain under reputational pressure, by people with no formal standing to conduct it. A governance system whose last line of defence is that the winner can be talked out of winning does not have a last line of defence. Compound's own directory entry covers the capture side of the episode — see Compound DAO.

Four answers, and what each one keys on

The design responses differ less in what they do than in what event they watch for, and that difference decides which swings they catch.

Extend the deadline when quorum arrives late

OpenZeppelin ships this as GovernorPreventLateQuorum, a Governor module that pushes a proposal's deadline back so that a set amount of time always remains after quorum is first reached — the contract's own stated purpose is to stop "a large voter from swaying a vote and triggering quorum at the last minute, by ensuring there is always time for other voters to react". The parameter is lateQuorumVoteExtension and governance itself can change it. Its documented limit is precise and easy to miss: the module "only reacts to the first time a proposal reaches quorum", so a swing that happens once quorum is already comfortably met — a for-versus-against reversal rather than a quorum event — extends nothing.

Open an objection-only period when the outcome flips

Nouns DAO V3 keys on the outcome instead. Its specification defines a lastMinuteWindow at the end of the voting period: if a proposal is Defeated inside that window and a For vote flips it to Successful, an objection period opens, during which accounts that have already voted cannot vote and accounts that have not may only vote Against. Both lengths are contract parameters — lastMinuteWindowInBlocks and objectionPeriodDurationInBlocks. It is a narrower instrument than a deadline extension and a more exact one: it fires on precisely the manoeuvre it is named for, and the asymmetric ballot means the extra time cannot be used to widen the winning margin.

Weight the vote by how long the position has been held

Conviction voting removes the deadline rather than defending it: support accrues weight the longer it is held, so a position taken minutes before a close carries almost none. It is the only one of the four that makes the late vote structurally weak instead of procedurally awkward — and it pays for that by making every decision slower, including the ones nobody contests.

Put a delay between the vote and the money

Governance timelocks do not touch the vote at all; they separate passing from executing, so a surprising result is visible before it is irreversible. A timelock alone only relocates the problem — it buys time for a response that still has to come from somewhere — which is why it is usually paired with a guardian or security council that can cancel within the delay. That pairing is the trade the 289 episode pushed the industry toward, and it is a real trade: the DAO gets a stop button, and someone has to hold it.

What none of them give the dissenter

All four remedies are defences of the process. Each extends the window in which the electorate can respond, and each assumes a response is available — that opponents can be mustered, that a guardian will act, that waiting is affordable. None of them changes what happens to a holder who loses the vote on the merits and wants no part of the result.

That holder's only exit is the market: sell the governance token into whatever bid exists, at a price that already reflects the decision they are trying to escape. It is the worst moment to be selling, which is exactly why the threat of it disciplines nothing. A governance system can be perfectly defended against late-vote swings and still offer a dissenting minority nothing but the door, priced by the people walking through it.

How Caper approaches this

A caper splits the decision in two, so that winning the ballot is not the same as getting the money. The ranked vote is legislative: it decides what the caper wants, and the contract will not proceed without it (trigger_proposal refuses anything that has not passed its tally). What it does not do is execute. A passed proposal then has to be triggered, which opens a market window, and resolution compares the curve's time-weighted average price across that window against the baseline recorded when the window opened. Only if the market holds does the proposal become executable.

A swing in the closing seconds of the ballot therefore buys its author the first phase and nothing else. The second phase has no ballot to snipe: it is priced continuously by everyone holding the token, it starts after the tally is known rather than before, and a tie ratifies — holding is consent. And a holder who dislikes the result does not have to sell into that window: the exit right redeems a share of the treasury sized by their own weight, at treasury value rather than at market. The mechanics are set out on voting and proposals; the window length and the ballot period are fields on the deployed component, and the FAQ explains how to read them off the ledger.

References

  • Compound Proposal 289 on Tally — the on-chain record: totals, timeline and final state.
  • GovernorBravoDelegate.sol — the governor that ran the vote.
  • OpenZeppelin GovernorPreventLateQuorum — the deadline-extension module, and its own note on what it does not catch.
  • Nouns DAO NounsDAOInterfaces.sol — lastMinuteWindowInBlocks and objectionPeriodDurationInBlocks as deployed.
  • Nouns DAO V3 specification — the objection-only period's trigger and ballot rules.
  • CryptoSlate: DAOs are forcing crypto protocols to choose between code and emergency brakes (5 September 2026) — the minute-by-minute reconstruction of 289's close.
  • Unchained: Golden Boys agree to cancel Proposal 289 — the negotiated reversal.
Part of a series onWhat is a DAO?
ConceptA late-vote swing — the outcome of a vote changing in the closing minutes of a fixed voting period, when there is no longer time for anyone to answer it
Problem addressedA deadline known in advance is a deadline that can be waited out. Votes are public while they are being cast, so a holder who votes last votes with strictly more information than everyone else and gives up strictly less of it
Common mechanismsDeadline extension on late quorum · objection-only periods · time-weighted voting power · execution timelocks with a guardian veto · two-phase ratification
Reference implementationsOpenZeppelin GovernorPreventLateQuorum · Nouns DAO objectionPeriodDurationInBlocks · Compound Governor Bravo
Worked exampleCompound Proposal 289 (July 2024) — 682.19K COMP for, 633.64K against, cancelled before execution
Key trade-offEvery remedy buys the electorate reaction time by handing someone — a late voter, a guardian, a market — the power to move the clock