Create your own custom ERC-20 token in minutes!

In this activity, you will use Link to create your own custom ERC-20 token on Ethereum in just minutes!

For details on the ERC-20 standard, see

While this post will walk you through deploying your custom token on the Ethereum testnet called Ropsten, the same process applies to deploying on the Ethereum mainnet except that you will have to acquire real ether (ETH).


You will need to setup the following for this activity:

An account on Infura, which provides easy-to-use APIs to interact
with the Ethereum network without running your own Ethereum node.
Register for an API key at and then create a project. You will then be able to access URLs
containing your API key for the Ethereum Mainnet and all Testnets.

A MetaMask wallet, which will hold your custom ERC-20 tokens.
MetaMask is a Chrome extension which interfaces with the Ethereum
network from your browser. You can get the extension here:

Setup your Link account – register at

Seed your Link account wallet with test ETH from,
which will be used to pay for transactions on the Ropsten testnet. You
can find your Link account wallet address from the Ethereum Account menu
as shown:

Setup your custom ERC-20 token contract:

Create a New Project in Link, which starts up the new project wizard.

Create a new contract:

Copy the following ERC-20 token Solidity code template ( into the Source Code space.

Replace references of ANY with your desired 3 or 4
letter token symbol in the following part of the code. For this example,
we will call our token BML (for Blockmason Link).

//Change the contract name to your token name
contract ANYToken {

    // Name your custom token
    string public constant name = "ANY TOKEN";

    // Name your custom token symbol
    string public constant symbol = "ANY";

In the contract constructor, paste in the MetaMask wallet address that you want to store all your custom tokens:

constructor() public {

    // Add your wallet address here which will contain your total token supply
    treasury = address(<wallet address>);

Also in the contract constructor, enter in your desired total token supply (the default is 1000).

constructor() public {

    // Set your total token supply (default 1000)
    totalSupply = 1000 * 10**uint(decimals);

Press Save and Next, and use your newly created contract

Which Ethereum account would you like to use? Use the Default Account and press Next

Which network would you like to use? Create a new network called Ropsten. Keep the default 0 Block Confirmations Needed. Press Save and Next.

Which connector would you like to use? Here you will use
your Infura API key to connect with the Ropsten Network. From Infura,
copy and paste your endpoint URL, which contains the API key, for
Ropsten and then press Save and Next. Note, don’t forget the https:// at the beginning of the URL!


Where is your contract deployed? This will be a new contract deployment, not one with an existing address. You just need to give the deployment a name. Press Save and Next

Are you ready to perform the following deployment? Check that you are deploying the correct contract to the Ropsten network. Then press Deploy. This could take up to 30 seconds. Note – if you get an insufficient funds related error, ensure your Link account wallet has sufficient test ETH.

If you now see a screen asking you Which API would you like to use?, you have successfully deployed your contract!

Sidenote: This example goes through the
process of just deploying a contract but Link does so much more! In a
later post, we will go through the rest of the wizard to generate useful
APIs, allowing us to easily incorporate the custom ERC-20 token in any

Click on the Contract Deployments menu icon to see where your contract is deployed. In this example, the address is: 0x0219d37a27778f3344c9ec34fcfa1d767896f519. Copy this address.

Go to and paste your contract address into the search bar. You should then
see the details of your contract (i.e. the contract creation time and
token name). Clicking through to the token itself, you will see the
total supply amount and your single wallet holding the entire supply.

Finally, you will add your custom token to your MetaMask wallet.
Login to your wallet and to the address that will hold the entire
supply. Under the menu item, at the bottom, you should see Add Token:

Token Contract Address

Select Custom Token and copy and paste in your Token Contract Address. The ‘Symbol’ and ‘Decimals of Precision’ should automatically update.

Token Contract Address

Complete the setup and you now have your custom ERC-20 tokens in your
wallet that you can share! And feel free to send some of your exclusive
tokens to us at 0xaFf485B0dd5D2c2851EDf374D488379F75403662

ERC-20 tokens

If you want to deploy your custom token to the Ethereum Mainnet,
simply go through the Link new project wizard again and use the Mainnet
Infura API to deploy the smart contract. Remember – you will need to
fund your Link wallet with real ETH to cover the gas costs.

Throughout this example, we touched on Link concepts including
contract deployment, creating a custom ERC-20 token contract, and
utilizing the Ropsten testnet.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.