Skip to content

How to deploy a DAO

Christoph Jentzsch edited this page Apr 19, 2016 · 9 revisions

Technically, the smart contracts need to be compiled using the solidity compiler (https://github.com/ethereum/solidity) and the resulting bytecode, appended with the construction parameters using the ethereum contract ABI (https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI), needs to be set as the data field of a transaction with no receiver specified (empty array, not zero), which needs to be sent to the ethereum network.

There are many ways to do this, but the simplest is using the latest Mist Wallet release (https://github.com/ethereum/mist/releases). There one can got to "Contracts" on the top right side and choose "deploy new contract". There one can place a copy of the following smart contracts (in that order):

in the "Solidity contract source code" field. Mist then compiles the contract. On the right side one can then pick a contract to be deployed. The first one is DAO_Creator. After picking this one, one can click the "Deploy" button. This will deploy this contract to the blockchain. After the block with this transaction is mined, the address of the contract can be seen as the receiver in the "latest transaction" list (by clicking on the identicon of the address). Please copy this address and store it.

Now we can go through the same steps as above again, but instead of picking the DAO_Creator we pick the DAO contract. This contract need to be deployed with several constructor parameters which need to be set:

  • curator Address of the curator (typical a multisig account)
  • dao creator Address of the DAO creator which was just created in the previous step
  • proposal deposit The amount (in wei) to be paid as a deposit for a proposal. After a vote in the community slack channel, it was decided that 2 Ether (2 * 10^18 Wei) would be a reasonable number.
  • min tokens to create The minimal number of tokens (in its base unit) which need to be created during the creation phase (e.g. 5.000.000 DAO = 5 * 10^22 base unit DAO)
  • closing time The unix time at which the creation phase ends.
  • private creation the only address which is allowed to create tokens. For a public DAO creation, this field is left empty.

After every value is set, the DAO can be deployed and the address can be retrieved in the same manner as explained above for the DAO_Creator contract.

Clone this wiki locally