# Setting up a Gnosis Safe MultiSig Wallet

{% hint style="info" %}
In this section, we will look into how Aragon Client DAOs can be managed by a **MultiSig wallet**.
{% endhint %}

{% hint style="warning" %}
Here we are going to use [**Gnosis Safe MultiSig**](https://gnosis-safe.io), however, you could follow a similar approach for any other MultiSig wallet that supports contract interaction.
{% endhint %}

###

## Setting up the necessary permissions

{% hint style="info" %}
Aragon Client DAOs have access to a control system, where each action is protected by a set of permission records. Only someone with specific permissions can act.

**That is why we need to assign the MultiSig wallet to a range of permissions in the DAO that correspond with the desired actions.**

You can read more about permission settings [here](https://legacy-docs.aragon.org/products/aragon-client/explore-template-dao/system-setting/permissions-setting).
{% endhint %}

In this example an Aragon Client DAO has a balance of ETH tokens stored in its Vault and you want to initiate a payment to compensate a DAO Contributor for her work. We will show how to **initiate a withdrawal of some of the ETH to the Contributor.**

Start by opening your Aragon Client DAO, you should see a similar dashboard as in the image below. Click in the left hand menu on 'Permissions':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-12eaa9ee82a0c283ab4dfff40db004e5502223fb%2Fimage%20(43).png?alt=media&#x26;token=11b40a95-6cb3-48e2-b18a-843d251f9cf3" alt=""><figcaption></figcaption></figure>

We want to add new permissions for your MultiSig, so click in this screen on 'New permission':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-521b64669e4fe322076bd51cff332791b1b85724%2Fimage%20(34).png?alt=media&#x26;token=94f4f55a-8021-49dc-830e-7be1c60ff3c1" alt=""><figcaption></figcaption></figure>

You should see the following side-window appear. Click on 'Select an app':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-643070ef537abc94043891190e08221465968fd6%2Fimage%20\(21\).png?alt=media\&token=ebb6f42d-7b04-4570-99b5-265c870da8c1)

For this example we want to initiate a withdrawal of ETH by the MultiSig. This is usually done from the Finance app of the DAO, so select 'Finance' here and then click on 'Select an entity':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-4022d8cbd2f32a83ecfe6fc768420edff9d816ac%2Fimage%20\(30\).png?alt=media\&token=26d30e76-1b1f-4f13-9d75-c0921d46e80d)

Since we need to add the address of your MultiSig, click here on 'Custom address...':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-a719388e0d50829cb4810a5b3a482491bcd76269%2Fimage%20\(36\).png?alt=media\&token=a5602d67-334b-4dca-8122-ad1059f32cc8)

Now go to your Gnosis Safe, copy its address and paste the address of your MultiSig in the 'GRANT PERMISSION TO' box. Then click on 'Select an action':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-3f41a059f1d4fc41e0176ef79fdc5e394755ccf8%2Fimage%20\(42\).png?alt=media\&token=729eead0-63fc-4b05-82fa-8523703ccc1e)

{% hint style="danger" %}
Do not forget to remove the letters from the front of the Gnosis Safe address,\*\*`eth:`**or**`gor:`\*\*or different depending on the network you use! Otherwise it won't work..

The address should start with: **`0x`**
{% endhint %}

In this case we want to initiate a new payment, so click on 'Create new payments':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-6da4cec94e5c758dcf14b1a6c745f9b330d8ba8a%2Fimage%20\(54\).png?alt=media\&token=ad62bdcb-20e3-47c9-9e4b-0ca43b0dccf0)

Now you filled the required boxes, click on 'Add permission':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-734ab95891b7647ebdc7c832f7a65600dd1f61f9%2Fimage%20\(10\)%20\(1\).png?alt=media\&token=895f86de-3d56-45b2-a6a4-ff5fc7859ca3)

