-
Notifications
You must be signed in to change notification settings - Fork 498
How to deploy a DAO
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):
- ManagedAccount.sol (https://github.com/slockit/DAO/blob/master/ManagedAccount.sol)
- Token.sol (https://github.com/slockit/DAO/blob/master/Token.sol)
- TokenCreation.sol (https://github.com/slockit/DAO/blob/master/TokenCreation.sol)
- DAO.sol (https://github.com/slockit/DAO/blob/master/DAO.sol)
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.
- Table of Contents
- Wiki Home
- View The DAO on the Ethereum Wallet
- DAO v1.0 Verification and JSON
- DAO Deployment
- The DAO Accounting
- Proposal Creation
- Token Creation and Transfer
- Proposal Voting and Executing
- DAO Splits
- Why Stalking Solo Splitters Makes No Sense
- Turn the Ethereum Wallet into a Mist Browser to Vote
- Proposal Framework Explanation
- PFOffer Workflow
- DAO-Improvement-Requests