Как сделать свой токен на WB Network
Первым делом переходим по ссылочке на remix - https://remix.ethereum.org
Нажимаем слева на папку "contracts" и на метку создания файла
Кликаем сверху на Create New File и создаём файл под названием IWRC20.sol
- Берём код, который оставил ниже и вставляем его в правую часть
// SPDX-License-Identifier: MIT
function name() external view returns(string memory);
function symbol() external view returns(string memory);
function decimals() external pure returns(uint);
function totalSupply() external view returns(uint);
function balanceOf(address account) external view returns(uint);
function transfer(address to, uint amount) external;
function allowance(address _owner, address spender) external view returns(uint);
function approve(address spender, uint amount) external;
function transferFrom(address sender, address recipient, uint amount) external;
event Transfer(address indexed from, address indexed to, uint amount);
event Approve(address indexed owner, address indexed to, uint amount);
Создаём ещё один файл, как делали выше, но под названием TestToken.sol и вставляем опять же справа код ниже
// SPDX-License-Identifier: MIT
mapping(address => uint) balances;
mapping(address => mapping(address => uint)) allowances;
function name() external view returns(string memory) {
function symbol() external view returns(string memory) {
function decimals() external pure returns(uint) {
function totalSupply() external view returns(uint) {
modifier enoughTokens(address _from, uint _amount) {
require(balanceOf(_from) >= _amount, "not enough tokens!");
require(msg.sender == owner, "not an owner!");
constructor(string memory name_, string memory symbol_, uint initialSupply) {
mint(initialSupply, msg.sender);
function balanceOf(address account) public view returns(uint) {
function transfer(address to, uint amount) external enoughTokens(msg.sender, amount) {
_beforeTokenTransfer(msg.sender, to, amount);
balances[msg.sender] -= amount;
emit Transfer(msg.sender, to, amount);
function mint(uint amount, address mint_to) public onlyOwner {
_beforeTokenTransfer(address(0), mint_to, amount);
emit Transfer(address(0), mint_to, amount);
function burn(address _from, uint amount) public onlyOwner {
_beforeTokenTransfer(_from, address(0), amount);
function allowance(address _owner, address spender) public view returns(uint) {
return allowances[_owner][spender];
function approve(address spender, uint amount) public {
_approve(msg.sender, spender, amount);
function _approve(address sender, address spender, uint amount) internal virtual {
allowances[sender][spender] = amount;
emit Approve(sender, spender, amount);
function transferFrom(address sender, address recipient, uint amount) public enoughTokens(sender, amount) {
_beforeTokenTransfer(sender, recipient, amount);
require(allowances[sender][msg.sender] >= amount, "check allowance!");
allowances[sender][msg.sender] -= amount;
balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
function _beforeTokenTransfer(
constructor(address owner) WRC20("YOUR NAME", "YOUR TICKER", YOUR-TOTAL-SUPPLY*10**18) {}
YOUR NAME меняем на название токена, например: CryptoMark
YOUR TICKER меняем на тикер токена, например: CRPMK
YOUR-TOTAL-SUPPLY меняем на желаемое максимальное количество токенов в обороте, например: 100
Далее кликаем на Deploy & Run Transaction и во вкладке ENVIRONMENT сверху выбираем Injected Provider, вместо Remix VM
Если вы сделали всё правильно, сверху должно показать ваш адрес, как на фото ниже
Далее переходим в раздел выше, под названием Solidity Compiler и кликаем на кнопку Compile TestToken.sol, изначально там показывается кружочек со стрелочками, если всё будет верно, загорится галочка и снизу появятся новые кнопки, как у меня на фото
Теперь приступаем к Смарт контракту
Заходим обратно в раздел Deploy & Run Transaction (Выглядит как Эфир со стрелочкой) и в раздел Deploy - вписываем наш адрес кошелька и проверяем, чтобы сверху был Injected Provider и в разделе CONTRACT название нашего файла, как у меня на фото
После этого, нажимаем на кнопочку Deploy и подтверждаем транзакцию в MetaMask, если у вас еще нет токенов WBT, смотрите мой пост
Если всё прошло успешно, будет показываться как на скриншоте ниже
Сверху в TESTTOKEN AT, копируем наш адрес токена и идём добавлять токен в MetaMask
Вуаля, теперь у меня есть 100 своих токенов CRPMK
Если тебе понравился гайдик и он был для тебя полезен, буду рад, если подпишешься на мой канала - CryptoMark NFT