ERC-20
Source Code
Overview
Max Total Supply
269,487 ICOS
Holders
737 ( 0.271%)
Transfers
-
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
ICOSToken
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-09-28 */ /* * ICOS Token Smart Contract. Copyright © 2017 by ABDK Consulting. * Author: Mikhail Vladimirov <[email protected]> */ pragma solidity ^0.4.11; contract Token { /** * Get total number of tokens in circulation. * * @return total number of tokens in circulation */ function totalSupply () constant returns (uint256 supply); /** * Get number of tokens currently belonging to given owner. * * @param _owner address to get number of tokens currently belonging to the * owner of * @return number of tokens currently belonging to the owner of given address */ function balanceOf (address _owner) constant returns (uint256 balance); /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success); /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success); /** * Allow given spender to transfer given number of tokens from message sender. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _value number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _value) returns (bool success); /** * Tell how many tokens given spender is currently allowed to transfer from * given owner. * * @param _owner address to get number of tokens allowed to be transferred * from the owner of * @param _spender address to get number of tokens allowed to be transferred * by the owner of * @return number of tokens given spender is currently allowed to transfer * from given owner */ function allowance (address _owner, address _spender) constant returns (uint256 remaining); /** * Logged when tokens were transferred from one owner to another. * * @param _from address of the owner, tokens were transferred from * @param _to address of the owner, tokens were transferred to * @param _value number of tokens transferred */ event Transfer (address indexed _from, address indexed _to, uint256 _value); /** * Logged when owner approved his tokens to be transferred by some spender. * * @param _owner owner who approved his tokens to be transferred * @param _spender spender who were allowed to transfer the tokens belonging * to the owner * @param _value number of tokens belonging to the owner, approved to be * transferred by the spender */ event Approval ( address indexed _owner, address indexed _spender, uint256 _value); } /* * Safe Math Smart Contract. Copyright © 2016–2017 by ABDK Consulting. * Author: Mikhail Vladimirov <[email protected]> */ pragma solidity ^0.4.11; /** * Provides methods to safely add, subtract and multiply uint256 numbers. */ contract SafeMath { uint256 constant private MAX_UINT256 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; /** * Add two uint256 values, throw in case of overflow. * * @param x first value to add * @param y second value to add * @return x + y */ function safeAdd (uint256 x, uint256 y) constant internal returns (uint256 z) { if (x > MAX_UINT256 - y) throw; return x + y; } /** * Subtract one uint256 value from another, throw in case of underflow. * * @param x value to subtract from * @param y value to subtract * @return x - y */ function safeSub (uint256 x, uint256 y) constant internal returns (uint256 z) { if (x < y) throw; return x - y; } /** * Multiply two uint256 values, throw in case of overflow. * * @param x first value to multiply * @param y second value to multiply * @return x * y */ function safeMul (uint256 x, uint256 y) constant internal returns (uint256 z) { if (y == 0) return 0; // Prevent division by zero at the next line if (x > MAX_UINT256 / y) throw; return x * y; } } /** * Abstract Token Smart Contract that could be used as a base contract for * ERC-20 token contracts. */ contract AbstractToken is Token, SafeMath { /** * Create new Abstract Token contract. */ function AbstractToken () { // Do nothing } /** * Get number of tokens currently belonging to given owner. * * @param _owner address to get number of tokens currently belonging to the * owner of * @return number of tokens currently belonging to the owner of given address */ function balanceOf (address _owner) constant returns (uint256 balance) { return accounts [_owner]; } /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success) { if (accounts [msg.sender] < _value) return false; if (_value > 0 && msg.sender != _to) { accounts [msg.sender] = safeSub (accounts [msg.sender], _value); accounts [_to] = safeAdd (accounts [_to], _value); Transfer (msg.sender, _to, _value); } return true; } /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success) { if (allowances [_from][msg.sender] < _value) return false; if (accounts [_from] < _value) return false; allowances [_from][msg.sender] = safeSub (allowances [_from][msg.sender], _value); if (_value > 0 && _from != _to) { accounts [_from] = safeSub (accounts [_from], _value); accounts [_to] = safeAdd (accounts [_to], _value); Transfer (_from, _to, _value); } return true; } /** * Allow given spender to transfer given number of tokens from message sender. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _value number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _value) returns (bool success) { allowances [msg.sender][_spender] = _value; Approval (msg.sender, _spender, _value); return true; } /** * Tell how many tokens given spender is currently allowed to transfer from * given owner. * * @param _owner address to get number of tokens allowed to be transferred * from the owner of * @param _spender address to get number of tokens allowed to be transferred * by the owner of * @return number of tokens given spender is currently allowed to transfer * from given owner */ function allowance (address _owner, address _spender) constant returns (uint256 remaining) { return allowances [_owner][_spender]; } /** * Mapping from addresses of token holders to the numbers of tokens belonging * to these token holders. */ mapping (address => uint256) accounts; /** * Mapping from addresses of token holders to the mapping of addresses of * spenders to the allowances set by these token holders to these spenders. */ mapping (address => mapping (address => uint256)) private allowances; } contract ICOSToken is AbstractToken { /** * Address of the owner of this smart contract. */ address owner; /** * Total number of tokens ins circulation. */ uint256 tokensCount; /** * True if tokens transfers are currently frozen, false otherwise. */ bool frozen = false; /** * Create new ICOS Token Smart Contract, make message sender to be the owner * of smart contract, issue given number of tokens and give them to message * sender. * * @param _tokensCount number of tokens to issue and give to message sender */ function ICOSToken (uint256 _tokensCount) { tokensCount = _tokensCount; accounts [msg.sender] = _tokensCount; owner = msg.sender; } /** * Get name of this token. * * @return name of this token */ function name () constant returns (string name) { return "ICOS"; } /** * Get number of decimals for this token. * * @return number of decimals for this token */ function decimals () constant returns (uint8 decimals) { return 6; } /** * Get total number of tokens in circulation. * * @return total number of tokens in circulation */ function totalSupply () constant returns (uint256 supply) { return tokensCount; } /** * Transfer given number of tokens from message sender to given recipient. * * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer to the owner of given address * @return true if tokens were transferred successfully, false otherwise */ function transfer (address _to, uint256 _value) returns (bool success) { if (frozen) return false; else return AbstractToken.transfer (_to, _value); } /** * Transfer given number of tokens from given owner to given recipient. * * @param _from address to transfer tokens from the owner of * @param _to address to transfer tokens to the owner of * @param _value number of tokens to transfer from given owner to given * recipient * @return true if tokens were transferred successfully, false otherwise */ function transferFrom (address _from, address _to, uint256 _value) returns (bool success) { if (frozen) return false; else return AbstractToken.transferFrom (_from, _to, _value); } /** * Change how many tokens given spender is allowed to transfer from message * spender. In order to prevent double spending of allowance, this method * receives assumed current allowance value as an argument. If actual * allowance differs from an assumed one, this method just returns false. * * @param _spender address to allow the owner of to transfer tokens from * message sender * @param _currentValue assumed number of tokens currently allowed to be * transferred * @param _newValue number of tokens to allow to transfer * @return true if token transfer was successfully approved, false otherwise */ function approve (address _spender, uint256 _currentValue, uint256 _newValue) returns (bool success) { if (allowance (msg.sender, _spender) == _currentValue) return approve (_spender, _newValue); else return false; } /** * Burn given number of tokens belonging to message sender. * * @param _value number of tokens to burn * @return true on success, false on error */ function burnTokens (uint256 _value) returns (bool success) { if (_value > accounts [msg.sender]) return false; else if (_value > 0) { accounts [msg.sender] = safeSub (accounts [msg.sender], _value); tokensCount = safeSub (tokensCount, _value); return true; } else return true; } /** * Set new owner for the smart contract. * May only be called by smart contract owner. * * @param _newOwner address of new owner of the smart contract */ function setOwner (address _newOwner) { if (msg.sender != owner) throw; owner = _newOwner; } /** * Freeze token transfers. * May only be called by smart contract owner. */ function freezeTransfers () { if (msg.sender != owner) throw; if (!frozen) { frozen = true; Freeze (); } } /** * Unfreeze token transfers. * May only be called by smart contract owner. */ function unfreezeTransfers () { if (msg.sender != owner) throw; if (frozen) { frozen = false; Unfreeze (); } } /** * Logged when token transfers were frozen. */ event Freeze (); /** * Logged when token transfers were unfrozen. */ event Unfreeze (); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"freezeTransfers","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"name","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"decimals","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unfreezeTransfers","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_currentValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_tokensCount","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]Contract Creation Code
60606040526004805460ff19169055341561001657fe5b6040516020806109e883398101604052515b5b5b6003819055600160a060020a033316600081815260208190526040902082905560028054600160a060020a03191690911790555b505b6109798061006f6000396000f300606060405236156100c25763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100c457806306fdde03146100d6578063095ea7b31461016657806313af40351461019957806318160ddd146101b757806323b872dd146101d9578063313ce5671461021257806331c420d414610238578063426a84931461024a5780636d1b229d1461028057806370a08231146102a7578063a9059cbb146102d5578063dd62ed3e14610308575bfe5b34156100cc57fe5b6100d461033c565b005b34156100de57fe5b6100e661039e565b60408051602080825283518183015283519192839290830191850190808383821561012c575b80518252602083111561012c57601f19909201916020918201910161010c565b505050905090810190601f1680156101585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016e57fe5b610185600160a060020a03600435166024356103df565b604080519115158252519081900360200190f35b34156101a157fe5b6100d4600160a060020a036004351661044a565b005b34156101bf57fe5b6101c7610492565b60408051918252519081900360200190f35b34156101e157fe5b610185600160a060020a0360043581169060243516604435610499565b604080519115158252519081900360200190f35b341561021a57fe5b6102226104c5565b6040805160ff9092168252519081900360200190f35b341561024057fe5b6100d46104cb565b005b341561025257fe5b610185600160a060020a0360043516602435604435610529565b604080519115158252519081900360200190f35b341561028857fe5b61018560043561055d565b604080519115158252519081900360200190f35b34156102af57fe5b6101c7600160a060020a03600435166105ed565b60408051918252519081900360200190f35b34156102dd57fe5b610185600160a060020a036004351660243561060c565b604080519115158252519081900360200190f35b341561031057fe5b6101c7600160a060020a036004358116906024351661063a565b60408051918252519081900360200190f35b60025433600160a060020a039081169116146103585760006000fd5b60045460ff16151561039b576004805460ff191660011790556040517f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de90600090a15b5b565b6103a661093b565b5060408051808201909152600481527f49434f530000000000000000000000000000000000000000000000000000000060208201525b90565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60025433600160a060020a039081169116146104665760006000fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156104af575060006104bd565b6104ba848484610667565b90505b5b9392505050565b60065b90565b60025433600160a060020a039081169116146104e75760006000fd5b60045460ff161561039b576004805460ff191690556040517f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded90600090a15b5b565b600082610536338661063a565b141561054d576104ba84836103df565b90506104bd565b5060006104bd565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610585575060006105e6565b60008211156105e257600160a060020a0333166000908152602081905260409020546105b190836107fe565b600160a060020a0333166000908152602081905260409020556003546105d790836107fe565b6003555060016105e6565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60045460009060ff161561062257506000610444565b61062c8383610819565b9050610444565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a03808416600090815260016020908152604080832033909416835292905290812054829010156106a0575060006104bd565b600160a060020a038416600090815260208190526040902054829010156106c9575060006104bd565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546106fa90836107fe565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610746575082600160a060020a031684600160a060020a031614155b156107f357600160a060020a03841660009081526020819052604090205461076e90836107fe565b600160a060020a03808616600090815260208190526040808220939093559085168152205461079d908361091c565b600160a060020a038085166000818152602081815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5060015b9392505050565b60008183101561080e5760006000fd5b508082035b92915050565b600160a060020a0333166000908152602081905260408120548290101561084257506000610444565b600082118015610864575082600160a060020a031633600160a060020a031614155b1561091257600160a060020a03331660009081526020819052604090205461088c90836107fe565b600160a060020a0333811660009081526020819052604080822093909355908516815220546108bb908361091c565b600160a060020a03808516600081815260208181526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5060015b92915050565b600081600019038311156109305760006000fd5b508181015b92915050565b604080516020810190915260008152905600a165627a7a7230582002e17aeec54bbe6d83c363123e6f20d6582d5cd6bf867ed9c8fdcfc2abd9d8d1002900000000000000000000000000000000000000000000000000000089bf1f0240
Deployed Bytecode
0x606060405236156100c25763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100c457806306fdde03146100d6578063095ea7b31461016657806313af40351461019957806318160ddd146101b757806323b872dd146101d9578063313ce5671461021257806331c420d414610238578063426a84931461024a5780636d1b229d1461028057806370a08231146102a7578063a9059cbb146102d5578063dd62ed3e14610308575bfe5b34156100cc57fe5b6100d461033c565b005b34156100de57fe5b6100e661039e565b60408051602080825283518183015283519192839290830191850190808383821561012c575b80518252602083111561012c57601f19909201916020918201910161010c565b505050905090810190601f1680156101585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016e57fe5b610185600160a060020a03600435166024356103df565b604080519115158252519081900360200190f35b34156101a157fe5b6100d4600160a060020a036004351661044a565b005b34156101bf57fe5b6101c7610492565b60408051918252519081900360200190f35b34156101e157fe5b610185600160a060020a0360043581169060243516604435610499565b604080519115158252519081900360200190f35b341561021a57fe5b6102226104c5565b6040805160ff9092168252519081900360200190f35b341561024057fe5b6100d46104cb565b005b341561025257fe5b610185600160a060020a0360043516602435604435610529565b604080519115158252519081900360200190f35b341561028857fe5b61018560043561055d565b604080519115158252519081900360200190f35b34156102af57fe5b6101c7600160a060020a03600435166105ed565b60408051918252519081900360200190f35b34156102dd57fe5b610185600160a060020a036004351660243561060c565b604080519115158252519081900360200190f35b341561031057fe5b6101c7600160a060020a036004358116906024351661063a565b60408051918252519081900360200190f35b60025433600160a060020a039081169116146103585760006000fd5b60045460ff16151561039b576004805460ff191660011790556040517f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de90600090a15b5b565b6103a661093b565b5060408051808201909152600481527f49434f530000000000000000000000000000000000000000000000000000000060208201525b90565b600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60025433600160a060020a039081169116146104665760006000fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156104af575060006104bd565b6104ba848484610667565b90505b5b9392505050565b60065b90565b60025433600160a060020a039081169116146104e75760006000fd5b60045460ff161561039b576004805460ff191690556040517f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded90600090a15b5b565b600082610536338661063a565b141561054d576104ba84836103df565b90506104bd565b5060006104bd565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610585575060006105e6565b60008211156105e257600160a060020a0333166000908152602081905260409020546105b190836107fe565b600160a060020a0333166000908152602081905260409020556003546105d790836107fe565b6003555060016105e6565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60045460009060ff161561062257506000610444565b61062c8383610819565b9050610444565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a03808416600090815260016020908152604080832033909416835292905290812054829010156106a0575060006104bd565b600160a060020a038416600090815260208190526040902054829010156106c9575060006104bd565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546106fa90836107fe565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610746575082600160a060020a031684600160a060020a031614155b156107f357600160a060020a03841660009081526020819052604090205461076e90836107fe565b600160a060020a03808616600090815260208190526040808220939093559085168152205461079d908361091c565b600160a060020a038085166000818152602081815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5060015b9392505050565b60008183101561080e5760006000fd5b508082035b92915050565b600160a060020a0333166000908152602081905260408120548290101561084257506000610444565b600082118015610864575082600160a060020a031633600160a060020a031614155b1561091257600160a060020a03331660009081526020819052604090205461088c90836107fe565b600160a060020a0333811660009081526020819052604080822093909355908516815220546108bb908361091c565b600160a060020a03808516600081815260208181526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b5060015b92915050565b600081600019038311156109305760006000fd5b508181015b92915050565b604080516020810190915260008152905600a165627a7a7230582002e17aeec54bbe6d83c363123e6f20d6582d5cd6bf867ed9c8fdcfc2abd9d8d10029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000089bf1f0240
-----Decoded View---------------
Arg [0] : _tokensCount (uint256): 591617000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000089bf1f0240
Swarm Source
bzzr://02e17aeec54bbe6d83c363123e6f20d6582d5cd6bf867ed9c8fdcfc2abd9d8d1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)