DAE
  • DAE
    • Getting started
    • DAE Mod
      • Stakeholders
      • Karma
      • Governance
      • Class scaffolding
      • Karmic remuneration
      • Treasury
      • DAE and Web3
      • School in science fiction
      • Publications
    • DAE Lab
      • Web3
        • Blockchain
        • Wallets
        • Tokens
        • Voting methods
        • DAOs
        • Insights
          • Bitcoin halving
          • Gas and fees in Ethereum
          • Smart contracts
          • Stablecoins
          • Cryptocurrency exchange
          • Staking
          • The Bitcoin Power Law Theory
          • Electricity consumption of blockchains
          • Crypto crime
          • The Gold/Bitcoin Standard
          • How to kill bitcoin
          • Zero-knowledge proofs
          • Scaling a blockchain
          • Fiscalità
        • Readings
          • Decentralized society
          • The dilemma of soulbound tokens
          • Curation staking
          • Social identity
          • Proof of Personhood
        • DApps
          • Snapshot
          • Polymarket
      • Generative Art
        • Cyrpto art and conceptual art
        • A complexity theory of generative art
        • Coding art
        • Early generative art
        • Modern forms of generative art
        • Generative art projects
        • Generative artists
        • Little Decalogue for Crypto Artists
        • 21gr
      • Intelligenza Artificiale
        • Che cos'è l'IA?
          • Intelligenza
          • Una definizione bidimensionale
          • Le fondamenta
          • La storia
          • Lo stato dell'arte
        • Limiti e rischi dell'IA
          • Limiti dell'IA
          • Rischi dell'IA
        • Approcci all'IA
          • IA simbolica: logica epistemica
          • IA subsimbolica: reti neurali
        • IA generativa
          • Chatbot e come usarli
          • Modelli linguistici di grandi dimensioni
          • Modelli per la generazione di immagini
          • Rischi dell'IA generativa
        • Approfondimenti
          • Antiqua et nova
      • Finanza personale
        • Principi
        • Strumenti
        • Metodi
        • Dove ascoltare
        • Hex Port
    • DAE App
    • Teaching
      • MuZero
        • Informazioni
        • Collegamenti
        • Form & Chaos
        • Seminari
      • Dear Data 23
        • General info
        • Pipeline
        • Karma and bounties
        • Karmic remuneration
        • Links
        • Log
        • Thesis proposal
      • Dear Data 24
        • General info
        • Links
        • AI prompts
        • Speakers
        • Form & Chaos
        • 100Q
      • Red Panda
        • Prerequisites
        • Scheduling
        • Syllabus
        • Pipeline
        • Karma and bounties
        • Rewards
        • Links
        • Log
        • Talks
      • Interventi
        • Digital Education Festival
        • Il problema didattico
    • Writing
      • Il problema didattico
    • G/L Space
      • Composability
      • Scalability
      • Identity
      • Transparency
      • Digital truth
      • Chain of blocks
      • Cypherpunk
    • Roadmap
  • Link tree
  • Credits
Powered by GitBook
On this page
  • Key features
  • Spaces
  • Proposals
  • Voting

Was this helpful?

Edit on GitHub
  1. DAE
  2. DAE Lab
  3. Web3
  4. DApps

Snapshot

The voting platform

PreviousDAppsNextPolymarket

Last updated 6 months ago

Was this helpful?

Snapshot is an off-chain voting platform that allows DAOs to vote easily and without gas fees.

There are three key elements that are involved in the voting process: spaces, proposals and votes. Proposals and votes are associated with a space, while each space is an account (profile) of an organization.

Key features

  • Free usage - create spaces, proposals and take part in organization's governance without any gas fees

  • Signed messages - votes are cast through signed messages easily verifiable online

  • Security - The message you sign in your wallet to cast the vote doesn’t affect your holdings or Web3 identity

  • Flexible voting strategies - customize how the voting power is calculated through single or combined strategies that enable voting with ERC20s, NFTs, SBTs, and more

  • Multiple voting systems - Democratic voting (one-person-one-vote), linear voting (one-token-one-vote), quadratic voting, and more

  • Proposal and voting validation - utilize Gitcoin Passport or other solutions to validate who can create a proposal or cast a vote

  • Testing - before deploying your space, you can test it on a demo version of snapshot. Moreover, the voting strategies can be tested on a playground

  • Open-source - All repositories are on

Spaces

You can think of a space as an organization's account on Snapshot which can be viewed by anyone visiting the platform. It serves as a hub for all proposals related to the organization and a source of information for the users.

To create a space you need an for the space. There are different roles in a space:

  1. Controller has a full control over the space settings including managing the list of admins. This is the owner of the ENS domain.

  2. Admin can edit space settings with the exception of the list of admin users and archive proposals

  3. Moderator can manage the space proposals and create proposals

  4. Author can create proposals regardless of their voting power and the proposal validation strategy

Organizations can create multiple spaces and link them together. You can define a main space, multiple sub-spaces, and link them. This is useful for enforcing different space settings for proposal creation, voting, and execution. For example, instead of having to change the space settings each time you create a proposal, you could create sub-spaces with some of your most frequently used settings.

Proposals

Proposal is the key element of the voting system. It presents a change suggestion related to a specific organization and enables eligible users to cast their vote.

Controllers, admins, moderators and authors can create a proposal. Alternatively, you can also specify a validation strategy for controlling who can create a proposal.

To create a proposal you have to specify a title, an optional description, a voting system and a voting period. Notice that the voting strategy is inherited from the space settings.

Each proposal have a snapshot (a timestamp in terms of blockchain block). The voting power of each user will be calculated for the state of the blockchains at this specific snapshot. It means that if user acquires required tokens after the proposal has been created, they will not be taken into account for their voting power calculation.

Voting

To cast a vote, you need to connect your wallet, go to the proposal you want to vote, and cast your vote. A vote is a message signed with your wallet and is saved on IPFS. You can also add a motivation for your vote.

Snapshot makes a (quite confusing) difference between voting strategy and voting system.

Voting strategy

A voting strategy is a set of conditions used to calculate user's voting power. In technical terms a strategy is a JavaScript function that returns a score for a set of addresses on a blockchain.

You can use a built-in strategy or create your own strategy. The voting strategy is decided at the space level, hence it is set for all proposals in the space.

The most popular strategy are:

You can combine up to 8 different voting strategies on different chains. If a space has more voting strategies, the results of the voting is counted by summing the results of all its voting strategies.

Finally, you can test your strategy in a playground before deploying it.

Voting types

While a voting strategy is used to calculate the individual voting power of a user, 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.

Examples of voting systems are:

  1. single choice: 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

  2. ranked choice 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.

  3. 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

All relevant Snapshot links follow:

: it returns the balances of the voters for a specific ERC20 token

: it gives one voting power per one address, hence implements the democratic voting method

: only a given set of addresses can vote

: it returns the balances of the voters for a specific ERC721 NFT

quadratic voting: each user can spread voting power across any number of choices. The results are calculated according to the rules of , thanks to which the number of individual voters matters more than the sum of voting power contributed. In particular, each choice receives the sum of square roots of the votes expressed on that option

GitHub
ENS domain
erc20-balance-of
ticket
whitelist
erc721
quadratic voting
app
demo site
docs