# 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/documentacion-del-usuario-de-aragon/productos/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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2F8VTH8Qyvj2sbNSpd8306%2Fa1_Sig.png?alt=media&#x26;token=107e3000-7cc5-40da-8a23-c27e4da9b861" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FZsLQMGq6LRli881LtbrN%2Fa2_sig.png?alt=media&#x26;token=275b6ade-6226-4b5c-9da9-92dccaadd928" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2F9sDa2VTvqmF0mK8x3kAg%2Fa3_sig.png?alt=media&#x26;token=c8cb0651-90f3-4962-b2d8-704e761986c5" alt=""><figcaption></figcaption></figure>

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':

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FCm9ZUsxyCYl4lgVvdNIz%2Fa4_sig.png?alt=media&#x26;token=eb876c74-c532-449a-bc69-c564dc069554" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FTViQZ27IAPKVPF4dYTnt%2Fa5_sig.png?alt=media&#x26;token=d3594b8e-18a5-4796-8954-b2338a01f2fe" alt=""><figcaption></figcaption></figure>

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':

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FLRRF5yxm5R4EXwc6YKYU%2Fa6_sig.png?alt=media&#x26;token=fe163c96-9c62-4485-b894-e8c8178083e0" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
Do not forget to remove the letters from the front of the Gnosis Safe address,**`eth:`**&#x6F;&#x72;**`gor:`**&#x6F;r 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':

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FDXv3H6yJc5MUWQRnVFHs%2Fa7_sig.png?alt=media&#x26;token=067bca1a-0fec-425f-898b-a7f080bad461" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FrTUJLULyicHtaHdRqarf%2Fa8_sig.png?alt=media&#x26;token=f570ff30-a14d-4c8a-9a26-c02e5a7f2a4c" alt=""><figcaption></figcaption></figure>

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':

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FEnNerv7xFDLN88Vv1LpP%2Fa9_sig.png?alt=media&#x26;token=6f720667-fba3-42a8-b185-b4c85fc0e12b" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2F0AULkdSSnmMfteKGqolU%2Fa10_sig.png?alt=media&#x26;token=8056dfe5-4186-423e-9f04-6feecb0f1487" alt=""><figcaption></figcaption></figure>

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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FvfjknXm9yjoPNl1dXIWU%2Fa11_sig.png?alt=media&#x26;token=7706bca7-86d6-4b42-8b81-38bfd503a3f4" alt=""><figcaption></figcaption></figure>

Now confirm the vote by clicking 'Yes':

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FR9J4xuzxuJNl8srpChd7%2Fa12_sig.png?alt=media&#x26;token=d123fd52-f989-4b2d-8283-38f252b28b72" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FyN0jd3u4mgfhudMpan4V%2Fa13_sig.png?alt=media&#x26;token=98d61e50-9b03-4ed9-911a-0529e3743fec" alt=""><figcaption></figcaption></figure>

In our example it confirmed that the vote has passed:

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FRJjBuVKJdP0xaGcr8Dui%2Fa14_sig.png?alt=media&#x26;token=ac6afb97-5d0d-4c58-9286-3231d86f0cca" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2Fn3hwVwUyD6sutbm49i3O%2Fa15_sig.png?alt=media&#x26;token=48cd593b-6864-4eff-ba43-4bc0dc7a1c5f" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FADmGmHmlUkmtxFIl9DqB%2Fa16_sig.png?alt=media&#x26;token=ff055c7d-36dd-46f9-b965-7be9fccd6805" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FJu7FRyWdkwVAfEF7V3NB%2Fa17_sig.png?alt=media&#x26;token=3cff5449-23e1-4b57-a222-1691e096b72a" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FHkfXdgcprGbt1owxbXnq%2Fa18_sig.png?alt=media&#x26;token=2b849f0b-010f-40d9-b6cc-ee2d7e489497" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2Fx4S53s31VInjF3xJTwFN%2Fa19_sig.png?alt=media&#x26;token=0efb008b-75ba-4b54-af97-0c63503c3bdd" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FZNUb5A2VXsWvLvdAaTQf%2Fa20_sig.png?alt=media&#x26;token=327a939f-d113-4331-9460-e31652c83052" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FfJg8d8Es5yd16o82MXaz%2Fa21_sig.png?alt=media&#x26;token=6bbbab2c-76af-417c-8116-c343d81571f7" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2Fs5UFsYGqp8y2ZHplmASm%2Fa22_sig.png?alt=media&#x26;token=7e82b028-931d-43e3-8f0d-298fbf48ae48" 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 th&#x65;**`newImmediatePayment`**&#x6D;ethod 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FOjUq1Dg7yqZOGVtgATZd%2Fa23_sig.png?alt=media&#x26;token=469b6db6-5c2a-405e-b76b-2cad5373d139" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FvkFzctFZM8FU4oq0ut9K%2Fa24_sig.png?alt=media&#x26;token=42ff4612-35aa-4cbd-8a8c-f06f53bdb546" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FnokYYY0OofjTKnG00J4w%2Fa25_sig.png?alt=media&#x26;token=6a8957a8-e3a6-4301-bf6e-081b725a03cc" 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://2189384948-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ft3hTlaCHK27whtbUr05N%2Fuploads%2FIS0SeIwBntGnjpNkeobl%2Fa26_sig.png?alt=media&#x26;token=40aa7e6d-050e-4291-9f76-87201e0fa8ca" alt=""><figcaption></figcaption></figure>

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