Best 11 Bitcoin and Crypto Trading Platforms in 2019

Best 11 Bitcoin and Crypto Trading Platforms in 2019
You may also like:

Since they were launched, cryptocurrencies started changing the digital economy and are gradually being introduced into the real world. Thus, the amount of platforms allowing to trade Bitcoin and other cryptocurrencies is growing at a high rate.

Despite a large number of trading websites and apps, it’s hard to make a choice – not all of them are equally suitable for your needs and requirements. With this ultimate guide, you’ll get an insight into the worthiest crypto trading platforms, their features, and strong sides.

Before we plunge into reviews, let’s figure out what makes a decent trading platform.

Mission-critical points to consider

  • The level of safety and security. Luckily, the majority of BTC exchanges ensure tight security of their products, so you don’t have to worry. What makes a trading platform safe? First, use of SSL certificate (you’ll see the HTTPS in the website’s URL) prevents leaking of users’ personal data. Secondly, secure platforms feature 2-step authentication to cut access for anyone else except the user. Thirdly, look at overall reputation and read reviews – if an exchange has been hacked at least twice, it’s not worth your trust.

  • The liquidity of coins exchanged. A trading platform with high trading volumes will also have high liquidity of assets. High liquidity is a sign of a good platform.

  • The number of trading pairs accessible for users. Of course, trading of such pairs as BTC/ETH, BTC/USD, ETH/LTC is essential, but what about rare cryptocurrencies? Before you rush to register on a platform, make sure it supports the trading pairs you’re interested in.

  • Trading commissions. They ought to be as low as possible, but don’t believe the first numbers you see – read the fine print and terms attentively to understand the rate of fees and conditions where they apply.

  • Available payment options. Choose a platform that offers several payment alternatives that are available in your region and stay moderate. Credit/debit cards and wire transfers are traditional methods that come by default, but some users prefer digital payment systems (PayPal, WebMoney, and so on).

  • Customer support quality and reply time. In case of urgent issues, you need your questions to be answered immediately. No one wants to wait for days or weeks to have their problems solved. Thus, you should do research to find out how responsive and user-friendly the customer support service is.

  • The last but not the least is the website interface. It should be intuitive and convenient for you to abstain from committing serious errors by navigating through the wrong pages – it can cost you not only time.

All things considered, now we’ll review in detail BTC and cryptocurrency platforms to exchange digital forms of money.

👉MUST READ Bitcoin Profit Review: Too Good to Be True
Bitcoin Profit Review: Too Good to Be True

1. Coinbase

Coinbase interface

Coinbase is one of the biggest Bitcoin exchanges and as of now is positioned as one of the most reliable Bitcoin merchants around the globe. It was established in 2012 and has since been setting the standard of crypto exchanges by providing innovative security features, new exchanging pairs, payment methods, and many more perks for users.

Right now, Coinbase is running an asset base worth $100 million raised from numerous trusted contributors from different countries. Also, the platform is supported by financial insurance coverage, so if customers become victims of a hacking, they will be fully or partially compensated.

You can send your fiat money (USD, EUR, GBP and so forth) to Coinbase and effectively store your cryptographic forms of money that you can later withdraw in a Ledger Nano S or Trezor-like gadget.

Coinbase is also helpful in light of the fact that it enables you to purchase digital currencies by means of credit/charge cards. The procedure is fast and takes a few steps only.

The main reasons to become a Coinbase user are:

  • Coinbase enables clients to purchase the six best cryptocurrencies.

  • “Instant Exchange" alternative option allows clients to enjoy quick exchanges.

  • Clients use their free online wallet when exchanging on the platform.

  • All the clients’ funds exchanged on the platform are covered by insurance, protecting them against loss in case of technical failures or hacking.

The only thing you should take into account is the fact that Coinbase isn’t suitable for beginners – it should rather be used by experienced users.



  1. High liquidity

  2. Optimal limits

  3. Instant purchase option

  1. Transactions with bank transfer take up to five days to be processed.

  2. Coinbase tracks where you spend your crypto and blocks some users from purchases in the darknet.

