> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snapshot.box/llms.txt
> Use this file to discover all available pages before exploring further.

# Voting strategies

> Learn what a voting strategy is and how to set it up.

## What is a voting strategy?

Voting strategies determine how voting power is calculated for Snapshot proposals based on specific rules or conditions. Snapshot offers more than 400 available strategies, ranging from simple token-based methods to complex ones involving multiple conditions. Anyone can create custom strategies to precisely meet their governance needs. You can combine up to 8 strategies to calculate cumulative voting power, or up to 10 strategies for [Snapshot Pro](/user-guides/spaces/pro) spaces.

Strategies are defined in the space settings in the [voting strategies](/user-guides/spaces/settings#voting-strategies) section. The default strategy is `erc20-balance-of`, which calculates the balance of a predefined ERC-20 token for each user.

### Most common voting strategies

* **ERC-20 balance** (`erc20-balance-of`): Voting power is based on participants' ERC-20 token holdings.
* **ERC-721 NFT balance** (`erc721`): Uses ownership of ERC-721 NFTs as voting power.
* **ERC-1155 NFT balance** (`erc1155-balance-of`): Similar to ERC-721 but designed for ERC-1155 NFTs.
* **ERC-20 Votes** (`erc20-votes`): Voting power is determined by delegated ERC-20 token balances.
* **Whitelist** (`whitelist`): Grants a fixed voting power (usually 1 vote) to specific wallet addresses, regardless of onchain token holdings.

### Other popular strategies

* **Contract call** (`contract-call`): Uses the result of a custom contract call as voting power.
* **Delegation** (`delegation`): Allows delegation of voting power based on existing strategies.
* **Balance with minimum** (`balance-of-with-min`): Assigns 1 voting power to participants holding at least a specified amount of a certain token.
* **API** (`api`): Retrieves voting power from an external offchain API.
* **Whitelist weighted** (`whitelist-weighted`): Assigns custom voting power values to specified addresses.
* **ETH balance** (`eth-balance`): Uses ETH holdings (or the equivalent gas token on other networks) as voting power.
* **Ticket** (`ticket`): Gives 1 voting power per participant, used exclusively in combination with a voting validation strategy.

To learn more about creating custom voting strategies, head to the [developer guide](/developer-guides/voting-strategy).

<img src="https://mintcdn.com/snapshotlabs/3uBnFqKTSPz3SLxQ/images/140.png?fit=max&auto=format&n=3uBnFqKTSPz3SLxQ&q=85&s=59626f4f3df4061b6dea02bc4bfffbf0" alt="" width="1107" height="561" data-path="images/140.png" />

## How to set up a strategy?

Majority of spaces on Snapshot is using a single strategy however if you need a more complex calculation, you can combine up to 8 strategies. They will be applied to all proposals created for your space (created *after* the update of the settings) and the voting power will be calculated cumulatively.

<Info>
  **Multiple voting strategies**

  If you combine several voting strategies the voting power will be calculated in the following way:\
  *Total voting power = voting power from strategy A + voting power from strategy B + ...*
</Info>

In order to set up a voting strategy head to your space settings and scroll down to **Strategies** section. You should see the below pop-up after clicking **Add strategy** and selecting a strategy from the list:

<img src="https://mintcdn.com/snapshotlabs/pdueIdTfoQVSZJ1p/images/188.png?fit=max&auto=format&n=pdueIdTfoQVSZJ1p&q=85&s=e498b594a433734849a76053f8d45e3e" alt="Example of setting up an erc20-balance-of strategy." width="471" height="584" data-path="images/188.png" />

You will see that there is information that you need to provide in order to make the strategy work, for example the **network** where the token is deployed, its **symbol** and **address** of the token's contract.

Each strategy will require a different setup and you can read the full description and see the required parameters in the strategy's page, for example [erc20-balance-of](https://snapshot.box/#/strategy/erc20-balance-of). You can find each strategy's details through using the search bar and **Strategies** filter.

## Testing a voting strategy

Before you add the strategy to your space's settings we highly recommend to test it in the **Playground** in order to avoid any potential issues with the voting process.

<Warning>
  If you made a mistake in your space settings and votes have already been cast **it is not possible to revert them.** The best solution would be to (1) delete the proposal, (2) update the settings with correct strategies and (3) recreate the proposal from scratch after the settings have been updated.
</Warning>

You can access it from the strategy's detail page by clicking the **Playground** on the right-hand side:

<img src="https://mintcdn.com/snapshotlabs/pdueIdTfoQVSZJ1p/images/161.png?fit=max&auto=format&n=pdueIdTfoQVSZJ1p&q=85&s=b125ff44ace645a65b075aad16a33ac3" alt="" width="1043" height="515" data-path="images/161.png" />

Your browser will load a Playground page where you can test the custom setup for the chosen strategy. As you can see on the below screenshot you can set the required parameters and provide a list of addresses which in this case are or are not holding a the `PUNK` ERC721 token.

<img src="https://mintcdn.com/snapshotlabs/kgogJ6O83n1DRfzQ/images/237.png?fit=max&auto=format&n=kgogJ6O83n1DRfzQ&q=85&s=f8d71f0c60e7044d5d69acc473e8e8eb" alt="" width="1477" height="841" data-path="images/237.png" />

If everything is set up correctly you should see the calculated voting power for each address after clicking the play button:

<img src="https://mintcdn.com/snapshotlabs/kgogJ6O83n1DRfzQ/images/272.png?fit=max&auto=format&n=kgogJ6O83n1DRfzQ&q=85&s=ef2aa609a3579a004658af27405016d6" alt="" width="398" height="236" data-path="images/272.png" />
