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
  • Snapshot.js
  • Adding a network
  • Creating voting strategies

Was this helpful?

Edit on GitHub
Export as PDF
  1. FAQs

I'm a developer

Last updated 5 months ago

Was this helpful?

Which networks are currently supported for voting with Gnosis Safe?

You can find the networks’ IDs here:

Do we need to deploy an ENS contract on our custom network to be able to support Snapshot?

No, it’s not needed.

I think I found a vulnerability on Snapshot. Do you have a bug bounty?

Yes, we do. Please create report on the respective repository as showed below:

Is it possible to test Snapshot without creating ENS on mainnet?

Yes. You can use with an ENS domain on Goerli Testnet.

How does Snapshot use IPFS?

We use IPFS to pin the receipts of the votes. You can have a more detailed look at the .

How to add a webhook?

Have a look at our documentation: Webhooks

Can I use the Hub API without an API Key?

Yes you can, however we encourage everyone to apply for a key to ensure a continuous access to the service as the limits for the keyless access are much lower than with an API Key.

Learn more here: API Keys

Where can I generate an API Key for Hub GraphQL or Score API?

Head to API Keys to apply for a key and generate it for your own usage.

I'm trying to generate an API Key but I get an error that my address in not whitelisted. What should I do?

If you haven't filled in the form yet then please do so and we will reach out to you shortly.

You can find more details about the process here: API Keys

Are there any limits for using the Hub GraphQL API?

Yes. Currently you can send 120 requests per every 20 seconds.

After September 12th the limits will be updated:

🔓 No API Key: 100 requests per minute.

🔑 With the API Key: 2 million requests per month.\

Learn how to apply and generate your API Key here: API Keys

Are there any limits for using snapshot.js or Score API?

Snapshot.js

I tried to submit a proposal with snapshot.js, but I get a “Wrong proposal format” error. What should I do?
I tried to submit a vote with snapshot.js, but I get the “Wrong vote format” error. What should I do?

A common mistake is using a wrong type (string instead of object) or extending a limit of a value (i.e. reason ).

Is there an alternative to snapshot.js in python?
How to use snapshot.js to create a space or update space settings?

Adding a network

How can I add our network to Snapshot?
How can I check if the RPC node is a Full Archive Node?

You can send a request to the node and try to fetch the genesis block:

$ curl -H "content-type: application/json" -X POST --data '{"id":0,"jsonrpc":"2.0","method":"eth_getBalance","params":["<CONTRACT_HASH>","0x1"]}' <RPC_URL>

If you get a correct response without any errors, the Node is a Full Archive.

Creating voting strategies

How to use our staking contract for voting?

If none of them work for you, have a look at the options below.

How long will it take to merge my PR?

It usually takes around 72 hours so please have some patience. Once the PR is merged, you will also have to wait for a new release of the repository which can take another couple of days.

Is it possible to support delegation on our network?

To learn more have a look at our documentation: Create a voting strategy

I get 0 voting power in the delegation strategy playground but I can vote on real proposals.

Most probably you are missing the delegationSpace parameter. Make sure to provide the ENS domain of the space you are testing.

How to use our token from our network for voting?

If it doesn’t exist yet, you can create a new voting strategy. Have a look at our documentation to learn more: Create a voting strategy

If you have filled in the please have some patience and wait for our direct response to the contact you provided in it.

Yes, same as for Hub API. When it comes to snapshot.js, refer to in Snapshot.js documentation. Make sure to generate your API Key to get higher usage limits. One key can be used for all API services and limits are counted individually per service.

There is a high chance that something is missing in the proposal’s payload. Make sure you are following the proposal schema defined here →

Make sure that you’re following the vote schema defined here → .

No. If you are interested in building it, reach out to the team on the channel!

Have a look at our documentation here:

Follow our documentation to learn all the steps to add a new network to Snapshot:

You can browse through the existing staking strategies →.

In order to use the staking contract it has to have a balanceOf method which allows reading the balance of the staked tokens. You can use the strategy with it.

If your contract has a method getting the balance named differently, you can also use the strategy.

Yes. If it’s not supported yet you can create a custom voting strategy to enable delegation on your network. You can see an example here →

👩‍💻
https://github.com/snapshot-labs/snapshot.js/blob/master/src/schemas/proposal.json
https://github.com/snapshot-labs/snapshot.js/blob/master/src/schemas/vote.json
#developer
https://snapshot.org/#/?type=strategies&q=stake
https://snapshot.org/#/strategy/erc20-balance-of
https://snapshot.org/#/strategy/contract-call
https://snapshot.org/#/strategy/orbs-network-delegation
https://github.com/snapshot-labs/snapshot-relayer/blob/master/src/check.ts#L9
https://testnet.snapshot.org
IPFS article
API Request Key Form
Utils
Create or edit a space
#add-a-new-network