2. Coinmama

Coinmama interface

Coinmama is another well-known digital platform for exchanging BTC and different coins. Every day, over 200,000 operations are performed on this website. Coinmama is great for purchasing all popular basic altcoins and BTC. Clients can buy crypto utilizing debit and cards. However, Coinmama doesn't offer the alternative to sell your coins like that.

Anyway, the platform is operating in more than 226 countries and is available in half of the US states. As for their exchanging commission, they charge a 5.5% fee for each purchase, with Visa cards requiring an extra 5%. As indicated by Coinmama, most banks and credit organizations consider acquiring Bitcoins as a loan, which results in higher exchange expenses.

Also, Coinmama has exchange limits depending on account verification. The more personal info is provided by a client, the higher is the transaction limit. The lowest exchanging limit every day is $10,000 – quite a lot, isn’t it? After you provide all confirmation subtleties, the platform will erase all daily trade limits.

So, why you should consider Coinmama?

  • The platform displays live pricing of coins in both USD and Euro.

  • Coinmama supports different languages to remain convenient for clients from various areas over the world.

  • Purchase of Bitcoins is available.

  • Selling its own assets, Coinmama removes middlemen, which excludes the risk of asset overpricing.

  • Over 200 crypto coins are supported.



  1. Available in many countries

  2. Trusted and reliable platform

  3. High limits for BTC operation with bank cards

  1. Very high fees compared to counterparts

3. Kraken

Kraken requires some basic experience to be used efficiently

Launched in 2013, this is one of the largest BTC trading platforms. It offers reliable and useful trading tools for users and totally complies with the guidelines set by the SEC. At present, it offers 15 trading pairs.

👉MUST READ Redditor Claims Kraken Has Closed His $312,000 Account. Potential Smear Campaign?
Redditor Claims Kraken Has Closed His $312,000 Account. Potential Smear Campaign?

Kraken has established the image of a reliable platform. Truth be told, after the Mt. Gox hack, the organization was picked as the only trustee of the remaining assets from the notorious website. One of the main reasons to choose this platform is low commissions: maker and taker fees range from 0% to 0.26% – way lower than Coinmama! There’s also BTC pricing to Bloomberg terminal.

Consider Kraken thanks to the following facts:

  • Kraken supports trading of USD, Euro, and a few other fiats.

  • Customer support is provided around the clock.

  • Kraken offers 15 diverse crypto pairs.

  • Numerous trading tools and functions are provided.

  • Trading fees are more than reasonable.



  1. High liquidity

  2. Supports all basic crypto assets

  3. Great for seasoned traders

  1. Slow processing time

  2. Arbitrary closing of accounts

4. Luno

Luno trading platform

Luno is a platform that enables clients to exchange Ethereum and Bitcoin with other fiat monetary forms. Right now, the exchange has restricted its activities to Europe, Indonesia, and a few African countries.  

Luno offers various payment methods including credit/debit cards, EFT, GT, GIRO, bank transfers, and a few more options. It boasts a moderate exchange fee of 0.25%, yet it might change depending on the trading pair.  

Luno has restrictions of the daily trading sum; the limit also depends on the amount of personal data provided by users. A fully verified account has an exchanging threshold of $100,000 every month or its crypto equivalent.  

Additionally, there’s a mobile app for Android and iOS to trade crypto on the go.

Why use Luno?

  • It offers simple methods to exchange fiat monetary forms for BTC and different cryptographic forms of money.

  • Luno permits payments with fiat.

  • It supports bank transfers and cards, which makes it very convenient for users from all over the world.

  • Low commission.



  1. Reliable and trusted exchange

  2. Free deposit and optimal withdrawal fees

  1. Not the best BTC wallet for storage

5. Bittrex

This platform boasts a huge amount of users with regards to exchanging Bitcoins. Bittrex is highly popular thanks to its intuitive navigation and easy-to-understand interface.

