Installing the Redemptions App

0. Setup the aragonCLI

there is a guide to setting up the cli using Linux here. Alternatively you can use the prebuilt docker image, instructions for setting it up are here


1. Spin up a company DAO

  1. create a company DAO in the client on rinkeby
  2. once we have the DAO setup, we are going to set some admin permissions so we dont have to vote all the changes through
  3. under the permissions tab, give your deploying account
  • the manage apps role on the kernel
  • the create permissions role on the acl

2. Create environment variables

cli commands can be quite verbose, to make them more intelligible and to avoid errors we will set some addresses as environment variables. You can find these under the organisation tab

f="--env aragon:rinkeby"
ANY_ADDRESS=0xffffffffffffffffffffffffffffffffffffffff
dao=
vault=
tokens=
voting=

3. Redemptions

Three permissions need to be created for the Redemptions app to function properly:

  • REDEEM_ROLE
  • ADD_TOKEN_ROLE
  • REMOVE_TOKEN_ROLE

The Redemptions app must also have the TRANSFER_ROLE permission on Vault and the BURN_ROLE permission on the Token Manager.

NOTE if TRANSFER_ROLE and BURN_ROLE are not already set you must use acl create.


4. Install Redemptions

If you didnt set the admin permissions in step 1, these commands will trigger votes that the DAO needs to approve

The redeemable token address needs to be a valid token contract on the network that the DAO is on (Rinkeby or mainnet).

aragon dao install $dao redemptions.aragonpm.eth --app-init-args $vault $tokens ["'0x0000000000000000000000000000000000000000'"] $f

0x0000000000000000000000000000000000000000 is the address for ETH.

Get the redemptions address and add it to the environment variables.

redemptions="NEW_REDEMPTIONS_ADDRESS"

Install app permissions.

dao acl create $dao $redemptions REDEEM_ROLE $ANY_ADDRESS $voting $f
dao acl create $dao $redemptions ADD_TOKEN_ROLE $voting $voting $f
dao acl create $dao $redemptions REMOVE_TOKEN_ROLE $voting $voting $f
dao acl grant $dao $vault TRANSFER_ROLE $redemptions $f
dao acl grant $dao $tokens BURN_ROLE $redemptions $f

More info

More info on the Redemptions app can be found in the 1Hive Redemptions GitHub repo.

1 Like