Discover the delegates of specific spaces and delegate your Voting Power directly through Snapshot,

How to delegate?

Snapshot enables a couple of ways to delegate your Voting Power to another address (a ).

You can delegate your Voting Power via:

👉 Delegates Registry per Space (if the Space has set up their custom delegation contract)

This is a great solution for those who are not sure who to delegate their VP to.

👉 General Snapshot's delegation page

The quickest solution to delegate the Voting Power to a known address.

👉 Smart Contract

If you prefer to skip the interface and interact with the Contract directly.

Let's look at each option in detail.

Delegates registry

This page only applies to custom delegation contracts. To see the Snapshot native delegation, head to:

It is possible to discover the Delegate registry of Spaces that provided their custom delegation contract in settings.

Head to the Space page and click Delegates in the left sidebar:

You will then see a list of delegates for the Space with the number of their and their total Voting Power within the Space.

You can delegate your Voting Power to one of the delegates directly by clicking the Delegate button:

Delegate page

  1. Enter the address you want to delegate to.

  2. To limit the delegation to a specific space, tap the on switch button and enter the space key (example: balancer.eth) you want your delegation to take effect on. If no space is selected, the effect will take place for all spaces.

  3. Click confirm to save your delegation.

The direct delegation to a chosen space has priority over the all spaces delegation. What does it mean? 👍 Address A delegates to B for all spaces, and A delegates to C for a chosen space. ◀️ The chosen space uses overriding delegation strategy. 🤚 B votes first - their VP is taken into account. 🖐️ C votes - their vote has priority (direct single space delegation) and erases B's Voting power (all spaces delegation). A votes - B and C's Voting Power decreased to 0.

Smart contract interaction

You need to call the setDelegate method with the space id as the first argument (space id is its ENS domain name, for example fabien.eth), and the address of the delegate as the second argument.

Here is an example of integration in a Solidity contract:

Supported Networks

  • Mainnet

  • Goerli

  • Optimism

  • Binance Smart Chain

  • Gnosis Chain

  • Matic (Polygon)

  • Fantom

  • Arbitrum

Delegation contract

Snapshot uses the Gnosis "Delegate Registry" contract here:

The contract is deployed on this address: 0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446 (Also available on Rinkeby and Kovan at the same address)

Delegations are stored on this subgraph:

A delegation Voting Strategy must be added to the Snapshot space before delegated votes will be counted. You can use the with-delegation strategy.

Last updated