snapshot
Blog
  • Welcome to Snapshot docs
  • User guides
    • Spaces
      • What is a space?
      • Create a space
        • Register an ENS domain
        • Alternative way to create a space
      • Settings
      • Sub-spaces
      • Space verification
      • Space hibernation
      • Add a custom domain
      • Add a skin
      • Space roles
      • Space badges
      • Snapshot Pro
      • Space handbook
        • Most common
        • Voting threshold
        • Anti-whale
        • Sybil resistance, scam & spam prevention
        • Liquidity / staking pool
        • Delegation
        • NFT voting
          • Most common: ERC-721
          • Multi-token: ERC-1155
          • POAP - Proof of Attendance
        • Custom calculations
    • Create a proposal
    • Voting
      • Vote on a proposal
      • Delegate your voting power
    • Voting strategies
    • Validation strategies
    • Using Safe multi-sig
    • Delegation
  • Developer Guides
    • Create a voting strategy
    • Create a validation strategy
    • Identify integrator activity
    • Add a network
  • Tools
    • Tools overview
    • Snapshot.js
    • API
      • API Keys
    • Webhooks
    • Subgraphs
    • Mobile notifications
    • Bots
  • Snapshot X
    • Overview
    • User guides
      • Create a space
      • Proposals
      • Voting
      • Safe execution setup
    • Protocol
      • Overview
      • Space actions
      • Space controller actions
      • Authenticators
      • Proposal validations
      • Voting strategies
      • Starknet specifics
      • Execution strategies
      • Audits
    • Services
      • Architecture
      • API
      • SX.js
      • UI
      • Mana
  • V1 interface
    • Email notifications
    • Plugins
      • What is a plugin?
      • Create a plugin
      • oSnap
      • SafeSnap
      • POAP
      • Quorum
      • Domino notifications
      • Galxe
    • Boost
  • Community
    • Help center
    • Discord
    • X (Twitter)
    • GitHub
Powered by GitBook
On this page
  • What is a voting type?
  • Voting types
  • Single choice voting
  • Weighted voting
  • Approval voting
  • Quadratic voting
  • Ranked choice voting (Instant Runoff Voting)
  • Basic voting

Was this helpful?

Edit on GitHub
Export as PDF
  1. Proposals

Voting types

Learn more about the different voting schemes on Snapshot.

Last updated 3 months ago

Was this helpful?

Snapshot supports a number of different voting types and we plan to support many more in the future. If you would like to request a new voting type, please open a feature request

What is a voting type?

Voting type defines how users can cast their votes and how the final result is calculated.

Do not mistake it with the voting strategy though - a is used to calculate the individual voting power of a user while the voting type calculates the outcome of the proposal.

Voting type is defined in the space settings or at the level of an individual proposal (unless it has been already defined in the space settings) and can allow the users to:

  • Choose only one option - Single choice voting

  • Spread their votes over multiple options - Weighted voting

  • Approve a certain number of options - Approval voting

  • Spread their votes over multiple options using the formula - Quadratic voting

  • Rank the different choices in their order of preference - Ranked choice voting (Instant Runoff Voting)

  • Abstain from voting while still participating in quorum - Basic voting

Let's have a look at each voting type in the next section.

Voting types

Single choice voting

Each user can select only one option. The results will reflect these votes as percentages of the total voting power of all voting participants cast on the specific choice.

Ideal for choosing one option from many. Pros: Most simple and common voting type which is easy to set up and use. Cons: Voters can pick only one option.

Weighted voting

Each user can spread their voting power across any number of choices, from one to all. Their voting power will be divided between their chosen options according to how much weight they attribute to each option by increasing or decreasing the voting power fraction.

Pros: Allows voters to express support for more than one option and specify how much they support each of them. Cons: Requires more time and adds complexity to the voting process.

Approval voting

Each user can select (approve) any number of choices, each selected choice will receive equal voting power, i.e. if user selects two choices, each choice will receive the total voting power of the user.

Pros: Ask for approval of several decisions in a single proposal. Cons: There is no way to manifest how much you support each choice. It’s a simple yes or no.

Quadratic voting

