Вступление
Создать токен гораздо проще, чем вы себе представляете. Н�� самом деле достаточно 10 минут, минимум теоретических знаний и пошаговый план действий.
В этой статье:
Вы получите пошаговый план создания токена.
Пройдемся по этапам от начала до конца.
Затронем устройство токена.
Расскажем про основные подводные камни.
Разбор принципа создания смарт-контракта

Первым шагом является написание кода смарт-контракта для вашего токена. Смарт-контракт — это программа, которая загружается в блокчейн и обладает собственным кодом и памятью. Код пишется на языке Solidity, верхнеуровневом языке (т.е. языке понятном для программиста). На этом этапе мы задаем свойства токена: Название, символ, выпускаемое количество и другое.
Следующий этап — это компиляция кода Solidity в ByteCode. Дело в том, что компьютеры в блокчейне не понимают слов, написанных на Solidity; они понимают только нули и единицы. Процесс компиляции превращает код из Solidity в ByteCode, чтобы компьютеры в сети блокчейна могли интерпретировать и выполнять смарт-контракт.
Для того чтобы разместить смарт-контракт в блокчейне, подключаемся через кошелек к любой ноде, компьютеру в сети блокчейна**.** Кошелек на рисунке помечен как «ММ» от Meta Mask. Немного больше информации: Транзакция в блокчейне подписывается с помощью связки приватного и публичного криптографи��еских ключей, которые находятся в вашем кошельке. Приватный ключ обычно представлен в виде seed-фразы (никогда не делитесь им), а публичный ключ — это номер вашего кошелька. Кошельки имеют доступ к нодам блокчейна, что позволяет легко совершать транзакций.
Деплоим смарт контракт в блокчейн. Подписываем транзакцию с нашим смарт-контрактом
Этот пункт выполняют пользователи вашего токена. Пользователь через кошелек обращаемся к блокчейну, чтобы взаимодействовать со смарт-контрактом.
Кстати, если вы хотите создать или развиваете свой Web3 проект, то мы с командой подготовили подробный план развития блокчейн проекта и сформировали из него документ.
Там мы подробно описываем все этапы от создания идеи, привлечения инвестиций до технической реализации — https://clck.ru/38ZFYi
Создание Смарт-Контракта
Заходим в конструктор — https://constructor.futuremarkt.com/
Выбираем необходимые настройки

Настройка конструктора токенов Name - отвечает за название токена.
Symbol - Символ токена.
Premint. Сколько токенов будет создано на адрес создателя смарт-контракта. Если не добавить функцию mint (создание новых токенов), то данный параметр будет показателем максимального.
Mintable. Если необходимо добавить функцию создания новых токен��в. (Может только создатель, при выделенном флажке
Ownable)Burnable. Если мы хотим иметь возможность сжигать токены. (Может только создатель, при выделенном флажке
Ownable)
Копируем код.
Заходим в remix — https://remix.ethereum.org/
Создаем новый файл в папке “contracts”, с расширением
.sol
Вставляем код.
Компилируем код
Важно, тут может быть ошибка расхождения версий библиоткеи OpenZepplin (грубо говоря расхождение в коде). Если такая ошибка возникает, то просто удалите
initialOwnerи addressinitialOwner
Верно:

Выбираем подключение через MetaMask. Проверяем, чтобы был выбран верный смарт-контракт. Нажимаем «Deploy» и подтверждаем транзакцию.

Untitled Ваш токен можно увидеть в кошельке, добавив его по адресу. Либо посмотрев в сканере.

Что из себя представляет токен. Для тех кто хочет углубиться.
Если нажать через ctrl / cmd на строку
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";то вы переместитесь в файл непосредственно с кодом токена.ВАЖНО! Мы заведомо упрощаем код, чтобы вам было легче разобраться. Более подробно мы рассказываем про разработку токена вот в этих видео:
ERC-20 Чать I
ERC-20 Часть IIКлючевые моменты
Токен представляет собой по факту таблицу (или леджер), где напротив каждого пользователя пишется баланс человека. Когда мы деплоим смарт-контракт мы просто создаем переменную, в которой соодержится список пользователей, переменную с названием и несколько функций, которые позволяет дописывать и вычитать баланс у каждого пользователя
string private _name;— переменная отвечающая за название токене;string private _symbol;— переменная отвечающая за символ токен;mapping(address => uint256) private _balances;— ключевая переменная отвечающая за балансы. Каждому адресу присваивается какое-то число.Конструктор
constructor()функция, которая запускается при деплое смарт-контракта.constructor() ERC20("MyToken1", "MTK1") ERC20Permit("MyToken1") { _mint(msg.sender, 1000 * 10 ** decimals()); }В данном случае вызовется функция
_mint()которая положет на баланс пользователя 1000 токеновФункция отвечающая за перевод
Мы специально убрали все лишнее (в OpenZepplin вы увидите дополнительный код, который отвечает за безопасность)
function _transfer( address from, address to, uint256 amount ) internal virtual { uint256 fromBalance = _balances[from]; unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } }Как вы видите мы просто вычитаем из баланса пользователя значение
amount(сколько хотим перевести), а адресату добавляем это значение.Создание новых токенов
function _mint(address account, uint256 amount) internal virtual { _totalSupply += amount; unchecked { _balances[account] += amount; } }Функция минт просто добаляет какому-то пользователю заданное значение
amountКак видите, ничего сложного.
Потенциальные проблемы
Указали недостаточное количество GasLimit. GasLimit отвечает за максимальное количество газа, которое вы готовы использовать.
Указали недостсточную стоимость Gas-а.
Как следствие, вроде банальная, но частая ошибка - недостаточно баланса на кошельке.
Разница версий OpenZepplin. Проблема в том, что используя конструкторы они могут использовать новейшую версию стандарта, а в Remix-е еще не обновили данную версию.
Название смарт-контракта должно соответствовать названию файла.
Сложная ошибка связанная с PUSH01. Связана она с разницей настроек компилятора и версией EVM. Просто попробуйте поменять EVM на более старую версию, например на Paris.

Ошибки на все случаи жизни подсвечиваются в Remix. Берем и переводим, в 98% случаев вы сами сможете их решить, в 2% случаев вы можете обратиться в наше сообщество.

Итог
Как видите, создать свою криптовалюту (токен) достаточно просто и быстро. Если вы хотите узнать больше о создание web3 проектов и о продвижение, подписывайтесь на наши каналы:
