How to Recover Funds accidentally sent to an Aragon App address
Last updated
Last updated
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
Use the following steps:
Open your DAO, and add /console
to the end of your DAO web address. The URL would look like this: https://client.aragon.org/#/<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:
Use the following steps:
Install the aragonCLI which is a command line interface for interacting with Aragon organizations.
Run aragon ipfs
in your Terminal in order to provide aragonCLI with a way to access data (e.g. ABIs) for Aragon organizations.
Set a private key for the aragonCLI to use, then send some ether to the address for this private key to pay for gas.
Send the following transaction command from the aragonCLI, replacing each "address" with the corresponding address relevant to your stuck transaction:
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:
Thanks to Chris Hobcroft for documenting these steps in this GitHub comment.