Skip to content

Instantly share code, notes, and snippets.

@samepant
Created June 10, 2024 17:14
Show Gist options
  • Save samepant/39bac643712404291fdb68edd659e8b3 to your computer and use it in GitHub Desktop.
Save samepant/39bac643712404291fdb68edd659e8b3 to your computer and use it in GitHub Desktop.
Safe Snapshot space upgrade to use Split-Delegation

Safe DAO — Upgrade to Split-Delegation

Safe manages it's Snapshot settings using the snapshot.org UI so these instructions are oriented to that use.

Both these changes must be made to successfully use the Split-Delegation system.

Select Split-Delegation in Delegation Settings

  1. Navigate to https://snapshot.org/#/safe.ggtest.eth/settings and select the 'Delegation' section in the sidebar

  2. Choose Split-Delegation from the dropdown

  3. Use 0xDE1e8A7E184Babd9F0E3af18f40634e9Ed6F0905 for the contract address

  4. Use https://delegate-api.gnosisguild.org for the delegation API (you can run this api if desired)

  5. Save the updates

    Settings should look like the screenshot below:

delegation settings

Adjust strategy settings to use Split-Delegation as root strategy

This step removes all current delegation strategies, and moves the remaining strategies under a single split-delegation strategy.

  1. Navigate to https://snapshot.org/#/safe.ggtest.eth/settings and select the 'Strategies' section in the sidebar

  2. Add a new strategy, searching and selecting split-delegation

  3. Edit the strategy settings at to be the following:

    {
      "backendUrl": "https://delegate-api.gnosisguild.org",
      "strategies": [
        {
          "name": "erc20-balance-of",
          "params": {
            "symbol": "SAFE",
            "address": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe",
            "decimals": 18
          },
          "network": 1
        },
        {
          "name": "safe-vested",
          "params": {
            "symbol": "SAFE (vested)",
            "claimDateLimit": "2022-12-27T10:00:00+00:00",
            "allocationsSource": "https://safe-claiming-app-data.gnosis-safe.io/allocations/1/snapshot-allocations-data.json"
          },
          "network": 1
        },
        {
          "name": "contract-call",
          "params": {
            "symbol": "SAFE (locked)",
            "address": "0x0a7CB434f96f65972D46A5c1A64a9654dC9959b2",
            "decimals": 18,
            "methodABI": {
              "name": "getUserTokenBalance",
              "type": "function",
              "inputs": [
                {
                  "name": "holder",
                  "type": "address",
                  "internalType": "address"
                }
              ],
              "outputs": [
                {
                  "name": "",
                  "type": "uint96",
                  "internalType": "uint96"
                }
              ],
              "stateMutability": "view"
            }
          },
          "network": 1
        }
      ],
      "totalSupply": 1000000000
    }
  4. Remove all remaingin strategies, using the trash icon.

  5. Save the updates

    A successful setup will look like the following screenshot: split-delegation-strategy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment