Snapshot: Voting, Weight & Proposal Creation

How to give specific hats voting access & voting weight in Snapshot polls

The Basic Steps

Snapshot is an off-chain voting platform that allows communities to participate in the decentralized governance. But even though Snapshot votes happen off-chain, Snapshot can still read what hats an address is wearing to determine eligibility to create proposals, vote on proposals, and/or assign a specific voting weight.

There are three primary ways to attach Snapshot authorities to Hats:

  1. Only allowing certain hats to create a new proposal

  2. Only allowing certain hats to vote on a proposal

  3. Assigning different voting weights to different hats

Following is a guide to implement each of these authorities.

  • Note: Distinct sets of strategies require distinct Snapshot spaces. If you want to enforce different space settings for proposal creation, voting access, and voting weight (e.g., giving a specific hat voting access to vote on some proposals but not others), you will need to set up a different Snapshot space for each collection of settings. Fortunately, Snapshot makes it possible for organizations to create multiple spaces and link them together. See here for more details on how to set up multiple spaces and link them together.

1. Only allowing certain hats to make a new proposal

As an admin of your Snapshot space:

  • Enter the Settings

  • Select Proposal

Then under Validation, select Basic.

In the window that appears:

  • Set "Minimum score" to 1

  • Select "Use custom strategies"

  • Select "erc1155-balance-of-ids" for the strategy

  • Select the network your hats are on

Then enter the following under Params:

{ 
"ids": [ "Hat-ID-1", "Hat-ID-2", "Hat-ID-3"],
 "address": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137" 
}

2 & 3: Only allowing certain hats to vote on a proposal + assigning different voting weights to different hats

These use cases are combined because they are implemented simultaneously.

As the admin of the Snapshot space:

  • Enter the Settings

  • Select Strategies

Here you can set up to 8 strategies for your Snapshot space. For the purposes of hat-gating voting access and voting weight, you will only need to set up one strategy (unless your hats are on different networks, in case you'll need one strategy per network).

To set up a strategy:

  • Click the "+ Add" button

  • Select "erc1155-weighted-by-id" for the Strategy type

  • Select the network your hats are on

  • Enter the following into the box:

{ 
"ids": ["Hat-ID-1", "Hat-ID-2"], 
"symbol": "Hats", 
"weight": [X, Y], 
"address": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137" 
}

And where X = the voting weight you want to assign to Hat-ID-1, Y = the voting weight for Hat-ID-3, and so on.

NOTE: Voting weight from Snapshot strategies is cumulative! So if someone is wearing two different hats that are each allowed to vote on a proposal, one of which comes with a voting weight of 1 and the other with a voting weight of 2, they will actually be able to vote on the proposal with a voting weight of

This step will enable the Hats app to automatically detect and display Snapshot related authorities in your Hats tree:

Skip this step if your tree's top-hat already includes the relevant Snapshot space(s).

  • Select "Edit Tree"

  • Locate and select the tree's top-hat

  • In the "Hat Basics" section, add the relevant Snapshot spaces. A space ID can be found in its URL. For example, if the Snapshot space page is https://snapshot.org/#/hatsprotocol.eth, then its ID is 'hatsprotocol.eth'.

Snapshot authorities will now be displayed on the relevant hats:

Last updated