Flexible Voting is an extension to the widely used OpenZeppelin Governor (opens in a new tab) that enables novel voting schemes to be created. With a Flexible Voting Governor, a delegate may split their vote weight between Against/For/Abstain.

This is most useful when the delegate is itself a contract, implementing its own rules for voting. By allowing a contract-delegate to split its vote weight, the voting preferences of many disparate token holders can be rolled up to the Governor itself.

This simple mechanism unlocks all kinds of new use cases, such as voting with governance tokens that are deposited as collateral in a lending protocol:

Flexible voting before and after

Many other use cases are also possible, such as:

  • Voting with tokens while earning yield in DeFi
  • Voting with tokens bridged to L2
  • Shielded voting (i.e. secret/private voting)
  • Liquid delegation and sub-delegation
  • Cheaper subsidized signature based voting
  • Voting with tokens held by a 3rd party custodian
  • Voting with tokens held in vesting contracts
  • And much more...

Anyone can permissionlessly build a new voting schemes that DAO governance token holders can opt into. These docs will cover topics that are useful for third party developers looking to build on Flexible Voting, or to incorporate Flexible Voting in a DAO.