Как сделать токен на эфире
Как создать собственный токен на базе ERC20 от Ethereum и запустить ICO за 20 минут
В последнее время я все чаще изучаю особенности блокчейна и децентрализованных приложений для собственного саморазвития. Для разнообразия процесса, я решил разработать свой собственный токен, основанный на Ethereum, и определить процесс запуска собственного ICO.
Путем наглядного примера по запуску собственного ICO, эта статья нацелена на объяснение основ функционирования смарт-контрактов (англ. smart-contract) в блокчейн-сети Ethereum.
Основы blockchain-сети Ethereum
Вот некоторые основные термины, которые нам понадобятся по мере создания токена. В случае, если большая часть терминов вам уже знакома, можете сразу переходить к следующему разделу.
Смарт-контракты : Смарт-контракты — это самозапускающиеся программные блоки, которые функционируют на блокчейне Ethereum. Смарт-контракты способны обрабатывать не только кодовую часть, но также и информационную. Такие контракты способны принимать решения, взаимодействовать с другими контрактами, хранить данные и обмениваться Ether (единица криптовалюты в блокчейне Ethereum) между пользователями.
Solidity : Solidity — это язык для создания смарт-контрактов.
MetaMask/Mist/Кошелек MEW : Все это является цифровой средой, которая хранит ваши Ether-средства и другие токены, на основе Ethereum.
Шаг 1: Код
Откройте ваш любимый текстовый редактор и вставьте следующий код:
Вышеуказанный код для создания простого ERC20 токена написан на языке Solidity. Он хорошо прокомментирован и его можно легко понять. Вставив код в ваш текстовый редактор, найдите надпись «CHANGE THIS». Здесь вам необходимо данные, в зависимости от характеристик вашего токена. В моем случае, я назвал мой токен HashnodeTestCoin (HTCN). Общий объем выпуска ограничен и составляет 1000 токенов HTCN, однако минимально-возможное количество для хранения HTCN равняется 0.000000000000000001, поскольку в строке «decimal» установлено значение 18 — стандартное количество знаков после запятой.
Вдобавок, владелец контракта (тот, кто его исполняет), получает все начальные токены. Я установил ценовое соотношение для ICO по следующим образом:
1 ETH = 10 HTCN
Это значит, что если кто-то отправит нашему смарт-контракту 1 ETH, то в обмен получит 10 HTCN.
Шаг 2
Скачайте MetaMask — расширения для Chrome, чтобы сгенерировать цифровой-кошелек. Владелец этого кошелька является и владельцем смарт-контракта. В качестве альтернативы, можно использовать Mist или My Ether Wallet. Для простоты примера, в нашем проекте мы будем использовать расширение MetaMask.
Скачав и установив расширение, создайте аккаунт, защищенный паролем. Затем, в верхнем левом углу расширения выберите «Ropsten TestNet». Прежде чем запустить контракт в Main-сети Ethereum’а, мы протестируем наш контракт с помощью TestNet, чтобы убедиться, что все работает как было запланировано. Выглядит все это следующим образом:
Теперь перейдите к Remix IDE (онлайн-компилятор и отладчик Solidity) и вставьте код, который вы изменили под свои параметры. Не обращайте внимания на все возможные предупреждения. Затем перейдите в настройки и уберите флажок «Enable optimization», если он установлен.
Дальше перейдите во вкладку «Run» и нажмите на кнопку «Create», которая расположена под надписью вашего токена. Нажав на кнопку, MetaMask предложить приобрести несколько единиц Ether для теста и отправит транзакцию. Выглядит примерно так:
Убедитесь, что вы используете сеть Ropsten TestNet, а не MainNet и нажмите «Submit». Вас перенаправит на сервис Etherscan, где можно отследить текущую транзакцию. Для верификации транзакции может потребоваться примерно 30 секунд. Как только произойдет подтверждение, выглядеть все будет следующим образом:
Поздравляю! Вы только что запустили собственный смарт-контракт. Заметьте, что адрес, указанный на изображении свыше — это адрес вашего смарт-контракта.
Теперь пора проверить, работает ли все на самом деле.
Шаг 3
Нажмите на кнопку «Add» и перезагрузите MetaMask. Теперь вы должны увидеть всю начальную поставку (в моем случае — это все те же 1000 HTCN).
Шаг 4
Теперь, при условии, что все работает должным образом, нам нужно верифицировать наш смарт-контракт, что все участники блокчейн-сети смогли воспользоваться им. Верификация — важная составляющая, поскольку она помогает установить доверие.
Теперь перейдите в Etherscan на адрес ваше смарт-контракта и нажмите вкладку «Contract Code».
Нажмите на ссылку «verify and publish». Перейдя на новую страницу, заполните все детали, начиная с версии компилятора и возможностью оптимизации. Также не забудьте вставить исходный код нашего контракта, который мы скомпилировали в первом шаге.
Поздравляю! Теперь любой может посетить страницу вашего контракта и прочитать исходный код.
Шаг 5
Чтобы окончательно запустить контракт, остается только переключить с TestNet на MainNet в расширении MetaMask (в верхнем левом углу расширения) и повторить шаги со 2 по 4. Обратите внимание, что для запуска контракта на MainNet понадобится потратить настоящий Ether. Поэтому не запускайте контракт до тех пор, пока не будете уверены на 100% (Смарт-контракты невозможно изменить и нельзя обновить после запуска). В нашем уроке, мы продолжим использовать TestNet.
Покупка токенов за Ether
В вашем ICO, пользователи будут покупать ваши токены за ETH. Помните, что мы установили цену в 1 ETH = 10 HTCN, пока разрабатывали контракт? Так вот, если пользователь захочет на вашем ICO купить 10 HTCN, ему придется заплатить 1 ETH. Давайте проверим это на практике.
Перейдите в MetaMask, создайте новый аккаунт и заполните его для теста несколькими Ether. Как только на аккаунте будут средства, нажмите «Send» и в поле адреса, вставьте адрес вашего смарт-контракта. В поле для количества токенов, введите 2 (ETH).
Отправьте 2 ETH и дождитесь подтверждения транзакции. Перезагрузите MetaMask и проверьте ваши токены через несколько секунд. Новый пробный аккаунт должен получит 20 HTCN (или другую сумму, в зависимости от того характеристик контракта) а у владельца контракта (в нашем случае это вы) должно остаться 980 (или около того) токенов HTCN.
Вдобавок вы должны получить 2 ETH.
Поздравляю с успехом!
Запуск страницы ICO
Чтобы отобразить количество ETH, привлеченное нашим проектом, мы будем использовать а нашем сайте библиотеку JavaScript, под названием Web3.js.
Откройте исходник страницы Hashnode Test Coin ICO и проверьте код в последнем
Руководство: Как создать токены на базе Ethereum
Можно ли выпустить собственные токены, провести ICO, заработать миллионы долларов и зажить криптомечтой менее чем за 20 минут? Ответ — да. Рассказываем, как выпустить токены с помощью одного смарт-контракта и кошелька MyEtherWallet.
Токены будут соответствовать стандарту ERC-20 и включать основные функции. Их можно использовать как базу для более сложных приложений, а не только для платежей.
Помните: большие возможности связаны с высокой ответственностью. Будьте осторожны со своей криптовалютой и используйте потенциал технологии во благо.
Для создания собственных токенов потребуются следующие компоненты:
Адрес Ethereum
Текстовый редактор
Выберите один из следующих текстовых редакторов:
Контракт
Ropsten-эфир
Получить немного Ropsten-эфира можно по адресу https://faucet.bitfwd.xyz/. Для этого введите адрес своего Ropsten-кошелька, пройдите тест CAPTCHA и нажмите «Get ETH!» (ограничитесь одним разом, пожалуйста).
Теперь давайте напишем немного кода:
Строки 3−15
Значения «decimals» и «_totalSupply» в 118-й и 119-й строках можно не менять. Поле «decimals» указывает на минимальное дробное значение токена (в данном случае токен можно разделить на 10 в 18 степени, или квинтиллион частей). Если вы собираетесь выпустить 100 токенов, необходимо в _totalSupply указать полное число их минимальных частей (т. е. 100 000 000 000 000 000 000).
На этом редактирование завершено; сохраните файл.
Нажмите на подтверждение транзакции или перейдите на сайт https://ropsten.etherscan.io чтобы убедиться, что контракт был создан (можно провести поиск по адресу). Если этого не произошло, попытайтесь снова и постарайтесь понять, что пошло не так. Если все получилось — можете гордиться собой. В этом случае вы увидите страницу примерно следующего содержания:
Теперь нужно зарегистрировать контракт. Для этого на странице «Contract Overview» перейдите по ссылке «Contract Address», выберите вкладку «Code», нажмите на ссылку «Verify and Publish».
Все почти готово. Следующие шаги крайне важны, поэтому отнеситесь к ним с максимальным вниманием. По сути мы должны подтвердить, что это действительно наш код, и зарегистрировать его в сети навсегда.
Так что если вы наделаете ошибок, они останутся навечно.
На этой странице необходимо сделать 5 вещей:
Оставьте остальные поля без изменений и нажмите «Verify And Publish»
Именно к этому моменту вы стремились. Скрестите пальцы и ждите…
Если появилась страница подтверждения с фразой «Successfully generated ByteCode and ABI for Contract Address» зеленого цвета — поздравляем, вы успешно зарегистрировали свой токен и можете гордиться! Теперь вы киберпанк и часть криптовалютного движения. Ура!
Если появятся ошибки, вернитесь к предыдущему шагу и проверьте, все ли правильно сделали. Также всегда можно поискать помощи в интернете.
Чтобы убедиться, что токены выпущены, перейдите на сайт https://ropsten.etherscan.io/ и введите свой адрес MyEtherWallet (не контракта, а публичный). Вы должны увидеть свои токены. Теперь можно расслабиться и отпраздновать!
Чтобы иметь возможность отправлять токены, необходимо зайти в свою учетную запись MyEtherWallet, перейти на вкладку «Информация о Кошельке» и нажать на кнопку «Добавить свой токен». После этого их можно переводить на другие счета.
Будь в курсе! Подписывайся на Криптовалюта.Tech в Telegram
Как бесплатно создать криптовалютный токен менее чем за 10 минут
Это руководство по созданию вашего собственного криптовалютного токена на любой ОС. Здесь я опробую свой токен только в тестовой сети, но я также покажу, как поместить его в основную сеть Ethereum. Несмотря на то, что ваш токен ничего не будет стоить, он все равно будет передаваться через MetaMask. Примечание: убедитесь, что у вас установлен Google Chrome.
Пример токена, который я создал
Шаг 1
Сначала вам нужно будет создать учетную запись в MetaMask. Перейдите по этой ссылке и следуйте указаниям, пока у вас не установится расширение chrome, как на примере ниже. Вам нужно будет создать учетную запись и написать пароль из 10 слов, который будет использоваться для входа в вашу учетную запись.
Шаг 2
Прежде чем мы приступим к созданию токена, вам нужно учесть следующие вещи. Вам нужно будет выбрать:
Имя токена (например, TutorialToken)
Символ токена (обычно 3 или 4 буквы. Например, TUT)
Десятичные знаки (покажет, на сколько десятичных знаков может быть разделена каждая монета. Например, Биткоин имеет 14 десятичных знаков. Для этого я просто буду использовать 1)
Количество токенов в обращении (например, 100 000)
Шаг 3
Сначала вам нужно будет приобрести тестовую версию Ethereum за плату за газ. Плата за газ – это, по сути, плата за использование их блокчейна для передачи ваших токенов. Зайдите на этот сайт и запросите хотя бы 1 Ethereum из кран https://remix.ethereum.org
Затем вставьте этот код в редактор
Теперь найдите, где говорится / / ПОМЕНЯЙТЕ ЭТИ ЗНАЧЕНИЯ ДЛЯ ВАШЕГО ТОКЕНА.
Замените все эти значения на то, что хотели ранее.
Теперь, когда с кодом закончено, вы можете протестировать свой токен в тестовой сети. Прежде всего, убедитесь, что вы находитесь в тестовой сети Ropsten. Ниже показано, как переключиться с Ethereum на Ropsten.
Убедитесь, что все ваши настройки совпадают с этим во вкладке RUN:
Перейдите во вкладку COMPILER и переключитесь на версию компилятора 0.4.24 commit version. НЕ ИСПОЛЬЗУЙТЕ ВЕРСИЮ NIGHTLY VERSION. Также убедитесь, что включена автоматическая компиляция и отключена оптимизация.
Теперь перейдите обратно во вкладку RUN и выберите TOKEN.
Далее необходимо нажать на значок MetaMask во вкладке extensions (расширения) и нажать на кнопку Contract Deployment (развертывание контракта). Затем нажмите на View On Etherscan (просмотр на Etherscan).
Затем скопируйте ID контракта, выделенный ниже.
Нажмите кнопку COPY TO CLIPBOARD (Копировать в буфер обмена).
Вернитесь к MetaMask и нажмите menu, затем Add Token (добавить Токен).
Добавьте все данные для своего токена. Адрес контракта – это идентификатор (ID), который вы только что скопировали.
Вы закончили! Теперь у вас есть полная сумма токенов, аккредитованная для вашего счета. Теперь ее можно отправлять кому-либо еще, используя MetaMask и некоторые другие кошельки.
Шаг 4 (необязательно)
В качестве заключительного шага вы можете поместить токен в основную сеть Ethereum, сделав его официальным токеном. Недостатком этого является то, что вы должны заплатить около 30 долларов США, чтобы сделать это. Все, что вам нужно сделать, это повторить шаг 3, но быть при этом в главной сети Ethereum вместо сети Ropsten.
Вывод
Это было обучающее пособие о том, как создать криптовалютный токен в сети Ethereum. Если у вас возникнут какие-либо ошибки, прокомментируйте их, и я постараюсь помочь их исправить. Просто чтобы внести ясность: это не криптовалюта. На самом деле, чтобы создать криптовалюту, у вас должен быть блокчейн, а это намного сложнее сделать. Но это хорошее начало, если вы намерены в дальнейшем переключиться на блокчейн и криптовалюты.
FAQ: как работают ERC-20 токены и зачем они вообще нужны
Эфириум — техническая основа практически всего сегодняшнего крипторынка. После его изобретения чуть ли не каждый смог привнести в индустрию нечто новое благодаря упрощённости ERC-20 токенов. Но как на самом деле они устроены? Сегодня мы подготовили серию самых часто задаваемых вопросов об ERC-20.
Что такое ERC-20 токен?
Токены стандарта ERC-20 сделаны специально для платформы Ethereum.
Все они следуют стандартному списку функций, чтобы их могли передавать, хранить и обменивать на другие токены в экосистеме Эфириума. Разработчики Эфириума создали эти стандарты с тремя опциональными параметрами и шестью обязательными.
Запутались? Разберёмся в деле.
Что такое Эфириум вообще?
Эфириум — это децентрализованная компьютерная сеть с двумя базовыми функциями.
К этим функциям принадлежит сам блокчейн для записи транзакций и виртуальная машина для выполнения смарт-контрактов.
Благодаря этому Эфириум может поддерживать выполнение децентрализованных приложений (DApps). DApps построены на базе Эфириума и могут использовать ресурсы системы Эфира. Процесс не бесплатный, разработчики платят за использование ресурсов платформы монетами ETH, нативной валютой экосистемы.
В зависимости от предназначения с помощью DApps получится создавать ERC-20 токены, которые могут функционировать как валюты, акции компаний, очки программы лояльности или даже доказательство владения чем-либо.
А при чём здесь смарт-контракты?
Смарт-контракты используются для создания ERC-20 токенов.
Они также созданы для учёта транзакций токенов и записи балансов на кошельках. Смарт-контракты написаны на языке Solidity, который следует логике «если это, тогда то» (IF THIS THEN THAT, IFTTT).
Представьте себе вендинговую машину.
Что происходит после того, как смарт-контракт создаёт токен?
С этого момента в дело вступает ERC-20.
После создания токена его можно обменять, потратить или дать кому-нибудь ещё. ERC-20 — это универсальный язык экосистемы Эфириума, который как раз таки позволяет обменивать одни токены на другие.
Источник иллюстрации — Storify News
Представьте, что вы создали криптоказино. Здесь игроки должны использовать фишки для простоты расчётов между собой. Итак, заходит игрок, обменивает свои деньги на фишки и направляется к покерному столу.
Аналогия ясна, но как именно это работает?
Рассмотрим подробнее каждый из вышеупомянутых параметров токена в нашем криптоказино.
Разработчики должны безукоризненно следовать правилам.
Начнём с опциональных параметров:
Почему именно 2? Мы хотим, чтобы наши токены можно было разделить до такой степени, чтобы минимальная ставка игрока была не ниже 0,01 BLU. Мы могли бы оставить ноль, и тогда минимальная ставка составила бы 1 BLU, так как в таком случае разделить токены нельзя. Для ясности дела не будем углубляться в эти детали.
[totalSupply] идентифицирует общее количество созданных ERC-20 токенов.
Первая вещь, с которой нужно определиться — количество фишек. Скажем, на нашем покерном столе лежат 10 BLU на десять игроков.
[transfer] позволяет передать определённое количество токенов из их общего числа на кошелёк пользователя.
Перед началом игры каждый игрок должен получить свои BLU от дилера. Всем достаётся по одной фишке.
Функция [balanceOf] при вызове возвращает количество токенов на определённом адресе.
В первой раздаче пятеро из игроков взглянули на свои карты и решили пропустить этот раунд. Оставшиеся пять поставили по 0,5 BLU. Используя функцию [balanceOf], мы можем определить точное количество фишек на руках у каждого игрока.
Как я могу получить ERC-20 токены от других пользователей?
Функция [transferFrom] позволяет передавать монеты на другие адреса.
Хорошие новости! Наш игрок выиграл 2,5 BLU в первом раунде. Чтобы он смог получить свои фишки, мы воспользуемся функцией [transferFrom].
Можно ли подделать токен?
Не совсем, параметр [approve] проверяет каждую транзакцию относительно общего количества токенов.
Благодаря [approve] мы можем удостовериться, что ни один из посетителей не принёс с собой поддельные BLU.
Могу ли я как-нибудь соврать о количестве токенов на своём кошельке?
Перед самой транзакцией функция [allowance] проверяет баланс пользователя. Если на нём недостаточно средств, она отменяет перевод.
В нашем заведении не выдают кредиты. Если у одного игрока есть всего одна фишка, он не сможет поставить 2 BLU на кон в следующем раунде.
Какими преимуществами располагает ERC-20?
Он делает всё проще.
Без стандарта ERC-20 разработчики могли бы использовать собственные правила и терминологию в коде монет. К примеру, одни обозначали бы общее количество токенов функцией [totalAmount], другие — функцией [totalNumber].
К тому же биржам тоже пришлось бы учитывать особенности каждого отдельного проекта. Благодаря ERC-20 новые токены можно автоматически добавлять на биржу, перемещать между кошельками и так далее. Этот стандарт также упростил задачу создания новых монет, что сделало Эфириум самой популярной платформой для ICO в 2017 году.
А что насчёт проблем?
Стандарт ERC-20 не идеален.
В некоторых ситуациях токены могут быть уничтожены. Так происходит, когда их используют в качестве платёжного средства за смарт-контракты вместо Эфириума. Чтобы исправить проблему, комьюнити криптовалюты в данный момент работает над новым стандартом под названием ERC-223.
Источник иллюстрации — eCrypto
Сейчас он не совместим с ERC-20, поэтому разработчики пока могут использовать старый стандарт. Как только совместимость будет достигнута, большая часть проектов будет в состоянии мигрировать как раз на ERC-223.
В апреле 2018 года несколько бирж приостановили депозиты токенов на базе Эфириума из-за бага в функции batchOverflow. По словам экспертов, уязвимость была достаточно серьёзной и могла привести к созданию огромного количества токенов «из воздуха».
Есть ли реальные примеры использования ERC-20?
Их достаточно. Каждый токен на базе Эфириума создан по стандарту ERC-20.
По данным сервиса Etherscan, на данный момент создано более 139 тысяч самых разных токенов. Это число продолжает расти с каждым днём.
Среди самых известных проектов по стандарту ERC-20 создавался EOS, пятый по капитализации альткоин в крипторынке. До миграции на собственный блокчейн Tron (10 место) тоже работал по принципу ERC-20.
Кстати, вы тоже можете создать собственный токен ради изучения основных принципов работы Эфириума. Почерпнуть гениальную идею для стартапа получится в нашем чате. Возможно, именно вы станете очередным криптомиллиардером.