Bittrex enables clients to exchange more than 190 coins through various pairs. This US-based website is one of few crypto organizations staying under the strict control of the official regulators, which adds security. It abides by laws and regulations to ensure the security of their clients.

Bittrex has a clear sign-up procedure requiring your email address and a solid password. In order to withdraw money, you’ll need to verify your identity using an ID card/passport, utility bill, and your phone.  

👉MUST READ No, Bittrex Wasn’t Hacked. Here’s What Happened
No, Bittrex Wasn’t Hacked. Here’s What Happened

Extra verification will increase the daily exchange limit. Besides, you’ll be able to set up 2-factor authentication.

Bittrex has the following outstanding features:

  • Users can purchase or sell more than 190 crypto coins.

  • Bittrex utilizes many security features including the two-factor confirmation and encryption of user information.

  • Works around the world.

  • It has an amazingly easy-to-understand interface convenient for both novices and advanced users.



  1. Allows trading 190+ coins

  2. Intuitive UI

  3. Abides by laws

  1. Much personal information is required to remove exchange limits.

  2. It’s a crypto-to-crypto exchange only, which implies you cannot make any installments or exchange fiat.

6. Bitfinex

Bitfinex is one of the most well-established players in the sphere of crypto exchanges for novices. It is very similar to Bittrex, however, it allows users to deal with fiats like USD, EUR, and GBP. Bitfinex boasts gigantic turnover volume, so liquidity is never an issue while purchasing or selling on this platform as it generally positions among the Top-10 on CMC.

Bitfinex platform’s UI is not cluttered and provides clear guidelines on each page, showing how to sell and purchase currencies without a hitch.

Likewise, to begin on Bitfinex, you have to register, confirm your ID, and validate your profile. It regularly takes 15-20 business days after submitting your ID to become a regular platform user. By the way, if you prefer trading on the go, Bitfinex offers mobile applications with exactly the same functionality.

Why consider Bitfinex? Aside from having a brilliant user interface, it charges from 0.1% to 0.8%.

Bitfinex crypto exchange platform

Bitfinex works around the world with the exception of a few countries and the US.



  1. Allows working with both crypto and fiat

  2. High liquidity

  3. Intuitive, clear UI

  4. Mobile app

  1. Too much time is required for account verification

  2. Has a history of hacking

7. is intuitive and easy in use is a popular trading platform that enable clients to purchase and sell BTC and different coins. It allows for transactions with bank exchanges and bank cards. additionally enables its clients to exchange Bitcoin for 4 fiat currencies (USD, GBP, EUR, and RUB). The platform boasts low commissions, a relatively high exchange speed, and quick access to the most popular trading pairs, such as ETH/BTC.

This exchanging apparatus gives low spreads, quicker exchange speeds, and fast access to liquid crypto pairs, such as ETH/BTC. It can be done through the web-based interface or by using a mobile app. fees are very moderate, and depend on which role you take – maker or taker. Fees range between 0%-0.20%. Moreover, traders working with higher volumes are charged lower transaction fees.

Here’s why you should consider

  • ensures higher liquidity through its order book, which provides them with access to the liquid assets.

  • The website has strict security control and provides 2-step authentication.

  • charges very low fees.

  • The platform allows for exchanging both fiat and digital forms of money – it’s convenient for all users.

  • boasts decent customer support and keeps your investments safe.



  1. Works with both fiat and cryptocurrency

  2. Reliable and trustworthy platform

  3. Low transaction fees

  1. Bank withdrawals can be expensive.

  2. BTC money transfers are a bit complicated.

👉MUST READ Best Cryptocurrency Trading Apps for iOS and Android in 2019?
Best Cryptocurrency Trading Apps for iOS and Android in 2019?

8. Binance

Binance is the world's largest trading platform that combines a large set of instruments, including exchange and wallet. Besides, you can benefit from Binance Labs and Charity information. Binance also possesses its proprietary coin called BNB that’s used to perform crypto-to-crypto payments. Binance supports 130+ different coins, so it’s a great place for buying crypto.