Here the app warns that the permission can not be directly changed, but that a vote will be created to change the permission. Click on 'Create transaction':

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-9fae9236f56c4793ebca0eb0aaf0a8e29a7376f2%2Fimage%20\(44\).png?alt=media\&token=d591bbf7-4337-4382-8365-0cc92f7327e0)

A transaction should pop-up in your Web3 Wallet, 'Confirm' the transaction:

![](https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-f73f752a85300fa3593aacecdc6a16635011f42d%2Fimage%20\(27\).png?alt=media\&token=20fc735c-5477-4426-a5cd-2c663bd2d9a5)

Once the transaction has processed, head over to the 'Voting' app of your DAO. You should see that an open vote has been generated. Click on the vote:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-a719388e0d50829cb4810a5b3a482491bcd76269%2Fimage%20(16).png?alt=media&#x26;token=fb132bf1-4be5-4120-9a72-e48a455d651d" alt=""><figcaption></figcaption></figure>

Now confirm the vote by clicking 'Yes':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-4905762bffcdec2655935d2b52dd4a954fe30f20%2Fimage%20(46).png?alt=media&#x26;token=c84fa0e0-bf38-4a83-be81-1e78d32c7c8a" alt=""><figcaption></figcaption></figure>

Click here on 'Create transaction' and confirm the transaction that should pop-up in your Web3 Wallet:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-69d200e8dcd2ab0860d8eca3a11d5155d75d3be1%2Fimage%20(19).png?alt=media&#x26;token=30290b3f-bedc-4f3a-a9f2-e0bb20d04469" alt=""><figcaption></figcaption></figure>

In our example it confirmed that the vote has passed:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-9365ca47d6e0e5d7e275d15919e4875861b47062%2Fimage%20(32).png?alt=media&#x26;token=9ffcc9ea-96c8-42c1-900e-c77cf25023c9" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
More DAO members might need to approve the vote for the vote to pass. This depends on the **SUPPORT** and **MINIMUM APPROVAL** settings of your DAO
{% endhint %}

Now head over to the 'Permissions' app to check whether the permission for your MultiSig has been added. In our case click on the **Finance** app, and then unfold the 'Create new payments' permission. We now see that the MultiSig address has appeared!

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-1875f5c56686ee36a254bf6a6d82b1b99ad6ba39%2Fimage%20(29).png?alt=media&#x26;token=cdc2eb27-6676-477e-8101-56716f42cedd" alt=""><figcaption></figcaption></figure>

## Initiate payment at the MultiSig

Now that's done we can initiate a payment at the MultiSig!

Head back to the (in this case) Gnosis Safe and press on 'New Transaction'. In the pop-up window which appears, press 'Contract Interaction':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-6e00203bb2176c55d569a40d6ba4468df7c45919%2Fimage%20(50).png?alt=media&#x26;token=e64fe873-16f6-44d0-8668-0e7a38fe9e3a" alt=""><figcaption></figcaption></figure>

We now need the 'Contract address' of the app we want to interact with, which is the Finance app in this case:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-8f3b57df1aa58d3c7c6980762463d5eb50e2adeb%2Fimage%20(53).png?alt=media&#x26;token=aa47c7f7-472c-4a93-ae91-c602f5867403" alt=""><figcaption></figcaption></figure>

So head back to your Aragon Client DAO, open the **Organization** app, click on the address under (in this case) 'FINANCE', and copy the address:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-243856d4568b60c70d96f919a8233672420778ea%2Fimage%20(49).png?alt=media&#x26;token=d32cf7a7-a0c8-4d2f-aab7-df41735e96f9" alt=""><figcaption></figcaption></figure>

Paste the address in the 'Contract address' field back in the Gnosis Safe:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-8f1ce7054bf762543bc1eb598071e8aedb605075%2Fimage%20(26).png?alt=media&#x26;token=394760b2-70e9-4b13-a82c-e4c002cfbb57" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
If the 'ABI' field automatically populates, **REMOVE** all the contents in the field, since we will need a different ABI
{% endhint %}

