Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To Do Wish List: 1. Add screen shots 2. Add detail 3. Check for correctness grammatically and technically

Pre-requisites:

Understand how to work with the Ethereum Wallet on the Testnet and understand how to work with DAOs. It is HIGHLY recommended that you begin with this blog post and at least get to "The WORK!" section.

Other blog posts that will help you understand the inner workings of the DAO are herehere, and here, and having Christoph Jentzsch's White Paper available for reference will be incredibly helpful.

1. Gather the information you will need to Deploy your DAO.

For your first DAO, it is always best to practice on the testnet, but either way, if you are deploying a practice DAO for fun or a DAO to start your own country, you will need to decide the following instantiating inputs for your DAO before you begin.

  1. curator The Ethereum address of the Curator for your DAO (typically a multisig wallet contract)
  2. 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 to start with, this can be changed by the DAO later through a proposal.
  3. min tokens to create The minimum number of DAO 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)
  4. closing time The Unix time at which the creation phase ends, usehttp://www.unixtimestamp.com/ to determine this integer.
  5. private creation The only address which is allowed to create tokens. For a public DAO Creation, this field is left empty.

2. Create a Text file of the applicable smart contracts.

There are 4 smart contract files that make up the DAO. It will be necessary to comment out or delete the "import" lines in the contracts. Merge these files together in this order:

...

Save this text file as a .sol extension type and if you want to edit the rules of your DAO, this is where you would do it.

3. Compile your DAO

Technically, the DAO's smart contracts need to be compiled using a Solidity Compiler. The resulting bytecode, appended with the construction parameters using the Ethereum Contract ABI(also known as a JSON interface), 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 complicated ways to do this, and if you are an Ethereum developer, that is all you need to know.

...

There you can delete the default "MyContract" code in the "Solidity contract source code" field and paste in your text file created in Step 2. The Ethereum Wallet will freeze for a up to a minute or more on slower computers. This is normal. Be Patient! Let it think, this is a very complicated contract!

4. Deploy the DAO_Creator Contract

In step 3, the Ethereum Wallet compiled your DAO contract, but your DAO is not yet deployed. To store the code you created in step 2 immutably for the rest of time on a blockchain you will have to use the helper contract DAO_Creator.

...

Alternatively, you can us the DAO_Creator at 0x4a574510C7014E4AE985403536074ABE582AdfC8 (this is for version 1.0 of the contracts)

5. Deploy the DAO: Repeat Steps 3 and 4.

Now that your customized DAO_Creator helper contract has been deployed on the blockchain, you can deploy your DAO. To do that you again need to compile your text file created in Step 2.

...

If you had issues, please state them below.

Can't get contract to compile

"delete or comment out the 'import' lines" solved my issue.