Over the past few weeks we’ve covered some of the basic aspects of blockchain technology. By now, you are hopefully eager to get started and become part of the blockchain community. The easiest way to do this is to get some cryptocurrency or tokens of your own. In this blog post we will step through how to purchase, transfer and store cryptocurrency and tokens.
Before diving into it, let’s go through a few definitions to avoid any confusion down the track.
- Blockchain: A computer protocol that allows a network of computers to share and maintain a digital information ledger. There are many different blockchains; the most famous of which are Bitcoin, Ethereum and Ripple. Each blockchain has its own protocol, network and user base.
- Cryptocurrency: The native currency of a blockchain. Cryptocurrencies are used to interact with the blockchain (either transferring cryptocurrency or interacting with an embedded smart contract) or as payment for real world goods and services.
- dApp (decentralized application): An application whose backend code is embedded into a blockchain in the form of a smart contract.
- Token: A digital asset native to a dApp. Tokens usually represent some form of value within the dApp, most commonly the right to interact with its smart contracts or share in its revenue.
- Coin: A common term for cryptocurrencies and tokens.
- Altcoin: Any coin that is not Bitcoin.
- Fiat: Regulated, centralized money like USD, Euro or AUD.
- Exchange: An online marketplace for buying and selling coins. Fiat exchanges allow you to trade between coins and fiat while coin exchanges only allow trading between different coins.
Lets have a look at how these terms fit together in the Ethereum blockchain:
Disclaimer. it is actually quite difficult to find consistent definitions for the blockchain terms above. There seems to be some inconsistency in how different communities use these terms and tokens are frequently referred to as cryptocurrency in many online forums. For the purposes of this blog, we will continue to use the above definitions.
There are 3 steps to purchasing your own coins.
- Purchase coins from an exchange
- Create a wallet to store your coins
- Transfer your coins from the exchange to your wallet
Purchasing coins from an exchange
Unless you’re planning to dedicate your computer to mining, there is only one way of getting your hands on some coins; you have to find someone who is willing to sell you their coins for fiat. Luckily for you, all you need in order to find someone to trade with is an internet connection. The vast majority of people purchase their coins through online exchanges. There are hundreds of exchanges around the world and they all have their pros and cons. Most people who want to purchase coins with fiat use domestic exchanges to avoid international transaction fees and long waits. A quick google search will tell you which exchanges accept your local currency. Alternatively, you could have a look through cryptocompare’s extensive list to find an exchange that suits your needs. If you are after Bitcoin, bitcoin.org also has an extensive list of recommended bitcoin exchanges on their webpage. If you are after a specific coin, Coinmarketcap allows you to check where each specific coin can be traded (just select the coin you want to buy and click "markets"). Most smaller coins are not traded on fiat exchanges so if you're after a smaller coin then your best bet is to purchase Bitcoin at a fiat exchange first then use a coin exchange to trade your way into the coin you're after.
There's a few key things to look for when you're selecting an exchange
- Safety: By far, the largest contributor to stolen coins over the past 6 years have been hacked exchanges. Because exchanges facilitate thousands of transactions every day they need to have automated solutions for moving coins around. As a result, exchanges are inherently less secure than your own private account which can be maintained completely offline if you so choose. My advice if you’re just starting out is to pick a large, reputable exchange with a proven track record.
- Market spread: There is no official exchange rate for cryptocurrencies. Instead, the purchase price is simply the lowest price anyone on your exchange is willing to sell for. As a result, there is always a spread between the buy and sell price of any given coin. The more users an exchange has and the more popular the coin is, the lower its spread. Picking an exchange with a large user base is therefore likely to give you a more fair price.
Note. if you're not familiar with the Arbitrage Flat Fish and other aquatic block characters in this post you may want to go back to Post 3 and familiarize yourself with the blockchain ecosystem.
- Fees: Trading fees, deposit fees and withdrawal fees can all eat into your starting capital. Transaction fees vary widely between exchanges and typically range from 0.25% to 3%.
Once you’ve picked an exchange you’ll likely have to go through a sign-up procedure including identity verification. Don’t worry, it’s usually just a matter of taking a few pictures of yourself holding up your driver’s licence/passport to comply with local anti-money laundering policies.
Cryptocurrencies are pseudo-anonymous. Every single transaction is logged in the blockchain and is publicly available. You will still have to pay your taxes...
If revealing your identity doesn’t sound appealing to you for one reason or another you basically have two options.
- Use an exchange based in a country with more relaxed anti-money laundering laws.
- Find someone who is willing to sell their coins for cash in hand using a service like localbitcoin. If you go for the second option, I recommend reading up on other people’s experience and doing some research before meeting up with anyone in person. This thread from bitcointalk.com has some excellent information.
After you’ve finished the registration process you’ll have to transfer some money into your new account. Most exchanges offer a variety of ways to do this including wire transfers, credit card purchases and PayPal. These methods typically have different deposit fees so make sure to read and understand your exchange’s fee system before making your first deposit.
Once your money is in your exchange account you’re ready to start trading. If you picked an exchange with a large spread, you need to make sure you know what a fair price is before you put in your order. Coindesk.com will give you reliable and real-time information on current average trading prices for Bitcoin and Ethereum. As stated previously, you can also use Coinmarketcap to check the going rate for each coin at different exchanges. Once you know what price you’re targeting you can place your first buy order.
Note. some exchanges have different fee structures for market “makers” and “takers”. A market maker in this context is an order that is not immediately matched (i.e. a buy order with a lower price than the lowest sell order). Market takers on the other hand are orders that match an existing order and are immediately executed. Fees are typically higher for market takers so take this into consideration when placing your order.
The vast majority of exchanges have percentage based trading fees as opposed to fixed fees. You can therefore start off slow and place a few smaller orders to get used to the system before placing your main order. Once your orders have been executed you’ll be able to see your coins in your exchange account.
Congratulations, you are now a cryptocurrency owner!
Create a wallet to store your coins
As discussed in Post 4, the way cryptocurrency is stored on a blockchain is that it is linked to a private key. Private keys are just long strings of letters and numbers that are generated in a random fashion. An example of a private key we just created for the Ethereum blockchain can be seen below.
This private key is all that is required to gain access to all the funds on this account. In fact, when people talk about blockchain "accounts", they are really just talking about private keys. If someone somehow managed to guess your private key, they would immediately get access to all your funds. No centralized authority exists whom you could complain to and since the blockchain is immutable, there would be no way for you to get your money back. This may sound unsafe until you realize how many different possible combinations of private keys there are. A private key can be represented by a 256 bit number (a binary string of 256 zeroes and ones). That means there are 2^256 or 10^77 possible combinations of private keys. This is a number so large that it is incomprehensible to human beings (the number of atoms in the observable universe is estimated to be ~10^80 - Universe Today).
Creating a new account on a blockchain is simply the exercise of randomly generating a valid private key. Let's step through an exercise so you can see what we mean. Let's create an account on the Ethereum Blockchain using MyEtherWallet.com.
- Go to MyEtherWallet.com
- Select "View Wallet Info" then select “Private Key” as your method of accessing your wallet
- Copy paste in the following address "bc07b514c6405bdbcb1475d33d4ba9a714e170c3332810f9a153b64cb12eb0a2"
- Hit “Unlock” - You should then see the following screen:
- You have just unlocked the account I created a few minutes ago! All you need to access an account is the private key. This is why it is essential to never give out your private key to anyone
- Lets do a quick experiment - Refresh your page then select “Private Key” again
- Copy paste in the following address "bc07b514c6405bdbcb1475d33d4ba9a714e170c3332810f9a153b64cb12eb0a2" but this time change a couple numbers
- Hit “Unlock” - If you did everything correctly, you should now have accessed a completely different wallet (if it didn't work, try changing a different set of numbers)
Congratulations, you have just “created” a brand new Ethereum private key. The reason for stepping through this exercise is to show you that in theory, you don't need a fancy computer program to generate a new private key. In fact, you could even “create” a new private key using only dice, pen and paper (Swanson Technologies). Creating a new private key or account is not like creating other accounts on the internet where your username and password are stored in a database somewhere. Instead, creating an account simply means being the first person on earth to come up with a specific private key. This private key is not stored anywhere on the blockchain. Until you make your first transfer, nobody will ever know you've just created a new private key. Although it is possible to create a new private key using only pen and paper, most people simply use the random number generator feature that comes with all standard wallets.
Another way to think about it is that you never really created a new account. Instead, you simply unlocked an already existing theoretical Ethereum account by being the first person in history to come up with that exact private key.
Wallets are simply software that allow you to easily check your funds, generate transactions, broadcast transactions and interact with smart contracts. Most wallets also include functions that allow you to encrypt your private key so that the only way to gain access to your account is through a combination of an encryption file and a password. There are also a variety of other ways to access your account without exposing your private key. This is why you had a number of options to access your wallet when you created your new account earlier. My recommendation is to use a Keystore File to access your account when you start off the upgrade to a hardware wallet when you have more money invested.
As discussed previously, keeping your coins in your exchange account for a long period of time is not a good idea. This is because exchanges manage thousands of transactions every day and therefore need to be able to achieve some level of automation. In order to achieve this automation, exchanges commonly keep private keys on their servers where they are vulnerable to hacking. Additionally, you don’t truly own your cryptocurrency while it is on your exchange account as you don’t have access to your private key. In other words, your ownership of your coins is reliant on your exchange allowing you access to them. This is completely contradictory to the fundamentals of cryptocurrency where you and only you can ever access your funds. We therefore highly recommended that you transfer your funds to a private wallet as soon as possible and only keep coins in your exchange account for trading.
There are several different types of wallets:
- Software wallets: Software wallets allow you to securely and randomly generate private keys and manage your funds through simple user interfaces. For Bitcoin, there are at least a dozen software wallets that all offer different levels of ease of access, functionality and security. Bitcoin.org maintains a good list of recommended wallets on their website. Ethereum is younger than Bitcoin and therefore has fewer options for software wallets. For now, the best option for Ethereum users is to use either the official Ethereum Client Wallet (see below) or Myetherwallet, an open source, simple, browser-based wallet. Note that Myetherwallet is sometimes classified as a web/online wallet however it does not store any information online and can be downloaded and run in offline mode quite easily.
- Client wallets: Client wallets are a subtype of software wallets that include downloading the entire blockchain to date (100GB+). Most blockchains have a native client wallet such as Bitcoin Core (previously known as BitcoinQT) and Ethereum Wallet (sometimes referred to as Mist although Mist is actually Ethereum’s native browser for dApps, one of which is the Ethereum Wallet). Some blockchains also have lightweight clients that doesn’t require downloading the entire blockchain. Electrum is an example of a lightweight client for Bitcoin.
- Mobile wallets: Software wallets that can be run on your mobile device. Your private key never leaves your device however these generally tend to be less safe than computer based software wallets as it is harder to protect your phone from hackers.
An important note on software wallets is that the wallets are only as safe as the computers that run them. It’s difficult but not impossible for a hacker to install malware on your computer that allows them to see your screen and track your keyboard input.
Please install malware detection and anti-virus software on your computer when dealing with cryptocurrencies... If you're not sure what to use, I recommend Avira and MalwareBytes but feel free to do your own research on this. Another highly recommended way of protecting against hacking is to encrypt your private key with a secure password. What this actually means is that your Private Key will be stored in a file on your computer, but in an encrypted way. The only way to decrypt it is by using your password. This way, hackers need to gain access to both your Keystore File and your password in order to access your account. Almost all software wallets allow you to do this and some, like Armory, allow you to employ additional layers of security such as multi-signature addresses.
- Online wallets: Online wallets are similar to exchanges in that they store your private keys online and allow you to access your funds from any device with an internet connection. Online wallets are among the easiest to use however they suffer from the same security concerns as exchanges and should therefore be avoided for storing larger amounts of cryptocurrency. Some online wallets have apps that allow you to access your funds via your phone.
- Hardware wallets: Hardware wallets are real-life devices that generate private keys offline on the device itself. They look like USB sticks and need to be plugged into your computer to generate transactions. Hardware wallets are immune to malware as the private key never leaves the device and can be secured further by adding a password to protect yourself from theft. Overall, hardware wallets are considered to be the safest option for storing large amounts of cryptocurrency. The two most common hardware wallets are Trezor and Ledger Wallets.
- Paper wallets: Paper wallets refer to private keys that are not stored digitally anywhere. Instead, all the details of the account are written or printed on a piece of paper and stored somewhere safe. Several websites exist that make it easier to generate and print a random string suitable for cryptocurrency storage. bitaddress.org allows you to generate random Bitcoin keys based on your mouse movement while Myetherwallet can be used to generate random Ethereum keys. If you don’t trust these sites, simply change a few characters or numbers manually after you finish generating your new key and you’ll have a new private key that has never existed in any way shape or form on any digital device. To make sure that everything worked and you have a valid address, send a tiny fraction of a coin to your new address first to check that everything works. You can check the funds on any Ethereum or Bitcoin address using Etherscan and Blockchain.info respectively.
Lets step through how to generate a new wallet using two different methods; myetherwallet for Ethereum and Electrum for Bitcoin.
Creating an Ethereum wallet using myetherwallet
Myetherwallet is a simple and safe wallet solution for Ethereum. If you've read through this tutorial from top to bottom you would have already had some experience with how to use Myetherwallet. Lets now step through how to generate a new private key using Myetherwallet:
First, navigate to myetherwallet.com
Note. myetherwallet is an open source html interface. Because it is open source, it is easy to clone. If you accidentally go to www.myetherwallet[dot]com[dot]co instead of www.myetherwallet[dot]com, you will end up on a fake website that steals your private key along with all your coins if you try to access your account. To avoid scamming websites like this, use bookmarks instead of clicking on links and always triple check that the domain name (.com) is the correct one.
Enter a strong password. This password will be used to encrypt your private key so you don’t have to enter your private key every time you want to access your account. Once you’ve entered your password you’ll see this screen:
Unless you're planning to use your un-encrypted private key to access your funds (we highly recommend not doing this), download you Keystore File now. Make sure you keep a backup of your Keystore File on a USB drive. If you lose the Keystore File or forget your password, you will not be able to access your coins. When you are ready, click "I understand. Continue":
This screen shows your new, randomly generated, private key. As long as you have your Keystore File and password, you don't have to memorize your private key. There is however an option to print out a physical version of your private key in case you lose either your Keystore File or password. This option is what's called a paper wallet which is basically just a fancy name for writing down your private and public keys. When you are ready, click "Save Your Address".
That's it! That is how easy it is to create a new blockchain address. You don’t have to put in your name, your email or any other identifiable information. The mechanism that keeps other people from accessing your funds isn’t an identification system but rather a mathematical firewall of improbability. To view the funds on your wallet, click “View Wallet Info” and access your account using either your keystore file and password or your private key.
Once you're inside your account you’ll be able to see your private and public keys, your account balance and your transaction history. Your public key (often referred to as your address) can be shared with anyone. This is what people will use when they want to send coins to you. It is also what you need for the next step of this tutorial.
Creating a Bitcoin wallet using Electrum
Electrum is a Bitcoin software wallet that can be installed on Windows, OSX or Linux. It can be downloaded free of charge from electrum.org. When you install Electrum you'll be asked a couple of questions:
This will create a seed for your new private key. A seed is a sequence of 12 words that can be used to access your wallet if you lose your password. Electrum requires you to re-enter your seed to make sure you wrote it down correctly:
Similar to myetherwallet, you'll also be required to enter a strong password. This password will be used to encrypt your private key for additional safety.
Once you've finished setting up your account Electrum will start up. Navigate to the "Receive" tab at the top of the wallet interface.
From here you'll be able to see your public key which is what people will use when they want to send coins to you. It is also what you need for the next step of this tutorial.
Transfer your coins from the exchange to your wallet
This step is fairly straight forward. All you have to do is follow all the instructions on your exchange carefully and make sure you put in the correct public key to send your coins to. Most exchanges use the term "withdrawal" for sending your coins from the exchange to your personal address. Some exchanges take up to a few hours to send your coins so don’t worry if you don’t see them in your account straight away. As always, it is best to send a small amount first so that you get comfortable with how to withdraw coins before withdrawing the full amount. After the exchange has sent your coins through you should be able to see them in your wallet.
Now that you know how to get started, we want to leave you with three pieces of essential advice that we tell any of our friends who are considering investing in cryptocurrency:
- Start off slow: No more than a few hundred dollars at most. This way you can learn the ropes and get comfortable with cryptocurrency before you start taking any serious risks.
- Never invest more than you can afford to lose: Seriously. Cryptocurrency is still in its relative infancy and despite what they might tell you, nobody knows where any given cryptocurrency will be in 3, 5 or 10 years from now.
- Be intensely paranoid about cyber security: There are thousands of hackers and scammers out there who would love nothing more than to get their hands on your unregulated, anonymous and immutable cryptocurrency. Please exercise utmost caution when dealing with cryptocurrency and protect your private key like your life depended on it.
We hope you've enjoyed this tutorial and that it has made the prospect of getting into cryptocurrency easier for you! Please don't hesitate to post any questions or clarifications on the comment board below if you have any. Our next post will explore the argument against blockchain. In this post we will take an objective look at several skeptical arguments for why blockchain will not be the transformative technology we think it will be. Hope to see you there!