Now we need to get the ABI of the base contract of the app we interact with, which is the **Finance** app in this case. Click on 'Finance App' in the box below:

{% hint style="info" %}
You can find Etherscan links to the smart contracts of the most used apps below:

* [Tokens App](https://etherscan.io/address/0xde3A93028F2283cc28756B3674BD657eaFB992f4#code)
* [Finance App](https://etherscan.io/address/0x836835289A2E81B66AE5d95b7c8dBC0480dCf9da#code)
* [Voting App](https://etherscan.io/address/0xb935C3D80229d5D92f3761b17Cd81dC2610e3a45#code)
  {% endhint %}

On the Etherscan page, scroll down until you see the 'Contract ABI' box. Click on the Copy symbol, to copy the ABI of the smart contract:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-5a3c7b8992b6f51b1f499cd5745fa9ef1afa22dc%2Fimage%20(47).png?alt=media&#x26;token=f9086e96-e9d9-4051-9bd1-c50acc881e68" alt=""><figcaption></figcaption></figure>

Paste the ABI in the 'ABI' field in the Gnosis Safe, and click on 'Method':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-4905762bffcdec2655935d2b52dd4a954fe30f20%2Fimage%20(51).png?alt=media" alt=""><figcaption></figcaption></figure>

Search here for 'newImmediatePayment', since we want to do an immediate payment in this example, and select it:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-ffb61b0f29f5e4f79d7d838989a156e4609b3469%2Fimage%20(48).png?alt=media&#x26;token=58efa7ed-39c3-4307-a888-fd908ba97127" alt=""><figcaption></figcaption></figure>

Now find the 'token address' of the token you want to send. In this case we are sending ETH. The token address of ETH is: `0x0000000000000000000000000000000000000000`

Add the 'receiver address' of in this example the Contributor.

Then add the 'amount'. In this case we will send the DAO Contributor an amount of 0.1 ETH.

{% hint style="danger" %}
For the 'amount' field, add 18 decimals to the original value. For example, if you want to invoke the\*\*`newImmediatePayment`\*\*method to transfer 10.5 tokens, you will have to input 10.5 \* 10 ^ 18 = **`10500000000000000000`** into the amount field.
{% endhint %}

In our example the amount is 0.1 \* 10 ^ 18 = `100000000000000000`

Then you can add a 'reference string' as a payment reference, and click on 'Review':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-f29086af5572b67e7cf008a0794cc11b005ad5c0%2Fimmagine4.png?alt=media" alt=""><figcaption></figcaption></figure>

Scroll down and test the transaction by clicking on 'Simulate'. If all is well it should display 'Success'. If so, click on 'Submit':

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-c2c925db887df62504180bb818b609e34a74805a%2Fimage%20(24).png?alt=media&#x26;token=fbea2c00-c903-4287-8f72-515bf1188ac6" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
If the **simulation has failed** and you get warnings (like a gas estimation error) there has likely been a mistake either in permissions, method parameters, or ABI and contract address. Please go through the setup again
{% endhint %}

A transaction should pop-up in your Web3 Wallet. 'Confirm' the transaction and wait for it to be processed. If all good, it executed:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-554d96dda37548b7418c053a5cd4748794a775de%2Fimage%20(35).png?alt=media&#x26;token=70291e54-11e5-4239-812c-3e29bdd00294" alt=""><figcaption></figcaption></figure>

Head back for the last time to your Aragon Client DAO :fingers\_crossed:, and open the **Finance** app. In our example we see that a 'Contributor compensation' of 0.1 ETH is displaying in the 'Transfers' overview:

<figure><img src="https://1303901111-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqkA65ZBta5cBbldyxyst%2Fuploads%2Fgit-blob-c25633e79dbc924eba2fcfa77fead1cf9dcd04d4%2Fimage%20(11).png?alt=media" alt=""><figcaption></figcaption></figure>

We did it! :partying\_face: Well done! :medal:
