This document is not a Tutorial; it is DAO Ninja Training.

If you want to learn how to use the Ethereum Wallet UI to participate in the many DAOs that will undoubtedly be created as part of the Ethereum Ecosystem — this is the best place to start.

This post going to be challenging, you will run into bugs and get stuck on steps you thought should have been easy. This is by design. You will learn more if you work for it!

If you have any issues, join us on the #art_of_the_dao channel in the Slock.it Slack (get an invite here: http://slack.slock.it:3000 ). The community on our Slack is extremely helpful and active.

Install the Ethereum Wallet

The Ethereum Wallet is the only available option at the moment to interact with a DAO from within a simple UI. Watch this video to find out how to install the wallet on your operating system of choice.

Don’t be that guy (courtesy of @etherprophet)

Learn how to use the Ethereum Wallet safely

If you plan on holding any amount of real value in the Ethereum Wallet, you will need to back it up first. This video will show you how to back it up and load it with ether (ETH), the fuel needed to interact with the Ethereum blockchain.

Always do your DAO Ninja Training on the Testnet

Practice! Send test ether (tETH) to a Test DAO Token Sale.

If you have never used the Ethereum Wallet, this is easier said than done.

1. Make sure you are on the Testnet (‘Morden’)

2. Get tETH by either mining, finding a working Testnet faucet, or from a friend on the Slack

3. Send tETH to the InfiniteTestDAO (‘∞tDAO’) Contract: 0x055343f7690a15e1b60107a9ed12781e47cd94a5

Practice! Add the Test DAO Contract to your Ethereum Wallet

Initially you will receive no notification that you have ∞tDAO Tokens. To interact and track your activity on the ∞tDAO, or any DAO you want to work with you will need to ‘watch’ the ∞tDAO contract and its token contracts:

InfiniteTestDAO: 0x055343f7690a15e1b60107a9ed12781e47cd94a5

JSON: https://slockit.slack.com/files/lefteris/F0Y1YJGV7/full_dao_json.js

You’ll get a chance to customize the name of the token and its symbol. Hint: it is very important to enter ‘16’ in the last box, otherwise you may get confused on how many ∞tDAO you are actually in control of; ‘16’ is the standard decimal places of the smallest unit for any DAO token created by this generic DAO token framework.

In some versions of the Ethereum Wallet, the token balance will initially appear as 0 — this is a bug. A workaround is to click the new token box that just appeared and change the ‘16’ to something else. A new token box will appear, set the value to ‘16’ again and the new token box will show the correct number of tokens in your wallet, you can delete the incorrect token box that lingers.

5. Practice! The real test begins!

Now the real fun can begin! This exercise will require a new testDAO so you can forget all about ∞tDAO, we are moving to PracticeTestDAO (ptDAO)!

There are 20 ETH up for grabs for those who complete these exercises!

Anyone who successfully completes any of the following exercises will be rewarded with (real) ETH: 20 ETH will be divided equally among every correct answer sent to me via email ( [email protected] ). If it is posted publicly you will not earn any ETH. Please include in the email your Slack handle and your Main Net ETH address. The exercise was due by April 12th at 11:00 PM (Seattle). Sorry you missed it, but this exercise is still worth your time if you ever have a desire to participate in any DAO on the Ethereum blockchain.

Considering @etherprophet‘s great memes this might evolve to training DAO Jedis

​*Pre-Reqs*​

Watch the Token and the Contract for ptDAO using the same JSON interface as above and use the ptDAO Address: 0xad23d7c443382333543dd13c3b77b99b2a7e2c6d Get ptDAO tokens from someone! (This test token sale has already ended, so now you have to get tokens from someone who has them — @griff is a great person to ask) Make sure you have 3 (three) accounts each loaded with tETH, one of them will need at least 20 tETH. Have Christoph Jentzsch’s White Paper and the Open Source smart contracts available for reference. You will find that all of these exercises can be answered by consulting either the White Paper or the Code, whichever is easier for you to understand.

The WORK!

You might want to read all of the questions before you start. These exercises are very tricky, be warned, and anything in bold is requesting information that needs to be included in your email to receive ETH.

1. Briefly explain what the Approve function does and at least one thing it could be used for.

2. Use the Approve function twice calling it from your account that contains ptDAO tokens. For the first Approve function call, approve the Curator’s (still called Service Provider in ptDAO) address and for the other Approve function call, approve your second accounts’ address. List the address of the account that called the Approve function for the Curator (formerly Service Provider) and how much the Curator’s account is approved for, include descriptive units.

3. Calling the Approve function enabled 2 other functions to be used. Use one of these 2 functions to finish what your Approve function calls started. List the functions that are enabled by the approve function and briefly explain the differences between the 2 similar functions and why this is important.

4. Create a New Proposal. Call it from your second account, and leave the new service provider box unchecked. List your Proposal ID. If you encounter any issues, please explain how you corrected them.

5. Use the Transfer function to send ptDAO tokens to your third account without interfering with the Approve function call in Exercise 2. List how many ptDAO tokens you sent and briefly explain whether or not it ended up matching the amount you wanted to send; include descriptive units.

6. Create a new Curator (formerly Service Provider) proposal, calling the New Proposal function with your third account and vote for this same proposal with that same account. Once the voting deadline has passed, call the SplitDAO function and split the DAO with this third account as the new Curator. List your Proposal ID, briefly explain what happened to the ptDAO tokens that were in your third account, and list what very important piece of information is missing preventing you from going forward. Note: this is something we have a solution to, it just has not been implemented as part of the Ethereum Wallet UI yet.

7. There are a few important differences in the ptDAO deployed for this test and the open source DAO.sol smart contract that Slock.it is building for the world to use. Explain an action you were able to perform in this DAO that defies the current DAO.sol smart contract on github.

If you can make it through these exercises you are ready to be a contributing member of a Decentralized Autonomous Organization! Congratulations! To become a DAO Ninja, you will have to continue to practice. Join us on the Slack in the #art_of_the_dao channel to continue your training.

See Daniel McClure’s excellent blog post for hints on common problems that you might face while trying to complete these training exercises .

About the Author

Griff Green is our Community Organizer at Slock.it.

Griff recently obtained his Master of Science degree in Digital Currency and is one of the first people in the world to have a degree in this rapidly evolving field. He has been traveling around the globe for the last several years promoting digital currencies especially in the US, Ecuador, and Indonesia.