Yet, two versions of Binance are very different: the one for beginners with basic features is very convenient. The advanced version is harder to comprehend. Binance has about 0.05-0.1% fees, which is great. Most assets have deep markets, making Binance great for both beginner and experienced traders.

Another thing making Binance highly convenient is multiple languages – that’s why it attracts users from all over the world. There’s a mobile app for different OS, as well.



  1. Low transaction fees

  2. Convenient basic version

  1. No exchange with fiat

9. Bitpanda

Bitpanda is one of Europe's favorite Bitcoin exchange websites – actually, some crypto users even call it "Europe's Coinbase". Surprisingly, it’s an Australian-based project that provides users with convenient trading tools.

At the moment, it supports 16 cryptographic forms of money.

Customers can also use 4 fiats to buy coins on the platform including EUR, GBP, CHF, and USD. Three years ago, it was rewarded for being the highest trading fintech startup that’s set to accelerate implementation of cryptocurrency in Europe.

Why consider Bitpanda?

  • To every new user, Bitpanda provides a free wallet to store their assets for trading.

  • It’s one of the rare platforms that offer 24/7 client support for every customer.

  • Use of fiat currencies is allowed.

  • Bitpanda operates several types of payment including bank exchanges, Visa and Mastercard, cash, SOFORT, Skrill, and Neteller.



  1. Clean, intuitive interface

  2. Numerous payments methods

  3. No major hacks happened recently

  1. Fees aren’t disclosed (about 2%)

  2. A few altcoins available

10. KuCoin

KuCoin is a great cryptocurrency exchange platform that has received a lot of props and acclaim during the last half of a year. It’s not surprising considering the team developing the project and a convenient, intuitive user interface. By the way, the platform was founded in 2011 and has gained good reputation throughout these years.

As for liquidity and trading volume, KuCoin ranks among the best 25 exchanges on CMC and keeps including new coins/tokens in their set of available tokens. The platform is praised for its heavy focus on security as well.

From the investment perspective, KuCoin's native token (KuCoin Shares) would be great for holding because it provides some passive income in exchange fees (holders get a 1% discount for every 1000 KCS sold). One remarkable thing that many novices miss is that KuCoin is one of the rare exchanges that pays you NeoGAS for keeping NEO on it. Fees are moderate.



  1. Low fees

  2. Passive income for native coin holders

  3. Safe and reliable

  1. No fiat is supported

  2. The website can be slow during traffic peaks

  3. No mobile app

👉MUST READ Top 7 Best Bitcoin Trading Bots in 2019
Top 7 Best Bitcoin Trading Bots in 2019

11. Huobi

This is one of the rare crypto exchanges that still haven’t established their presence in the United States. This trading project was born in China and supports around 250 digital currencies. Huobi has 2 unique versions: Huobi OTC (allows exchanging of crypto with fiat monetary forms at zero charge) and Huobi Pro (leverages additional exchanging capacities). Huobi is also planning to launch a crypto exchange fund (ETF) to be called HB10.



  1. Wide choice of cryptocurrencies

  2. Around-the-clock customer support

  3. Moderate fees

  1. Has falsified trading volumes

  2. Mostly suitable for South-Asian audience

As you see, there’s an endless choice of BTC and crypto trade/exchange websites and apps. However, they support different currencies and have different features, so it’s crucial to pick an option that meets your personal requirements. Hopefully, this guide has given you a clearer picture of the top trading platforms. Now that you know their strong and weak sides, making a decision will be much simpler.

Please note one thing: these platforms should rather be used for active trading and exchanges. If you opt for a long-term crypto storage solution, check out our list of BTC wallets.

Trade carefully, and good luck!

Cover image via
In this Telegram channel you’ll find fresh news, interviews, infographics, forecasts & other helpful stuff. Join U.Today's channel.
👓 Recommended articles

