👩‍💻I'm a developer

Which networks are currently supported for voting with Gnosis Safe?
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 https://testnet.snapshot.org 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 IPFS article.

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 have filled in the API Request Key Form please have some patience and wait for our direct response to the contact you provided in it.

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?


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

There is a high chance that something is missing in the proposal’s payload. Make sure you are following the proposal schema defined here → https://github.com/snapshot-labs/snapshot.js/blob/master/src/schemas/proposal.json

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

Make sure that you’re following the vote schema defined here → https://github.com/snapshot-labs/snapshot.js/blob/master/src/schemas/vote.json.

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?

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

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?

You can browse through the existing staking strategies →https://snapshot.org/#/?type=strategies&q=stake.

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?

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://snapshot.org/#/strategy/orbs-network-delegation

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

Last updated