If you deploy an ERC20 token to a public network that Etherscan supports, Etherscan doesn’t recognize it as an ERC20 token until there are Transfer events.
For example I deployed an ERC20 token using Remix (no tokens minted):
pragma solidity ^0.5.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v2.3.0/contracts/token/ERC20/ERC20Mintable.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v2.3.0/contracts/token/ERC20/ERC20Detailed.sol";
contract Token is ERC20Mintable, ERC20Detailed {
constructor () public ERC20Detailed("Token", "TKN", 18) {
}
}
Etherscan doesn’t recognize the contract as ERC20.
Change the URL from etherscan.io/address/
https://rinkeby.etherscan.io/address/0xb5be0fddbca0ea091ca27b3af36295e48c17144f
to etherscan.io/token/
https://rinkeby.etherscan.io/token/0xb5be0fddbca0ea091ca27b3af36295e48c17144f
Etherscan will then recognize the contract address as ERC20 and display the token name and symbol with a link to the token information.