Como uma prática recomendada, você pode optar por criar seu próprio token usando o modelo padrão ERC-20.
Use o seguinte contrato inteligente no editor de código de sua escolha, personalize sua criptomoeda e compile seu código após aprovar a conexão usando sua carteira digital preferida (aqui, usamos a MetaMask Wallet).
Contrato inteligente ERC-20
Copy // SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.16;
interface IERC20 {
event Transfer ( address indexed from, address indexed to, uint256 value);
event Approval ( address indexed owner, address indexed spender, uint256 value);
function totalSupply () external view returns ( uint256 );
function balanceOf ( address account) external view returns ( uint256 );
function transfer ( address to , uint256 amount) external returns ( bool );
function allowance ( address owner , address spender) external view returns ( uint256 );
function approve ( address spender , uint256 amount) external returns ( bool );
function transferFrom ( address from , address to , uint256 amount) external returns ( bool );
}
contract SampleERC20Token is IERC20 {
string public symbol;
string public name;
uint8 public decimals;
uint public _totalSupply;
mapping ( address => uint ) balances;
mapping ( address => mapping ( address => uint )) allowed;
constructor () {
symbol = "SYM" ;
name = "Sample ERC20 Token" ;
decimals = 2 ;
_totalSupply = 100000 ;
balances[msg.sender] = _totalSupply;
emit Transfer ( address ( 0 ) , msg.sender , _totalSupply);
}
function totalSupply () external view returns ( uint ) {
return _totalSupply - balances[ address ( 0 )];
}
function balanceOf ( address tokenOwner) external view returns ( uint balance) {
return balances[tokenOwner];
}
function transfer ( address to , uint tokens) public returns ( bool success) {
balances[msg.sender] = balances[msg.sender] - tokens;
balances[to] = balances[to] + tokens;
emit Transfer (msg.sender , to , tokens);
return true ;
}
function approve ( address spender , uint tokens) public returns ( bool success) {
allowed[msg.sender][spender] = tokens;
emit Approval (msg.sender , spender , tokens);
return true ;
}
function transferFrom ( address from , address to , uint tokens) public returns ( bool success) {
balances[from] = balances[from] - tokens;
allowed[from][msg.sender] = allowed[from][msg.sender] - tokens;
balances[to] = balances[to] + tokens;
emit Transfer (from , to , tokens);
return true ;
}
function allowance ( address tokenOwner , address spender) external view returns ( uint remaining) {
return allowed[tokenOwner][spender];
}
}