Governance

Queue and execute a proposal

The two steps after a vote passes, who can take them, and why a button is greyed out.

Queue and execute a proposal

A vote that passes does not change anything by itself. The proposal has to be queued into the timelock, wait out the delay, and then be executed. Both steps are permissionless: anyone with a wallet can take them, not just the proposer and not an admin, so a passed proposal cannot be quietly dropped.

Each step is one transaction and costs you gas. Nothing else is asked of you, and neither step gives you any say over the outcome: the vote already decided that.

Where the buttons are

Two places, and they do the same thing:

  • on the row of a past proposal on the overview page
  • at the top of that proposal's own page

They only appear when the proposal is in the state they belong to, so at most one of the two is ever shown.

Queue

Queue appears once a proposal is Succeeded. It hands the proposal to the timelock, which fixes the moment it becomes executable, and the state changes to Queued.

The button is greyed out when one of the proposal's targets is not whitelisted on the governor. Hovering it says so. Nothing can be done about that after the fact: a proposal aimed at a target the governor does not accept can pass its vote and still never be settled on-chain.

Execute

Execute appears once a proposal is Queued, and stays greyed out until the timelock delay has passed. Hovering it tells you when that is, in your own local time. From that moment on, pressing it applies the change to the chain and the state becomes Executed.

The delay is deliberate. It is what makes the outcome predictable: everyone who disagrees with a passed proposal has the whole timelock to react, exit or organise before it lands.

Do not leave a queued proposal sitting. A proposal that is never executed eventually becomes Expired, and then the vote has to be run again from the start.

What cannot be settled

  • Signal proposals. They carry no call, so there is nothing to queue and nothing to execute. That is the point of them.
  • Proposals with a target that is not whitelisted. Covered above.
  • Proposals with a value the contract rejects. A parameter change that sets a value outside the range the contract enforces passes its vote, queues, and then reverts when you try to execute it. The range is checked in the proposal form for exactly this reason, so this only happens to proposals written elsewhere.