11

Is it possible to implement a DAO (Decentralized Autonomous Organization) with Ethereum? If so, has it been done in an effective way? Are there any examples?

2

A nice and simple DAO example is right on the Ethereum Wallet download page: (scroll down on the page to see it) https://github.com/ethereum/mist/releases

Example contracts:

You can test a complete DAO with these contracts, by following these steps:

  • Get the code to create a Custom Token: go to contracts > deploy new contract
  • Use 10000 as the _supply, 2 as _decimals and % as the symbol. Click deploy and wait a few seconds for your code to be picked up.
  • Now go to the contract page (its on the "latest transaction" table on the dashboard or on the Contracts page) and click "copy address to clipboard". Save that somewhere.
  • Get the code to create a DAO: and paste it on the contracts > deploy new contract page.
  • Use the address you saved earlier as the sharesAddress, put 1000 on minimumSharesForVoting to reject any proposal that doesn't have at least 10% of shares behind it and put any number you want on minutesForDebate. If you just want to do a quick test, use a small amount like 5-30, but if you actually want it at least a week of full debates before any proposal can be executed, then put 10000 or more.
  • Click deploy and wait a few seconds for the transaction to be picked up
  • Go to the contract page and click "show contract info". You can read all the information about the contract on the left column.
  • Pick newProposal. Add the recipient you want to receive the ether, the amount and a string. If you want it to execute some code, add the contract data on the last box. Click "execute".
  • Pick vote. Select the user that you want to vote with, the proposal number and click "YES" if you support the proposal.
  • Pick executeProposal. Proposals can only be executed if the minimum amount of time to vote has passed and if enough users have voted to surpass the minimum quorum. Choose the proposal number, click "execute" and it will count up the votes. If it passes it will send the amount asked and execute the code.
5

You can find the details here in the official website

as in the docs

Take a moment to dream about the revolutionary possibilities this would allow, and now you can do it yourself, in under a 100 lines of code:

Its the easiest way that it ever possible

Also here is a blog post specifically for it by Vitalik Buterin

  • If you get a chance, please provide more details of how this was done. – high110 Jan 24 '16 at 22:20
  • @high110 sure, i will be starting a blog series soon, and we can collaborate on that. – niksmac Jan 25 '16 at 3:51
5

Yes it can be done and yes it has been done :)

There is a DAO for the Dogecoin-Ethereum Connection Bounty.

EDIT: Providing more details.

The DAO contract used was written by Alex Van De Sande and is located here. The contract provides a methods to add DAO members, remove members, add proposals, vote on proposals, execute proposals, and set the specific rules for the DAO/proposals (such as minimum quorum).

The executeProposal function is very interesting because proposals are executed using actual Ethereum bytecode. The contract compares the Keccak hash of the proposal bytecode and if enough votes occur to perform execution it will compare the hash of the proposal bytecode to the execution bytecode. If the hash comparison is true, the bytecode is ran using this line:

p.recipient.call.value(p.amount*1000000000000000000)(transactionBytecode);

Anyone can monitor and interact with the contract by following these instructions.

Screenshot of DAO in Mist Wallet: enter image description here

  • Could you provide more details of how it was done? – high110 Jan 24 '16 at 22:19
1

One of the best examples of a DAO I've seen on Ethereum right now is being made by the Boardroom project.

This is more than just a simple single DAO voting contract. This is a collection of 13 solidity contracts and a frontend that can manage a small group. Boardroom is one of the ConsenSys projects. I only wish they were compatible with Mist. (They are still in Alpha, so you'd likely want to read through everything very carefully first.)

http://boardroom.to/

https://github.com/web3-gov/meteor-dapp-boardroom

https://www.youtube.com/watch?v=miaxf6BI6Wc

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.