Snapshot's Quadratic Voting (QV) type goes beyond the conventional approach of simply calculating the square root of each voter's voting power. It presents a more nuanced and democratic framework for decision-making.

One of the main features of our QV type is its emphasis on the number of individual voters rather than the size of their voting power. By doing so, it ensures that every voice counts, thereby enhancing collective decision-making and preventing power concentration.

Additionally, Snapshot's QV type provides voters with the flexibility to distribute their voting power across multiple choices. This feature allows for a more precise representation of a voter's diverse opinions, all without any additional cost.

Drawing key principles from the Quadratic Funding model, our QV type fosters greater participation and effectively balances influence. It represents a significant advancement over simpler voting mechanisms that rely on basic square root calculations of voting power.

Let's have a look at an example:

Let's consider there are 3 voters and two choices, A and B:

  • Alice with 9 tokens

  • Bob with 4 tokens

  • Maria with 1 token

  • John with 1 token

Here's how they allocate their tokens:

  • Alice allocates all her 9 tokens to A

  • Bob allocates all his 4 tokens to B

  • Maria allocates her 1 token to B

  • John allocates his 1 token to B

This results in:

  • A having 9 tokens

  • B having 6 tokens

Now, let's calculate the individual square root contributions for each choice:

  • A: the square root of Alice's 9 tokens is √9 = 3.

  • B: the square root of Bob's 4 tokens is √4 = 2, the square root of Maria's 1 token is √1 = 1, and the square root of John's 1 token is √1 = 1.

Next, we add up the square root contributions for each choice and square the result:

  • A: we square the 3, so A gets 3^2 = 9.

  • B: we add 2, 1, and 1, giving us 4, and square it, so B gets 4^2 = 16.

The total amount of tokens is 9 + 16 = 25.

So the percentages for each choice are:

  • A: 9 / 25 = 36%

  • B: 16 / 25 = 64%

As a last step, we match these percentages with the total voting power of 14 tokens:

  • A: 36% of 15 = 5.4 tokens

  • B: 64% of 15 = 9.6 tokens

All in all, you don't have to understand each step of the calculation. Yet, it should give you an idea of how Alice with 9 tokens was not able to push through his choice despite having the majority of Voting Power in the group as our QV model emphasizes the number of individual contributors rather than the amount contributed.

Ranked choice voting (Instant Runoff Voting)

Each user has to rank all choices in a desired order.

In the first step votes are counted for each voter's number one choice. If a choice receives more than 50% votes (cast on number one choices of each user), that choice wins. The result will show the percentages reflecting how users voted for their first choice only.

In the second step if the first-choice candidate doesn't get over 50% of the total votes the choice with the fewest number one votes is eliminated. Voters who had chosen the defeated choice as number one now have their number two choice counted as their number one choice.

The process continues over multiple rounds until a choice has more than half (> 50%) of the total votes.

Some options will show up as if they had not received any votes because they were eliminated in the ranked-choice voting process.

Pros: Favors the option with the strongest support and reduces wasted votes. Cons: Complex to understand. Will only determine one winner, doesn’t work well to select 2 or more winning options.

Basic voting

Each user can select one of three options: For, Against, Abstain.

The votes cast on the Abstain choice are counted in calculating if the necessary quorum has been reached for a proposal to pass.

Pros: Results are easy to interpret and hard to contest. Cons: Choices are predefined and cannot be edited.

👉

This voting method was first introduced by Float Protocol with (a fork of Snapshot).

This Voting type may encourage the whales to create multiple wallets and split their holdings among them. Therefore it's important to also implement a mechanism providing Sybil Resistance. Read more !

Pros: Dilutes the whales' voting power in favor of smaller holders. Individuals will matter more than the number of tokens. Cons: This voting type needs to be accompanied by a that prevents whales from splitting funds across different wallets.

For more details, read .

🙏
here
voting strategy
quadratic voting
Try it yourself!
Scattershot
👉
Try it yourself!
👉
Try it yourself!
here
Sybil-resistance mechanism
👉
Try it yourself!
this discussion
👉
Try it yourself!
👉
Try it yourself!