Gambling on the blockchain with Rouleth
Are you feeling lucky? Care to indulge your inner gambler? Then spin the wheel in Rouleth, a blockchain-based virtual roulette game and one of the first operational dapps (decentralized applications) for Ethereum. In this post I offer my review of Rouleth and show you how to play.
I assume you have at least a little background knowledge regarding Ethereum. If you're a bit fuzzy on the concept of a dapp, which is an entirely new type of application, then go check out my introduction to Ethereum before reading any further.
Prerequisites for Playing
You can play Rouleth by visiting its web site, but since this game is a dapp, it requires an active connection to the Ethereum network or it won't work. There are 2 ways to ensure this:
The hard way
If you're already a hardcore Ethereum enthusiast, you can fire up the Ethereum Foundation's Mist software, make sure your local node is synced with the network, and then navigate to Rouleth from within Mist. But if you're new to Ethereum, getting setup this way can be a bit tricky & time consuming, probably more effort than it's worth if all you want to do is play Rouleth.
The easy way
For newcomers to Ethereum, by far the easiest way to use dapps is to install the excellent MetaMask plug-in for Google's Chrome browser. MetaMask adds a simple Ethereum wallet to your browser, and has the added bonus of not requiring you to download & sync the entire blockchain on your computer (so you can be up and running with it in just a few minutes).
I will use MetaMask in this review.
If you already have MetaMask installed and know how to use it, feel free to skip this section and move on to the actual Rouleth part below.
Installing this plug-in is super easy. Simply go to the MetaMask web site, follow the prompts, and a few button clicks later it will be added to your Chrome browser. Piece of cake.
Once installed, there's a tiny bit of setup work to do.
Using MetaMask is a simple matter of clicking on the new plug-in icon at the top right corner of your browser:
The first time you do so, you'll have to agree to some terms & conditions (you know, that big block of boring legal text that nobody ever really reads). After clearing this hurdle, it's time to choose a password for your account:
MetaMask, adopting a humorous animal theme, calls your wallet a den. Make sure you put some thought into choosing a secure password. Anyone who knows it and has access to your computer will be able to get into your wallet and spend your money.
After setting your password, you'll be asked to write down a 12 word phrase. Don't just copy this to a file on your computer. That's a very dangerous thing to do (file could get deleted or stolen by hackers). I suggest writing down the words on a scrap of paper and storing it in a fireproof home safe or safety deposit box. If you forget your password, these words act as a kind of recovery mechanism that restores access to your wallet.
Once done, click through to the next screen:
This announcement concerns support for the Ethereum test network, which is what software developers use to test dapps before releasing them to the general public. You don't need to care about this unless you intend to use the test network, which you probably don't. Simply press "Continue" to move on:
Yay, setup is finished and we've arrived at MetaMask's main wallet screen! And look... you can see the balance in our brand new account is 1 Ether (ETH), equivalent to about $10. But before you start getting excited and think "wow, MetaMask pays you to use it!?" check out the top left corner where it says "Ropsten Test Net". Yep, MetaMask starts on the Ethereum test network by default. So that 1 ETH is just worthless test ETH, not the real deal.
We need to switch to the real network. Do this by clicking on "Ropsten Test Net" and select "Main Ethereum Network" from the resulting drop-down menu:
Now we're ready to rock...
Funding your account
...except we're flat out broke, no ETH in the account. Happily, buying some Ether is fairly easy. Clicking on the "buy" button allows you to purchase ETH from Coinbase, a reputable & reliable money changer service, with a credit or debit card.
If you already have a different Ethereum account, like I do, you can simply transfer some ETH from your existing account to your new MetaMask account. Click on the clipboard icon above the buy / send buttons to copy your account address to the clipboard.
I suggest treating MetaMask as a "hot" wallet, meaning you should only store a small amount of funds in it for everyday use. Keep the majority of your ETH stash in your alternate, hopefully offline account (just like in real life you wouldn't carry around a ton of cash with you; you'd bring as much as you need and keep the rest in the bank).
My MetaMask looks like this after I've moved 5 ETH into it:
Ignore the rejected transaction in my account history. That's there because I foolishly tried to use Rouleth while my account balance was still zero, just to see what would happen.
With MetaMask installed and some Ether in your wallet, it's time to play!
The first time you navigate to www.rouleth.com in Chrome, you'll be greeted with this screen, inviting you to set a nickname:
This is a busy web page with a lot going on, but most of it is pretty self-explanatory.
First off, notice the status display at the bottom of the page. It should show your MetaMask account address and the words "Web3 Connected". This means Rouleth can sense your connection to the Ethereum network through MetaMask. If it doesn't look like this, then there is a problem and you won't be able to play:
Assuming your connection status is good, the first order of business is to decide on a nickname. Once you pick one, it will be recorded on the blockchain and forever associated with your MetaMask account (but you can always change it later by clicking on the little gear icon next to your account address).
After typing a nickname and pressing "Accept", a MetaMask transaction confirmation dialog will pop up:
This happens because setting a nickname triggers an interaction with the Ethereum blockchain, and any such interaction (or transaction, as we say) carries a small execution fee paid for with Ether. So any time a dapp wants to do something on the blockchain, MetaMask will ask you to confirm that you are OK to do it and spend the transaction fee. This is a big difference from the way normal applications work, and can feel a bit odd until you get used to it.
"Wait a minute", I can hear you say, "everything I do on Ethereum has a cost!?" Well, yes, that's a fundamental rule of the system, the price to be paid for decentralization. I admit it would be nice if these sorts of costs could be carried by the application itself instead of passing them onto the users (perhaps using a bit of Rouleth's house profits). But for the most part transaction costs are negligible, as in this case where it's only about 1 cent.
You don't need to scrutinize the dialog too carefully (there's no real choice anyway, the transaction fee must be paid). Just click "Accept" and move on. You'll be doing this a lot.
Once the transaction is processed, the chosen nickname replaces your account address at the bottom of the screen:
A Rouleth nickname is used for 2 purposes:
1. Chat box
I really like the chat box on the right side of the web page. This adds a social element to the game, allowing you to commiserate or gloat to your fellow gamblers. Sadly, when I played the chat box was disabled because no moderators were online, so I couldn't try it out.
2. Leaderboard & Last Spins list
Your wins & losses will be recorded on the Last Spins list for all to see. This guy frootmoot has been on quite a nice winning streak!
I also had fun ogling the leaderboard. There are some real high-rollers on there. Note that the leaderboard is a little deceptive in that it doesn't show actual profits; it just shows the total amount that has been paid out to these players over all spins. There's no way to know how much Ether they lost in losing spins before achieving these payouts.
Come on lucky 7, Daddy needs a new pair of speakers!
Playing is quite straightforward, though it might not be immediately obvious how to set your bet amount (it's the little "Spin Amount" number below the roulette wheel). The minimum bet is 0.05 ETH, and the maximum is 0.75 ETH. That's not much (the equivalent dollar value is about $7.80), but Rouleth is a young game and the maximum bet size may increase over time as the game matures & builds up a bigger bankroll.
Place your bet by clicking on a square on the virtual roulette board. This functions the same as a real casino version, as one would expect.
After confirming again with MetaMask, you need to wait a few seconds for the wheel to start spinning. Oh, the suspense! The cute little croupier robot will keep you informed of your spin's status.
My first game of Rouleth
I decided to use a very conservative strategy to try out the game, betting the minimum amount on red and then doubling my bet after each loss. On my first spin I lost 0.05 ETH. So I doubled the bet and lost that 0.1 ETH as well. Clearly this isn't a winning strategy in the long run, as it won't take long to hit the maximum bet amount after a string of consecutive losses.
Happily on my third spin I got my first win! The bet amount was 0.2 ETH with a 50% chance of winning, so my payout was 0.4 ETH. After subtracting previous losses plus the Ethereum network transaction fees, this put me a little bit ahead overall. I decided to stop there and not push my luck.
Later on I sat down to write up this post, and while working on it decided to take another spin. This time I altered my strategy, choosing long odds with a bet on #28. Again I bet the minimum amount 0.05 ETH. The wheel spun... and spun... and landed on 28! Jackpot on the first try!
Those are 36 to 1 odds, so my payout was 1.8 ETH, which is about $20 at the current exchange rate. Not bad! Of course, I instantly wished I'd placed a higher bet... at the maximum bet of 0.75 ETH, my payout would have been an impressive $303.
Clicking on "My Spins" is an easy way to see how you've been doing over time:
Here's what my MetaMask wallet looks like now:
I started with exactly 5 ETH so you can see I'm up 1.786 ETH (winnings - transaction fees). Beginner's luck, or am I a natural born gambler? You decide!
Overall, there's not much not to like about Rouleth. It's an entertaining diversion when I'm in the mood to test my luck, and I can see dedicated gamblers spending a lot of money on this site. I do wish the maximum bet was a little higher, and sometimes spins can feel slow if the Ethereum network is particularly busy. It's also too bad the chat can't be used without a moderator online. But those are minor quibbles.
With MetaMask such a snap to setup and use, online gambling has never been simpler. So load up your wallets and give the wheel a spin today! Just be careful not to get addicted and gamble away more than you can afford to spend, a real danger considering how easy it is to keep on compulsively clicking that mouse...
Links for more info
In case you missed it, here's my previous post introducing the basics of Ethereum:
Install MetaMask from this web site: https://metamask.io/
Play Rouleth here: http://www.rouleth.com/
Join the Rouleth community on Slack: https://dxgames-slack-invite.herokuapp.com/
A video introduction to Rouleth by the game's creator
For more posts about cryptocurrency, finance, travels in Japan, and my journey to escape corporate slavery, please follow me: @cryptomancer
Image credits: all images in this post are screen shots taken on my desktop PC.
Disclaimer: you should not play Rouleth if you are under 18 or if doing so would in any way violate the laws of your local jurisdiction. US residents are blocked from playing due to regulatory restrictions on online gambling. Do not bet Ether that you cannot afford to lose.
Achievement badges courtesy of @elyaque . Want your own? Check out his blog.