How to Learn Solidity and Start Blockchain Programming

  • Eric Croix
    📚 WikiCoin

    If making an Ethereum-based dApp or creating an ERC20 standard token sounds compelling to you, than you need to learn the language called Solidity. In our tutorial we provide you with the foundation of coding smart contracts

How to Learn Solidity and Start Blockchain Programming
You may also like:

Blockchain programming has become one of the best paying and challenging software spheres during the recent decade. Although blockchains are language-agnostic and many of the existing languages, like C++ and JavaScript (JS), are used by blockchain engineers, there are some tasks that couldn’t be conveniently realized by existing languages, which opened up the demand for new, crypto-specific options. One such language is Solidity.

Solidity was born as a core part of the Ethereum ecosystem. It absorbed C++, JavaScript, and Python. It has many contemporary features like libraries and inheritance. Solidity is designed to write programs that interact with Ethereum accounts, which are called smart contracts. Smart contracts are executed on Ethereum Virtual Machine (EVM), enabling users utilizing them perform tasks like crowdfunding, blind auctions, voting, and many others in a decentralized manner. The most famous killer-app of smart contracts was decentralized funding in ICOs, which started the bull rally on the crypto markets in 2017.

👉MUST READ No Dice: Ethereum Loses dApps Race to EOS and Tron
No Dice: Ethereum Loses dApps Race to EOS and Tron

Whether you are an experienced developer or just starting out in crypto, it’s a good idea to start learning Solidity because smart contracts have become a crucial part of the blockchain ecosystem. Aside from being actively implemented by dApps, they are being actively integrated into infrastructure-layer blockchains and even in Bitcoin via providers like RSK. By knowing how to build smart contracts you will make your blockchain career more sustainable and be able to produce better quality solutions. Let’s not pull it off any longer and get our hands dirty with coding!

Understanding the basics of a smart contract

A smart contract account consists of three sections: balance, storage, and code. The balance represents how much Ethereum a smart contract has. Storage holds data like strings and arrays that are specific to an application. The code section has the raw machine code that is compiled from what we write in Solidity.

Unlike user accounts, smart contract accounts are not external to the respective networks. In other words, you can use your wallet with various networks like Kovan and Ropsten, but you can’t do this with a smart contract. Smart contracts are internal.

Each smart contract has a source, which is stored on an author’s device and instances, which are stored on the blockchain. In order to create an instance (account) of a smart contract, we need to deploy it to the network. It very much resembles the relationship between classes and instances in traditional object-oriented programming (OOP) and languages representing it (JS, Ruby). To give you a more visual representation, let’s create a class ‘Bike’ and add an instance of it.

Bike class & instance

Bike class & instance

Source: Image by U.Today

What we will be writing is a contract definition, which will then run through a compiler that will produce two files: bytecode and application binary interface (ABI). Bytecode is what will be actually fed to the EVM and ABI is a layer between bytecode and regular JavaScript code that allows building a user interface (UI).

👉MUST READ Blockchain Programming: How Many Programming Languages Do You Need for Blockchain?
Blockchain Programming: How Many Programming Languages Do You Need for Blockchain?

Choosing an IDE & version of Solidity

Before we start, we need a proper integrated development environment (IDE). In other terms, we need a convenient terminal with the necessary tools to write our code in. For the purposes of this tutorial, we will pick Remix, an IDE created by the Ethereum foundation that allows writing, testing, debugging, launching smart contracts and many more. You can use it either straight in the browser or download it locally if you would like.

Once you launch Remix, you will be presented with the code editor in the center, the file manager on the left, and a compiler on the right.

Initial Remix window

Initial Remix window

Source: Image by U.Today

There will be some pre-written code – we won’t need that. To create out first-ever smart contract let’s press on the little plus icon in the top-left corner of the terminal and give it a name.

Creating a new project in Remix

Creating a new project in Remix

Source: Image by U.Today

