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
  • Voting strategy + Proposal validation strategy
  • Most common Voting strategies
  • Token based
  • Other
  • Validation strategies
  • Basic Validation
  • Gitcoin Passport Validation

Was this helpful?

Edit on GitHub
Export as PDF
  1. User guides
  2. Spaces
  3. Space handbook

Most common

Learn about the most popular configurations.

PreviousSpace handbookNextVoting threshold

Last updated 4 months ago

Was this helpful?

Before we jump into specific use cases, let's have a look at the most common configurations that the majority of spaces use on Snapshot.

Voting strategy + Proposal validation strategy

The minimum setup required to run your governance on Snapshot consists of:

  • Selecting at least one Voting strategy

  • Choosing a Validation strategy for proposal creation

To recap what Voting and Validation Strategies are:

are a way to define who is allowed to vote on a proposal or create a new one.

calculate how much Voting power each user has.

Most common Voting strategies

Token based

#1 Voting strategy on Snapshot used by over 8 thousand Spaces.

This strategy returns the balance for a specific ERC20 token that user holds in their wallet.

Strategy setup:

You can test it out in the Playground on Snapshot:

This strategy returns the balance of the user's ETH holdings as their Voting power.

Strategy setup:

You only need to provide the ETH symbol:

{
  "symbol": "ETH"
}

You can test it out in the Playground on Snapshot:

This strategy returns the balance for a specific ERC721 NFT as the user's Voting Power.

Strategy setup:

You can test it out in the Playground on Snapshot:

eth-with-balance in its simplest way to assign 1 vote to wallets holding any balance of ETH. Regardless of how big the balance is, the VP is always the same and equal to 1 VP. If the wallet doesn't hold any ETH, the VP is 0.

You can also use this strategy to set a voting threshold by adding an optional parameter minBalance and defining the minimum required balance which will give the user the eligibility to vote and 1 Voting Power. The parameter value is set to 0 by default.

Using a low minimum balance, this strategy can be used as a proxy for "active Ethereum address", based on the assumption that active addresses will always have some ETH to pay the fees.

Strategy setup:

{
  "symbol": "ETH",
  "minBalance": 0.5
}

You can test it out in the Playground on Snapshot:

Other

Another very popular strategy that gives you control over who can cast the votes. All you need to do is to provide the addresses which should be eligible to vote, and each will have 1 Voting Power.

The wallet address can also be its corresponding ENS domain.

Strategy setup:

{
  "symbol": "POINT",
  "addresses": [
    "0xa478c2975ab1ea89e8196811f51a7b7ade33eb11",
    "0xeF8305E140ac520225DAf050e2f71d5fBcC543e7"
  ]
}

You can test it out in the Playground on Snapshot:

Validation strategies

You can also configure a Validation strategy for voting. The combination of Voting Strategies and Voting validation allows you to achieve high customization of your governance process. How? Let's go through a couple of possible scenarios:

Let's have a look at the currently available strategies:

Basic Validation

When setting the Validation strategy up it’s important to keep in mind that it is meant to make it difficult for users outside of your community to post scam proposals.

Therefore make sure to use a high threshold, for example, $100 worth of your organization’s token. A good idea would be to check the holdings of previous proposal creators, both legitimate and scammers, to assess a reasonable value.

In case the threshold you’ve set is too high for some of your community members, don’t forget that you can always add the trusted addresses as Authors, thanks to which they will surpass the Proposal Validation stage.

Below you can see an example of the Basic Proposal Validation using Voting Strategies set for the space:

If you want to set up a more complex validation, you can use custom strategies as shown in the screenshot below:

Gitcoin Passport Validation

You can select individual or multiple stamps that matter for your space. You can also decide if they need to meet all of these criteria or only one. The more criteria you select, the more Sybil-resistant your space is.

This strategy is designed for NFT holdings and is similar to .

This allows you to poll your community without referencing the number of ETH they hold, each address will have 1VP. If you want to use this approach for another token, have a look at the strategy.

To assign arbitrary votes to a specific address, see .

