The Ethenian Decentralized Autonamous Organisation is a framework of smart contracts written for the Ethereum platform. It's primary focus is to offer direct and delegative democratic governance models for a broad range of organisational types. This framework utilises a system of registrars and smart contract factories to offer extensibility and upgradeability while offering secure management of stakeholder funds.
In the EthenianDAO, Member's raise, vote, and fund Matters. Each member owns and funds their own member contract and maintains full control over those funds until they are committed to funding a Matter. A member's voting power is proportional to their level of financial commitment up to an optional maximum voting balance.
This code base is an early Proof of Concept, it is neither complete nor algorithmically secure but has been released here as an entry into the Blockchain Virtual UAE GovHack hackathon.
This repository is in no way ready for deploying to a blockchain and user friendly deployment has not yet been developed. For development purposes Browser Solidity, as a chrome extension can connect to a local instance of testrpc for simulating the blockchain environment. The front end has been written for Meteor for later integration into Ethereum Mist and can be run under a different tab by launching Meteor in the app directory.
- Load up the solidity files in Browser Solidity and compile
EthenianDAO(solc version 4.7 has been used in development). - Launch
testrpcand connect Browser Solidity to the Web3 Provider. CreatetheEthenianDAOFactoryand use thecreateNewfunction with an optional name to create a DAO contract- The
lastfunction will supply the address of the DAO contract. Copy this address into theAt Addressfield of theEthenianDAOcontract. - This address also has to be pasted against
daoAddrinapp/client/main.js(as routing is not yet implimented) - Click on functions
init1theninit2.- Create
MemberFactoryand copy it's address.
- Create
- Launch
Meteorfrom theappdirectory and point a browser tolocalhost:3000. You should now see the GUI - Click
Add Factoryand entermemberFactoryas the name and paste theMemberFactoryaddress. - Repeat for
Matter Factory - You should now be able to
Join this DAOand thenRaise a Matter. - NOTE: Only one member account is allowed per Ethereum account.
- Click
Fund Member Accountto send funds. Voting power is proportional to funds provided. - Once a matter is created, options and delegates can be added.
- A member can adjust the sliders on the options and delegates of a matter to express preferences between 0 to 100% of their voting power and then click
Submit Votes
A number of reserved name matters will be recognised by the EthenianDAO. Raising matters named minimumVoteBalance and maximumVoteBalance will allow members to vote on these levels. Such scalar return a average of the values which have been voted for.
Again this project is in early development and runs poorly. If you find it interesting none-the-less or would like to contributes, please let me know. If you have front end skills particularly with Meteor, then I'd certainly love to hear from you.