Metamask: Upgrading the Web

Whoa! Do you see that?

The internet is upgrading.

Oh… Old Browser?

Most browsers today aren’t yet “future-proof” – they simple aren’t capable of natively interacting with the smart contracts that are the building blocks of web 3.0. There are some notable exceptions: Brave and MIST on desktop platforms and Toshi or CIPHER on mobile, for instance. Expect that list to keep growing, because the future is already here.

Of course, your current browser is probably set up just the way you like it. Switching browsers, for many people, is a big deal. I understand. Luckily, so do the folks over at MetaMask. They’ve developed a plugin that lets you use the browsers you’re already comfortable with – without having to forgo all of the Internet’s shiny new upgrades. They say it best, right there on their website:

MetaMask is a bridge that allows you to visit the distributed web of tomorrow in your browser today.

Their tech is so trailblazing that even most of the exceptions above – the browsers that can interact with web 3.0 right out of the box – do so simply by natively integrating MetaMask. In other words, whichever route you go – shiny new browsers or trusty old browser with the plugin – MetaMask is no doubt influencing your experience. Thank you, MetaMask team.

New Web. New Tricks.

Before we go over how to get started with MetaMask, you may want to hear a little more about what you’ll be able to do that you couldn’t do before. The short answer is that you’ll be able to conveniently use Ether to interact with cutting-edge websites. The long answer is… still evolving. The possibilities for specific applications are endless – but some examples include games, content tipping, paying for merchandise without any middlemen, or even securely voting within an online community.

Remember: MetaMask makes using Ether (ETH) intuitive, but you do need ETH to interact with distributed applications (dApps) built atop the Ethereum platform. Which is to say, you need ETH to use most of the currently available next-gen internet applications. [Getting ETH is easy on most exchanges.] If this sounds confusing – it’s not, once you get set up. Just take it one step at a time.

Installing MetaMask

Head on over to MetaMask.io. Always double-check the URL and security indicator in your address bar if you’re doing anything involving something of value. If everything checks out, go ahead and follow the link in the center of the page – it should take you where you need to go to install the extension.

If you’re using Chrome, you should see a page like the one below. Go ahead and click “+ ADD TO CHROME” then “Add extension” when prompted.

If all goes well, then MetaMask will be added to your browser and you’ll see its icon to the right of the address bar.

Before You Set Up MetaMask

Great. So, the MetaMask extension is installed. Easy, right? It’s almost ready to go – we just need to set it up. Go ahead and click the new MetaMask icon in your browser. You’ll be presented with their Privacy Notice.

You’ll need to click on “Accept” to continue. BUT WAIT JUST A SECOND.

It’s worth discussing what this notice is warning you about, because it’s not the standard “we will spy on you indefinitely and sell all your info into perpetuity” disclaimer.

First off, MetaMask is still bleeding edge, beta software. The browser you’re using now is informed by decades of iterations over all browsers that have ever existed (of which there were quite a few). MetaMask has no such luxury. The team is doing something new and in some cases they are trying to solve problems and deal with issues that have never existed before. (ie, Never before could you ‘accidentally’ click and instantaneously, irrecoverably send money.)

Please, do NOT keep large sums of Ether on your MetaMask wallet. This should be a place for your “spending money” – your “walking around money” – not your life savings. For that, please get a hardware wallet. You don’t want to accidentally click your life savings away… and you probably don’t want random websites knowing what your life savings amounts to, either.

That’s a real issue, by the way. MetaMask is going to generate you (or let you import) an Ethereum private key. That key is going to control a public address. [What’s an Address?] Whenever MetaMask is unlocked, that public address is going to be shared with every website you have open in your web browser. This might not be as elegant as it could be, but the MetaMask team is balancing ease of use with privacy (aren’t we all). For now, this is the way it is.

The current solution to mitigate the issue, is to do as they advise in their disclaimer. Log out of MetaMask if you’re not actively using it. Further, be aware of what tabs are open when you do unlock MetaMask. Lastly, know that even if MetaMask is locked, any website you visit will know that you have it installed. You can thank John Backus (@backus on Twitter) for educating me about that last issue – you can view his medium article on it here.

Whew. Ok. That was a lot to unpack, but please don’t hold it against the technology. Even in the worst case scenario – these new technologies are not as invasive or destructive as most of the big internet services you have come to rely on. At least MetaMask is honest, open, and working towards a better internet where you are in control of your data.

