Skip to content

Instantly share code, notes, and snippets.

@sohkai
Last active August 13, 2018 22:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sohkai/b02dffaca87e99ad715926eb5b5003ad to your computer and use it in GitHub Desktop.
Save sohkai/b02dffaca87e99ad715926eb5b5003ad to your computer and use it in GitHub Desktop.
New Survey DAO

Creating a new Survey DAO on mainnet (by hand)

First: you must have a pre-existing Minime token already deployed to mainnet.

Creating a DAO

To create a DAO with the Survey app installed, you can send a transaction to our Survey DAO factory (0xb5ba20a4e9167b640311a0c10d773bb143db5e39), calling newInstance().

If you look at the tx we used to create our (Aragon) DAO: https://etherscan.io/tx/0xcff32cd339f3ea7d41f31577d57a0dd3bc4db228e3f9b7ebc4bcdba28503fb1f, you can take the input data and change a few areas:

  • Replace 960b236a07cf122663c4303350609a66a7b288c0 (ANT token) with your-minime-token-address
  • Replace both instances of 4cb3fd420555a09ba98845f0b816e45cfb230983 with the address you want to be the "root" user, who holds all the permissions to control the DAO (easiest to use a hot wallet for this, and then transition it to a multisig / etc. afterwards).
  • The other settings we've used are voting period of 4 weeks (that's the 24ea00), and min participation of 10% (where 10e18 is 100%; that's the 16345785d8a0000).

That should create your DAO at some address like: http://mainnet.aragon.aragonpm.com/#/<dao address>/<survey address> where the DAO address is the first argument in event log #26 of the transaction above, and survey is the first arg in event log #25. You can craft the transaction from MEW and use this ABI.

Creating new surveys

We've disabled the 'New Survey' button for now, so you can only create new surveys with a script.

You'll need to clone aragon-apps, go to the survey-launch branch, and then go to aragon-apps/apps/survey/. Once you're there, you'll find a script file scripts/create-surveys.js that will let you create surveys.

First, change the included truffle config to:

const config = require("@aragon/os/truffle-config")
const provider = ... // HD provider

config.networks.mainnet = {
  provider,
  network_id: 1,
  gasPrice: 10000000000, // probably enough?
}

module.exports = config

Then run npm run compile, and finally, you can run the script with truffle, using a mainnet provider (but you'll have to attach your own private key provider). The specific command would be SURVEY=<your survey app's address> npx truffle exec scripts/create-surveys.js --network mainnet.

Some notes

  • Surveys have their token balances pegged to the block immediately before the newSurvey transaction gets mined, so any users who didn't have the token before then won't be able to vote.
  • No hardware wallet support is included yet, but we recommend frame for users of hardware wallets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment