How to Recover Funds accidentally sent to an Aragon App address

If you accidentally sent tokens to the address of an App installed in an Aragon organization, you can recover the tokens and send them to the organization's Vault, the organisation App which should hold your DAO funds. There are two ways to do this:

We strongly recommend using the Console option since it is much easier

Recover your funds using the Console feature

Use the following steps:

Open your DAO, and add /console to the end of your DAO web address. The URL would look like this:<your-dao-name>/console

Replace <your-dao-name> with the name of your DAO in the above URL

You should see something like the below:

Next select Exec which is a command used to perform transactions in DAOs.

Here you select the App to which the funds were accidentally sent. In this example, funds were accidentally sent to the Finance App so we select Finance:

In the source code of the Finance App on Github you can find a function called recoverToVault , exactly what we need!

We will now call this function from the Aragon Console. To do so we will have to add recoverToVault(address _token) to the command in the console, but first we will replace address _token with the contract address of the token which were accidentally sent to the Finance App.

In the case of this example the address is 0x3255D2D022Ef80F58dA2D107235010367cCdF0fD , so we will add recoverToVault(0x3255D2D022Ef80F58dA2D107235010367cCdF0fD)to the command in the Console. The full command for this example is now the following:


Now click Enter:

Now confirm the transaction by clicking Create transaction:

Then confirm the transaction in your Web3 wallet (most often MetaMask).

Make sure you use a Web3 account which has either created the DAO or (and) is holding your DAO-tokens to sign this transaction

Now go to the Finance App in your organisation, and your funds should magically appear there! 😅🎉

In this example BRT tokens have been recovered from the Finance to the Vault App:

Recover your funds using aragonCLI

Use the following steps:

  1. Install the aragonCLI which is a command line interface for interacting with Aragon organizations.

  2. Run aragon ipfs in your Terminal in order to provide aragonCLI with a way to access data (e.g. ABIs) for Aragon organizations.

  3. Set a private key for the aragonCLI to use, then send some ether to the address for this private key to pay for gas.

  4. Send the following transaction command from the aragonCLI, replacing each "address" with the corresponding address relevant to your stuck transaction:

dao exec OrganizationAddress AppAddress recoverToVault TokenContractAddress --environment aragon:mainnet

Where the OrganizationAddress __ is the address of the organization housing the stuck funds, the AppAddress is the address of the app you sent the stuck funds to, and the TokenContractAddress is the address of the token contract for the token you sent.

For example, if you sent Dai to the Finance app address of the genesis.aragonid.eth organization, then the transaction command you would send to from the aragonCLI would be:

dao exec 0x8A83D4bCE45b4C4F751f76cf565953D1E4A3BF0a 0x98516C82Bda8B3dE6E2670B718848949Ae6a4643 recoverToVault 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359 --environment aragon:mainnet

Thanks to Chris Hobcroft for documenting these steps in this GitHub comment.

Last updated