Now that you understand the disclaimer, continuing is a s simple as clicking “Accept”. At which point… you’ll see some legalese that exists, ostensibly, to protect MetaMask from going bankrupt if their software doesn’t perform ideally. Peruse this at your leisure and when you reach the bottom you can click “Accept” one more time.

Let’s get to the fun part…

Alright. Set it Up!

Now, you’ll be asked for a password to protect all of your MetaMask data. Remember, if someone gains access to your machine – this password will be the only thing between them and the money in your MetaMask wallet. In other words: this probably isn’t something to sticky-note to your monitor. Be safe.

After you input your highly memorable and secure password, go ahead and click “CREATE”. You’ll be presented with a list of twelve “seed” words that can be used to recover your wallet. You need to write these down. They are more important than your password. If you ever forget your password, but you have these words, then you will not lose any of your ETH.

I, personally, recommend that you carefully hand write these words and store them in a safe location – rather than save them as a file. The file is unencrypted and, consequently, very vulnerable by default. If you have a safe, or a safe deposit box, or both – then your hand written backup is a better option.

Never share these words with anyone. They are the equivalent of handing over your wallet. If someone asks you to provide these – they are trying to steal from you. Unless that “someone” is your partner, that’s probably not ok. Ask them for their seed words instead – and that usually ends the attempted theft.

After you’ve stored the words – go ahead and click “I’VE COPIED IT SOMEWHERE SAFE”. You’ll be promptly delivered to the main MetaMask interface. You’re all set up! Congrats.

Using Your MetaMask Wallet

Now that your wallet is set up, it needs some ETH to be really useful. I won’t cover how to buy ETH here, but I have covered it previously. If you have no ETH and try to actually use MetaMask to interact with the Ethereum network, then you’ll get a screen like the one below. Notice that they do provide a link to buy ETH from some common sources.

If you already have ETH – which I will assume is now the case – then you just need to send some from your other wallet to your MetaMask wallet. From the main screen of MetaMask, click the three dots in the top right. From there, you can select the option to “Copy Address to clipboard” – this is the MetaMask wallet address which you will send Ether TO. Remember to note the first few characters of the address on the main screen and compare it to the address you actually paste. Also, send a small transaction first to make sure everything goes as planned. Better safe than sorry.

Completing Transactions

Now, you have installed MetaMask. You’ve created your MetaMask wallet. You’ve sent some ETH to said wallet. The only thing left to do is use all of these to interact with the internet in some brand new ways. That’s exciting!

If you don’t know where to start, why not try Leeroy.io – it’s a Twitter clone that records all of your messages immutably on the Ethereum blockchain. I’ll illustrate setting up a username over there, just so you know what to expect anytime you actually use your new MetaMask wallet.

It Looks Like This

You open your browser, you navigate to Leeroy.io, and you type in a Username that strikes your fancy. Then you click “Sign Up” – and MetaMask jumps in. It’s icon in the upper right of your browser gets a little icon showing the number of transactions you need to deal with (1 here). MetaMask also generates a popup window to show you the details of your transaction and how much it will cost. If everything looks good, you can “SUBMIT” the transaction – otherwise “REJECT” it. Mostly self-explanatory.

Magic Behind The Scenes

You’ve made usernames and clicked “Sign Up” hundreds of times before, right?

Never like this. This is the best you’ve ever… uh… participated in.

When you clicked this sign up button, your request wasn’t just sent to a server operated by a corporate Behemoth to enroll you in some centralized service. It was sent to the Ethereum network – a distributed network of machines all over the world. You paid directly (a few pennies) for the cost of running that network. There are no ads, there is no corporation making deals for your data.

Your username is YOUR USERNAME – it’s not on loan from whomever is developing Leeroy. You don’t have to use it according to some fickle corporate terms of service or fear losing the name. Anyone in the world can verify that the address you control registered that Username. It’s yours as long as you control that wallet – how does that feel? That’s something brand new – and it might take you a minute to appreciate it.

When you post on Leeroy, MetaMask asks you to sign a transaction for each post. When you submit that transaction, what you post is stored on the blockchain. It can never be altered or deleted. Its contents are final. The time it was posted is indisputable. If the Leeroy website stops being maintained – the posts do not simply vanish. Anyone can build another website to display them.

Welcome to the future, today.