[SEP #2] Community Initiative To Unpause Token Contract (Enabling Transferability)

Thanks, Arseny. I noticed some updates are needed on your guide. The improved SafeSnap config is as follows:

  • Create a Snapshot proposal just as you normally would do with the correct title, timeframes, choices, etc., according to the Safe governance process guidelines.
  • On the last step before publishing, configure the SafeSnap tx as follows.
  • Click “Add Transaction batch with JSON”
  • Add this transaction batch json:
[
    {
        "to": "0x8cf60b289f8d31f737049b590b5e4285ff0bd1d1",
        "operation": "0",
        "value": "0.0",
        "data": "0xe009cfde00000000000000000000000029067f28306419923bcff96e37f95e0f58abdbbe000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6",
        "method": "disableModule(address,address)",
        "params": [
            "0x29067F28306419923BCfF96E37F95E0f58ABdBBe",
            "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6"
        ]
    },
    {
        "to": "0x8cf60b289f8d31f737049b590b5e4285ff0bd1d1",
        "operation": "0",
        "value": "0.0",
        "data": "0xe009cfde0000000000000000000000004ecefc422c98a096ed8b56ead67477c4b6e8702b00000000000000000000000029067f28306419923bcff96e37f95e0f58abdbbe",
        "method": "disableModule(address,address)",
        "params": [
            "0x4ECeFC422c98a096eD8b56EaD67477c4B6e8702b",
            "0x29067F28306419923BCfF96E37F95E0f58ABdBBe"
        ]
    },
    {
        "to": "0x5afe3855358e112b5647b952709e6165e1c1eeee",
        "operation": "0",
        "value": "0.0",
        "data": "0x3f4ba83a",
        "method": "unpause()",
        "params": []
    }
]
  • If you’d like, verify the added transactions.
  • That’s it. Now publish the proposal just as you would normally do it.

Here are basic explanations for what the codes do:

  • It enables global transferability by calling the unpause() function on the Safe token contract. Until that, only the SafeDAO Safe was allowed to transfer Safe tokens.
  • Due to the fact, that the right of token transfer was limited to the SafeDAO Safe, user and ecosystem airdrop contracts were implemented as modules enabled on the SafeDAO Safe. Once global transferability is enabled, this is not required anymore. The allocation contracts can just be used directly. Removing not required modules from the SafeDAO Safe is just basic security hygiene.

On a more technical level, this means the following 3 actions to be executed:

  • Remove the module facilitating the user allocation (0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6)
  • Remove the module facilitating the ecosystem allocation (0x29067F28306419923BCfF96E37F95E0f58ABdBBe)
  • Call the unpause() function on the Safe token contract.

Note: This does not disable the claiming process or affect the ongoing allocation claiming in any way. The claiming can now be done just directly via the respective contracts.

7 Likes