Note that if you add other Strategies to your space and users meet the criteria set by those Strategies, the whitelist approach will not work anymore. To be able to combine multiple Voting strategies for whitelisted users, use the in a custom setup with the whitelist strategy selected, and a minimum score of 1 VP.

are a way to define who is allowed to vote on a proposal or create a new one.

All spaces are now required to use Proposal Validation in order to minimize the risk of malicious proposals. You can read more about this requirement .

You are using several Voting strategies for the Voting Power calculation, and at the same time, you want to require each user to have at least 10 VP to be able to cast a vote. You can then use with a minimum score of 10.

Only specific users should be able to vote, and their Voting Power should depend on their holdings. You can use strategy in the custom Basic Validation setup, and any combination of Voting Strategies for the calculation of the individual Voting power.

Your space is attacked by bots and you want only genuine humans to cast votes. You can use the for Sybil resistance, and select a combination of Voting Strategies for VP calculation.

The allows you to specify multiple Voting strategies to determine if a user is eligible to create a proposal.

is a set of conditions used to calculate user's voting power. Strategies enable Snapshot to calculate the final result of voting on a given proposal.

While Basic Validation focuses on the monetary assets, allows you to set requirements protecting your space against Sybil attacks by checking the stamps which serve as validation for the user’s identity and online reputation.

âš¡
âš¡
Validation strategies
Voting strategies
erc20-balance-of
eth-balance
erc721
eth-with-balance
erc20-with-balance
whitelist
whitelist weighted
âš¡
Validation strategies
Voting Strategy
erc20-balance-of
whitelist
Gitcoin Passport
Snapshot
https://snapshot.org/#/playground/eth-balance?query=eyJwYXJhbXMiOnsic3ltYm9sIjoiQkFMIiwiYWRkcmVzcyI6IjB4YmExMDAwMDA2MjVhMzc1NDQyMzk3OGE2MGM5MzE3YzU4YTQyNGUzRCIsImRlY2ltYWxzIjoxOH0sIm5ldHdvcmsiOiIxIiwic25hcHNob3QiOiIiLCJhZGRyZXNzZXMiOlsiMHhhNDc4YzI5NzVhYjFlYTg5ZTgxOTY4MTFmNTFhN2I3YWRlMzNlYjExIiwiMHhlRjgzMDVFMTQwYWM1MjAyMjVEQWYwNTBlMmY3MWQ1ZkJjQzU0M2U3IiwiMHgxRTFBNTFFMjVmMjgxNjMzNWNBNDM2RDY1ZTlBZjc2OTRCRTIzMmFkIiwiMHgxRjcxN0NlOGZmMDc1OTdlZTdjNDA4YjU2MjNkRjQwQWFBZjE3ODdDIiwiMHgxYzdhOTI3NUYyQkQ1YTI2MEE5YzMxMDY5Rjc3ZDUzNDczYjhhZTJlIiwiMHgxZDVFNjVhMDg3ZUJjM2QwM2EyOTQ0MTJFNDZDRTVENjg4Mjk2OWY0IiwiMHgxZjI1NDMzNkU1YzQ2NjM5QTg1MWI5Q2ZDMTY1Njk3MTUwYTZjMzI3IiwiMHgyZWMzRjgwQmVEQTYzRWRlOTZCQTIwMzc1MDMyQ0REM2FBZmIzMDMwIiwiMHg0QWNCY0E2QkUyZjhEMjU0MGJCRjRDQTc3RTQ1ZEEwQTRhMDk1RmEyIiwiMHg0RjNEMzQ4YTZEMDk4MzdBZTc5NjFCMUUwY0VlMmNjMTE4Y2VjNzc3IiwiMHg2RDdmMjNBNTA5RTIxMkJhNzc3M0VDMWIyNTA1ZDFBMTM0ZjU0ZmJlIiwiMHgwN2ExZjZmYzg5MjIzYzVlYkQ0ZTRkZGFFODlBYzk3NjI5ODU2QTBmIiwiMHg4ZDVGMDUyNzBkYTQ3MGUwMTViNjdBYjUwNDJCRGJFMkQyRkVGQjQ4IiwiMHg4ZDA3RDIyNWE3NjliN0FmM0E5MjM0ODFFMUZkRjQ5MTgwZTZBMjY1IiwiMHg4ZjYwNTAxZEU1YjliMDFGOUVBZjEyMTRkYkUxOTI0YUE5N0Y3ZmQwIiwiMHg5QjhlOGREOTE1MTI2MGMyMUNCNkQ3Y2M1OTA2N2NkOERGMzA2RDU4IiwiMHgxN2VhOTJENkZmYkFBMWM3RjZCMTE3YzFFOUQwYzg4QUJkYzhiODRDIiwiMHgzOEMwMDM5MjQ3QTMxRjM5MzliYUU2NWU5NTM2MTIxMjVjQjg4MjY4Il19snapshot.org
Snapshot
https://snapshot.org/#/playground/eth-with-balance?query=eyJwYXJhbXMiOnsic3ltYm9sIjoiQkFMIiwiYWRkcmVzcyI6IjB4YmExMDAwMDA2MjVhMzc1NDQyMzk3OGE2MGM5MzE3YzU4YTQyNGUzRCIsImRlY2ltYWxzIjoxOH0sIm5ldHdvcmsiOiIxIiwic25hcHNob3QiOiIiLCJhZGRyZXNzZXMiOlsiMHhhNDc4YzI5NzVhYjFlYTg5ZTgxOTY4MTFmNTFhN2I3YWRlMzNlYjExIiwiMHhlRjgzMDVFMTQwYWM1MjAyMjVEQWYwNTBlMmY3MWQ1ZkJjQzU0M2U3IiwiMHgxRTFBNTFFMjVmMjgxNjMzNWNBNDM2RDY1ZTlBZjc2OTRCRTIzMmFkIiwiMHgxRjcxN0NlOGZmMDc1OTdlZTdjNDA4YjU2MjNkRjQwQWFBZjE3ODdDIiwiMHgxYzdhOTI3NUYyQkQ1YTI2MEE5YzMxMDY5Rjc3ZDUzNDczYjhhZTJlIiwiMHgxZDVFNjVhMDg3ZUJjM2QwM2EyOTQ0MTJFNDZDRTVENjg4Mjk2OWY0IiwiMHgxZjI1NDMzNkU1YzQ2NjM5QTg1MWI5Q2ZDMTY1Njk3MTUwYTZjMzI3IiwiMHgyZWMzRjgwQmVEQTYzRWRlOTZCQTIwMzc1MDMyQ0REM2FBZmIzMDMwIiwiMHg0QWNCY0E2QkUyZjhEMjU0MGJCRjRDQTc3RTQ1ZEEwQTRhMDk1RmEyIiwiMHg0RjNEMzQ4YTZEMDk4MzdBZTc5NjFCMUUwY0VlMmNjMTE4Y2VjNzc3IiwiMHg2RDdmMjNBNTA5RTIxMkJhNzc3M0VDMWIyNTA1ZDFBMTM0ZjU0ZmJlIiwiMHgwN2ExZjZmYzg5MjIzYzVlYkQ0ZTRkZGFFODlBYzk3NjI5ODU2QTBmIiwiMHg4ZDVGMDUyNzBkYTQ3MGUwMTViNjdBYjUwNDJCRGJFMkQyRkVGQjQ4IiwiMHg4ZDA3RDIyNWE3NjliN0FmM0E5MjM0ODFFMUZkRjQ5MTgwZTZBMjY1IiwiMHg4ZjYwNTAxZEU1YjliMDFGOUVBZjEyMTRkYkUxOTI0YUE5N0Y3ZmQwIiwiMHg5QjhlOGREOTE1MTI2MGMyMUNCNkQ3Y2M1OTA2N2NkOERGMzA2RDU4IiwiMHgxN2VhOTJENkZmYkFBMWM3RjZCMTE3YzFFOUQwYzg4QUJkYzhiODRDIiwiMHgzOEMwMDM5MjQ3QTMxRjM5MzliYUU2NWU5NTM2MTIxMjVjQjg4MjY4Il19snapshot.org
Basic Validation strategy
Basic Validation
Gitcoin Validation
Basic Validation Strategy
this validation
here
Snapshot
Logo
Logo
Logo