As we have the blank .sol document now, we should specify the version of Solidity that the compiler will run. At the time of this tutorial, the latest version is 0.5.7. If you are not sure which version to use, you can specify a range of versions.

2 types of specifying the version of Solidity

2 types of specifying the version of Solidity

Source: Image by U.Today

Lastly, let’s give our smart contract a name, followed by a parenthesis.

Smart contract naming

Smart contract naming

Source: Image by U.Today

Writing your first smart contract

Once we have our canvas ready, it’s time to define the basic building blocks – variables. While experienced software engineers will have no issues understanding this concept, we will briefly introduce it to beginners. Variables are placeholders for chunks of information that are later referenced by a program that runs them.

👉MUST READ Blockchain Developer Salaries. Top Job Offers of Blockchain Companies
Blockchain Developer Salaries. Top Job Offers of Blockchain Companies

Let’s create a couple of variables: a string (a sequence of symbols) and an integer (a number). In Ethereum’s case, variables are stored in the blockchain along with the rest of parts of contracts and can, therefore, be accessed and updated from anywhere. Another key characteristic of Solidity variables is that you can make them private by writing ‘private’ next to the variables. Finally, for the integers, Solidity has two types: signed (can be positive & negative) and unsigned (can only be positive). To specify an unsigned variable, we should just put ‘u’ before it.

A private string and an integer

A private string and an integer

Source: Image by U.Today

Once we have the ‘name’ variable, we need to write out the methods of setting and getting it. This looks like a JS function. Remember that Solidity is statically typed, so we have to define variable types. Now any value we put in the ‘setName’ will define the ‘name’ string. For the getter, we will use ‘getName’ and specify what variable we expect to see. Now, it’s time to do the same for the ‘age’ variable. The method is constructed similarly to the ‘getName’.

Name/age setters and getters

Name/age setters and getters

Source: Image by U.Today

Let’s test our little chunk of code. Go to the ‘Run’ tab of the compiler and press ‘Deploy’ under your contract’s name. At the very bottom of the compiler, you will now see the ‘Deployed Contracts’ section that has our methods available. In order to pass a name to the ‘newName’ value, we need to make sure that our string is written in JSON, otherwise, the ‘getName’ will return nothing. For the ‘setAge’ just put your age without quotes. As you see, we can now set and receive the ‘name’ and the ‘age’ variables through our smart contract.

Compiler, with a name and an age

Compiler, with a name and an age

Source: Image by U.Today

Defining Wei and Gas

One of the most remarkable features of smart contrasts is that to deploy them to the Ethereum network you will need to initiate a transaction, which costs some amount of money that is paid in Ether. It’s crucial to understand how the fees are utilized in the system, as they will be deducted each time you interact with EVM.

What’s Wei?

Let us assume that reading this far into our tutorial you have used Bitcoin at least once. You probably made a small transaction that was way less than 1 BTC. In that case, you used Satoshis, which are something like pennies for a dollar. Wei is like a Satoshi – it’s the smallest part of 1 Ether. If we think of it in programming terms, it’s the lowest unsigned integer in the network. While interacting with the network, you will mostly encounter Gwei, which refers to Gigawei and equals 1 billion Wei.

👉MUST READ Vitalik Buterin Suggests Wallet Users Should Pay Higher Fees to Fund Devs
Vitalik Buterin Suggests Wallet Users Should Pay Higher Fees to Fund Devs

What’s Gas?

Gas is an essential part of the mechanism of smart contract execution. It has two values for each transaction: Gas consumed and its price. It’s worth mentioning that a user initiating a transaction defines these values. However, if the set value of Gas won’t be enough to process a specific operation, then the Gas will be consumed, but the transaction will fail. Moreover, if the price for Gas will be set too low for the network at a given time, the transaction will not be processed by the nodes, eventually making it unsuccessful. There are several services to check optimal values for your transactions, one of them being To get a better understanding of Gas and why it costs any money, let’s code some of it by ourselves.

