Starting November 1st 2019, Croatia's UBIK, self-regulatory NGO for blockchain and cryptocurrency, moved its governance onto the Ethereum blockchain in the form of a decentralized autonomous application (DAO).
What is a DAO
Technically, a DAO is a collection of smart contracts which allow certain Ethereum accounts to execute group decisions on some code.
Put simply, a DAO is a way to control some legal entity like an organization, cooperative, foundation, company, or something similar through voting on the blockchain, something which we've written about before.
In a DAO model, every member of the organization has a certain amount of non-transferable reputation tokens. These tokens cannot be purchased on any market, only minted onto a user's account through a referendum. The referendum can be opened by any Ethereum user, and the existing members then vote on it or let it expire. Referenda can be anything – in UBIK's case that'll be adding new members and changing reputations, financing business trips and meetups, decisions about sponsorships and partnerships, and more. Other DAOs have other ideas.
One interesting example is Croatia's Ampnet.io, a company with plans to create renewable energy cooperatives. Each cooperative would be a DAO in which members would vote on common infrastructure, investment and maintenance issues.
During votes in a DAO, reputation tokens aren't spent – reputation doesn't disappear as you participate in referenda. In fact, high activity in a DAO might be good grounds to apply for some more reputation tokens because you're being a useful member!
Perhaps you're wondering how this approach is different from the UBIK blockchain vote executed earlier this year? The last vote was simplified for the non-technical users. By reading a simple QR code, members would get a temporary wallet on the Lisinski Testnet – not real Ethereum. This wallet contained some test ether so that transactions could be easily executed. It was an interesting experiment, but it didn't lend itself well to longevity – the record of our votes died with the chain as those running it lost interest to keep it up.
UBIK's DAO was created by the member-company Bitfalls on the main Ethereum network, making it permanent and available in perpetuity. Unfortunately, this also means it's less straightforward to use than the previous vote was – the UBIK DAO requires a proper blockchain wallet like Metamask, Frame, or one of the many mobile wallets. You also need some ether to actually send the transactions. To reduce new user onboarding friction, UBIK will be refunding membership fee overpayments in ether sent straight to an account provided to the NGO during signup.
UBIK's DAO will be used to group decisions and is the first of its kind in the world to use the blockchain in such an official capacity. The DAO will also keep the NGO's funds in DeFi, earning 5-10% annually on top of the collected membership fees, which is sure to offset the organization's maintenance costs at least somewhat.
One of the more interesting properties of UBIK's DAO is that one can interact with it through smart contracts directly. In case the UI that the DAO currently uses – https://mainnet.aragon.org/#/ubik/ – disappears or is attacked, users can still use the DAO through the blockchain directly. This prevents the organization's funds from staying stuck in the system in case something goes wrong with the official UI, and it also works well for developing custom UIs with a focus on, for example, mobile devices.
The voting structure is as follows: referenda need 50% of relative support and those 50% need to be 20% of all the tokens in the DAO. Not voters – tokens! So it's a majority vote of at least a fifth of the tokens of all the members. If this condition is true, or if all members come out to vote, the referendum is executed instantly. Otherwise, it lasts for two days until it passes or expires. During those two days every vote can be changed – lobbying is permitted and one can change their mind with the click of a button.
How to join
If you're a member of UBIK, you have the right to claim 10 reputation tokens. Board members get 100 tokens. Reputation can rise and fall depending on actions by members – more active, more useful members can request additional tokens.
To join the DAO, i.e., to get the tokens that let you vote on future referenda:
Open the Tokens application and click on “Add tokens”
For “recipient” put the address which you want send the reputation to. It's best to use an address that's easy to access – if you have it on a hardware wallet, you probably won't often vote because of the tedium involved with connecting and unlocking it. A Metamasku or Frame wallet would be quite enough. Under token amount put 100 if you're a board member, 10 if you're a regular member. After confirming, sign the transaction in your wallet as offered on screen and wait. This transaction is necessary to make your candidacy official and to become visible to other members. Once the transaction has been confirmed on the blockchain, you can see the progress of your application under Voting:
Identify yourself in the UBIK Slack channel #DAO. Join the Slack community at https://ubikcro.slack.com after officially joining the UBIK NGO by applying. Mention which address belongs to you in the #DAO chat room.
Await votes. Existing members will notice and vote for your application. The whole process can be followed in the Voting app which should show the amount of votes in favor or against your proposal, as well as the time remaining before the proposal expires. If most of the members vote YES, your proposal is instantly executed.
There are four types of referendums: DAO Agent, Vote, Mint, and Treasury. Let's start with the simplest and work our way up. Each of them will end up in Voting when initiated – you can use that interface to monitor all current and past referenda and you can even vote there if you're logged into a wallet and have some UBIK reputation tokens on it.
Minting is the action of creating new tokens on a user's account – whether that's a new or existing user. This action can also be used to take away a user's tokens, for example if they're misbehaving. Initiate a Token action from the Tokens screen.
If you want to withdraw some of the DAO's funds, you need the Finance app and activate the Withdraw function. Each withdrawal must be justified by a reference.
After sending the withdrawal request, it enters a voting phase where other members need to approve it as per the aforementioned rules. As an example, this referendum will be used when a meetup is being organized and needs a food and drink budget.
A vote is a simple yes/no vote to gauge interest from the members. “Will we host a talk at a Fintech conference?”, “Do we accept cooperation with the Slovenian version of UBIK?”, that sort of thing. The votes are purely informational, they do not trigger any code as a result of their execution. They are there purely for signaling support for or against an issue, and for having a voting “paper trail” if needed later.
A DAO would be fairly meek if all it could do programmatically was add / remove tokens and withdraw funds. That's why it's possible to use the DAO itself as a smart wallet which can perform any action on the blockchain which regular users can also do. Want to use the DAO to play Cryptokitties? Or maybe you want to put the DAO's treasury into DeFi and earn income on it? Perhaps you're considering the purchase of the UBIK.eth domain? No problem, Agent is an application which lets you do all that.
Full instructions about using Agent can be found here.
Every decision made by an Agent in the name of the DAO becomes a decision members of the DAO need to vote on. If, for example, a member uses the Agent integration to start bidding for the purchase of UBIK.eth at 5 ether, then it's up to the other members to accept or reject that proposal. There is no way for any one member to take full control of the DAO unless they get 51% of the tokens in the DAO.
For more information, feel free to hit us up at email@example.com, come to the F2 Fintech conference, or one of our many DeFi and DAO meetups in December (stay in the loop by following Coinevents.io!)