Override Snapshot Strategy

Allows delegators to override their delegates on Snapshot votes

Summary / Rationale

This Snapshot strategy works the same way as the existing erc20-votes strategy that ENS and other DAOs use, except that it also allows individuals who delegated to someone else to still vote individually if they want!

So if you see your delegate vote differently than you want to, you can override that vote by individually voting yourself on the proposal. You can also preemptively vote on a proposal if your delegate hasn't voted already. Or, if your delegate doesn’t vote at all, you can still vote individually on a proposal.

Using a strategy like this could improve voter participation. Maybe some people would like to vote on a single issue, but don’t want to spend the gas/effort to delegate to themselves, vote, and then delegate back. And since it’s on Snapshot, it’s all gas-free for everyone.

This might only make sense for social (off-chain only) proposals because of the possible discrepancy in off-chain Snapshot versus actual on-chain votes. But, it sounds like a strategy like this could still help out a lot on various social proposals.

There is also an additional report tool that can query the Snapshot API for a proposal and generate a report of the "override" voters. This can help determine how much the Snapshot outcome was affected by these voters, so that you could still use this strategy for proposals that will have an on-chain vote as well, if you wanted to.

Additional Details

This Snapshot strategy is similar to ERC-20 Votes, except that it also allows individual delegators to override their vote on a particular proposal if they wish.

NOTE: Your account must still actually be delegated in the token contract. If your account is not delegated then your local token balance will not count towards your voting power, same as today.

If an account has any delegated voting power returned from getVotes, adds that value, minus the balances from any delegators that have also individually voted.

If an account is delegating to itself, then its own token balance will already be included in the getVotes return value.

If an account is delegating to a different valid address, adds the local token balance. The account must be delegated to another valid address, otherwise the local token balance will not be added.

Team

Timeline

Already done! This would be a retroactive grant for the work done. Of course, if any additional work is required for either the report tool or strategy itself, this would cover that as well. But as of now the work is complete.

Links / Resources