Get back to your Remix window and initiate a new file. In our example, we will call it ‘Gas’ and create a contract with the same name. Bear in mind that the more data we will require to store on the blockchain, the more Gas we will need. That being said, for the purpose of this tutorial we will create a cheap contract; the more you will add to it, the higher the fee will be.

There will be a function that returns an integer that is a sum of two inputs. To make it as lightweight as possible, we will specify that our contract will store nothing on the blockchain, and for that we will put ‘pure’ next to the function.

Cheap contract

Cheap contract

Source: Image by U.Today

Now you can deploy it in the compiler and input any two numbers to get the integer ‘c’. To check the price of our transaction we should take a look at the terminal located beneath the code section. There is a transaction cost and an execution cost. The first one refers to how much data a transaction has. The second one refers to how much of EVM’s power was required by the transaction.

Cheap contract’s cost

Cheap contract’s cost

Source: Image by U.Today

This is an extremely basic transaction that costs almost nothing for the network. In writing meaningful smart contracts you will add more details, which will increase their weight and therefore transaction fees.  

Creating & deploying your own ERC20 token

Let’s face it, the majority of the blockchain developers that are just starting out are eager to play big and create their own blockchains and tokens. While this is an extremely difficult topic that attracted some of the best software engineers from other spheres, building a basic ERC20 token isn’t rocket science.

First, we need to create another file in Remix and uploading the ERC20 interface, which is the following:

ERC20 standard

ERC20 standard

Source: Image by U.Today

The ‘totalSupply’ function lets us see how many tokens we have in total. The ‘balanceOf’ function is used to get amounts of tokens on specific addresses. The ‘transfer’ function allows users performing transactions between each other. The ‘transferFrom’, ‘allowance’ and ‘approve’ functions are there to allow people to let some other users initiate transactions on their behalf. Events are the logging tools for the ledger.

In addition to the interface itself, we will need a separate .sol file for our new token. Here we will import the ERC20 interface and specify our token’s symbol, name, and decimals.

uToday token

uToday token

Source: Image by U.Today

Before we compile it, we need to specify constraints.

  • Let’s start with the total supply – it’s a constant integer variable that we will make private. The total supply of our tokens will be 1 million, we also write a function to return this value.

  • Second, we need to store our token somewhere. For this, we will need to outline the mapping that will return a balance for any address specified.

  • Third, there should be a function for token transfers, which will essentially have an address of a receiver and an amount of token transferred. This function should also be able to check whether or not a sender has enough tokens on their balance, which can be realized through a simple if/then statement. In addition, we will set conditionals for ‘_value’ in a way that blocks users from sending transactions with 0 tokens as this would only flood the network with junk.

  • Fourth, we should create the mapping for the remainder functions, which is a mapping of mapping to an integer.

  • Then we will specify a few checkers in the ‘approve’ and ‘allowance’ functions and put conditions for the ‘transferFrom’.

  • Finally, not all the tokens will be available on the market. Some of the tokens are usually left out for teams, foundations, advisors and other purposes. Hence, it’s essential that we make it clear how many tokens will be circulating. As we created the tokens, the circulating supply equals our balance.

uToday token constraints

uToday token constraints

Source: Image by U.Today

The code is ready, so let’s test it. Proceed to the ‘Run’ tab of the compiler and deploy our token contract. You will see that we have our token data along with the total supply, balances, and allowances. Congratulations, you deserve a pat on the back!

To make our token actually function on the network, we need to deploy the smart contract (note that this is different from deploying it for testing in Remix). For the sake of this tutorial, we will use Remix and Metamask, but there other ways of doing so. Metamask is a simple but efficient Ethereum wallet program with a nice UI that integrates as an extension to some of the most popular browsers. In our case, we will use Opera. Firstly, go to and download the extension. Once it’s done, you will see a fox icon in the top right of your browser.

Downloading Metamask & location of the icon

Downloading Metamask & location of the icon

Source: Image by U.Today

