Decentralized Autonomous Organization (DAO) Framework
What is it?
Note: this is currently not maintained - do not use it as is.
A Standard Decentralized Autonomous Organization (DAO) framework written in Solidity to run on the Ethereum blockchain.
Feel free to reuse this framework to create your own Decentralized Autonomous Organization.
Reference: "Decentralized autonomous organization to automate governance" - White Paper - Primer
Disclaimer
The future remains a work in progress. Our vision exists in a world where laws vary widely. It is important to remember that anyone who uses the generic DAO framework including the DAO refered to as 'The DAO' or any other DAO will do so at their own risk. One can only speculate about the legal status of DAOs worldwide. Whatever oneβs personal beliefs may be, people must draw their own conclusions, relying on legal advice where appropriate. The authors are not a law firm and are not in the business of offering legal advice.
If you create a DAO it will be your DAO, and you will be responsible for its operation.
Overview
Our Standard DAO Framework allows people to create Decentralized Autonomous Organizations (DAOs) governed by the code in this repository written immutably to the blockchain.
We are making the Standard DAO Framework we developed free and open source, so it can be reused by anyone wishing to put together a transparent organization where governance and decision making systems are immutably programmed in the Ethereum blockchain. This code been reviewed by hundreds of pairs of eyes from our community and by one of the most respected auditing companies in the world, Deja Vu.
This DAO model is open source under the LGPL, so it can be reused by anyone wishing to put together a transparent organization where governance and decision making system are immutably programmed in the Blockchain.
Note: Although the word "contract" is used in the DAOβs framework code, the term is a programming convention and is not being used as a legal term of art. The term is a programming convention, not a representation that the code is in and of itself a legally binding and enforceable contract. If you have questions about legal enforceability, consult with legal counsel.
Solidity files
DAO.sol:
Standard smart contract for any generated Decentralized Autonomous Organization (DAO) to automate organizational governance and decision-making.
Token.sol:
Defines the functions to check token balances, send tokens, send tokens on behalf of a 3rd party and its corresponding approval process.
TokenCreation.sol:
Token Creation contract, used by the DAO generated by the framework to sell its tokens and initialize its ether.
SampleOffer.sol
Sample Proposal from a Contractor to the DAO generated by the framework. Feel free to use as a template for your own proposal.
ManagedAccount.sol
Basic account, used by the DAO contract generated by the framework to separately manage both the rewards and the extraBalance accounts.
DAOTokenCreationProxyTransferer.sol
This contract is used as a fall back in case an exchange doesn't implement the "add data to a transaction" feature in a timely manner, preventing it from calling createTokenProxy().
Licensing
The DAO framework is free software: you can redistribute it and/or modify it under the terms of the GNU lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The DAO framework is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU lesser General Public License for more details.
A copy of the GNU lesser General Public License is included along with the DAO framework. See LICENSE.
Additional Disclaimers
NEITHER THE SOFTWARE NOR ITS CREATORS PROVIDE LEGAL ADVICE AND THIS CODE WAS NOT CREATED TO PROVIDE LEGAL ADVICE OR AS A SUBSTITUTE FOR LEGAL ADVICE. BY USING THIS CODE YOU ALSO AGREE:
a. The creators of the Software and its contributors are not your lawyers.
b. The Software is not a lawyer.
c. Your use of the Software does not, in and of itself, create a legally binding contract in any jurisdiction and does not establish a lawyer-client relationship. Your communication with a non-lawyer will not be subject to the attorney-client privilege and (depending on your jurisdiction) may not be entitled to protection as confidential communication.
d. The dissemination, distribution, or usage of this software shall not constitute the provision of legal advice within your jurisdiction. Unless you are legally authorized and licensed to do so, you will not use the Software to provide or assist in the provision of legal advice.
e. You acknowledge and understand that each jurisdiction has its own particular rules regarding the practice of law. IF YOU USE THIS SOFTWARE TO PROVIDE LEGAL ADVICE YOU MAY BE SUBJECT TO CIVIL AND CRIMINAL LIABILITY. PRACTICING LAW WITHOUT A LICENSE IS A VIOLATION OF CRIMINAL LAW IN SOME JURISDICTIONS. CONSULT A LAWYER LICENSED IN YOUR JURISDICTION IF YOU HAVE ANY QUESTIONS ABOUT WHAT DOES OR DOES NOT CONSTITUTE THE PRACTICE OF LAW.
f. The providers of this software neither warrant nor guarantee this software shall meet the requirements of any particular legal system to form a legally binding contract, nor it it their intention to directly or indirectly facilitate or encourage the unauthorized practice of law.
g. You agree that in order for you to form a legally binding contract that you shall seek legal advice from an appropriately qualified and experienced lawyer within your jurisdiction.
h. Issuance of DAO tokens may constitute the sale of securities in certain jurisdictions. Seek appropriate legal advice before deploying DAO code.