Press on the icon and proceed through the offered instructions to create a wallet. Do not forget to store the secret phrase! When you have your wallet, press on the Metamask icon and change the network to ‘Ropsten’ because we don’t want to mess with Ethereum’s mainnet.

Changing Metamask to Ropsten

Changing Metamask to Ropsten

Source: Image by U.Today

The last step is to generate some Ether (unfortunately, you won’t be able to use these for any real purchases, but they are necessary for testing). Head over to and request 1 Ether.

Now you are all set. Return to your Remix window and change the environment to ‘Injected Web3’ in the compiler. Take a look at the account tab too – your address should be the same as that of what you generated with Metamask. Select the smart contract you want to deploy, which is your token contract and not the ERC20 interface and press on the respective button. A Metamask window will pop up with a transaction, its details, and options to interact with it. Submit the transaction, and our token will come into life.

Metamask popup

Metamask popup

Source: Image by U.Today

You can now play around with all the functions we specified earlier. Let’s look at our contract from another side to verify that it works properly. Like any other blockchain, Ethereum has multiple block explorers which serve the essential purpose of monitoring what’s happening on the network. In our case, we will stick to etherscan, though there is a handful of other great alternatives. Note that if you just go to etherscan, you will see the Main network. As we need to see the Ropsten network, you will need to put ‘ropsten.’ before the website’s address. Search for your address and you will see two transactions – one is for free Ether you received, and another is for deploying the contract.

User’s address in Etherscan

User’s address in Etherscan

Source: Image by U.Today

To find the address of your contract, press on the TxHash and navigate to the ‘To’ field. Here you can check your smart contract’s transactions, code, and events. At this point, we need to verify and publish our contract. Go to the ‘Code’ section and click on the ‘Verify and Publish’ link. Here you will need to again specify the name of your token, the version of the compiler (in our case the latest version of Solidity we used was 0.5.7, so we will stick to the related compiler version). Now you should copy the token’s smart contract code along with the ERC20 interface code from your Remix window to etherscan and press ‘Verify and Publish’ at the bottom of the screen.

Verifying the smart contract

Verifying the smart contract

Source: Image by U.Today

It’s time to go back to your contract’s address. The code in the ‘Code’ tab will now be verified. In addition, you will now have two more tabs: ‘Read contract’ & ‘Write contract’. In the reading section, we can check the functionality of our token. Input your (not the contract’s) address into ‘balanceOf’ field to see how many tokens you have; it should show 1 million that we hard coded as the total supply and gave it circulating to our wallet. That means that our token is now correctly working on the testnet.

Receiving the balance

Receiving the balance

Source: Image by U.Today


If you are looking to start a career in the crypto industry, you need to understand that despite its relative simplicity in basics, blockchain has incredible deepness to it. Since 2017 blockchains have evolved significantly and their use cases went beyond just financial transactions. With the advent of Ethereum, a whole new layer of networks appeared that hosts various dApps and blockchain-based solutions. The tool behind this evolution was a smart contract, and if you want to make your experience more valuable and future-proof, you should know how one works.

👉MUST READ Top 16 Ethereum Wallets 2019
Top 16 Ethereum Wallets 2019

While you can code smart contracts using other languages, Solidity is a better fit for such a purpose. Moreover, if you want to become an Ethereum developer, or create an ICO/ERC20 token for your project, this is your go-to choice. If you had some experience with C++ or JavaScript, coding on Solidity should be relatively easy. You will have to understand some differences between the client-server and decentralized models of launching software, though. Thanks to Ethereum Foundation and some third-party organizations, developers are presented with a set of convenient tools like Remix and Etherscan to code and deploy smart contracts.

We hope that our tutorial helped you with getting around the majority of Solidity’s concepts to be able to start your blockchain journey. Remember that you can always check with the latest documentation on Solidity. We wish you good luck and will be happy to use some of your dApps someday!

Cover image via
In this Telegram channel you’ll find fresh news, interviews, infographics, forecasts & other helpful stuff. Join U.Today's channel.
👓 Recommended articles