Вы здесь

Как бесплатно создать криптовалютный токен менее чем за 10 минут

Это руководство по созданию вашего собственного криптовалютного токена на любой ОС. Здесь я опробую свой токен только в тестовой сети, но я также покажу, как поместить его в основную сеть Ethereum. Несмотря на то, что ваш токен ничего не будет стоить, он все равно будет передаваться через MetaMask. Примечание: убедитесь, что у вас установлен Google Chrome.

Как бесплатно создать криптовалютный токен менее чем за 10 минут

1_-1tTOj4thY5VLT3E7_OXYw.png
Пример токена, который я создал

Шаг 1

Сначала вам нужно будет создать учетную запись в MetaMask. Перейдите по этой ссылке и следуйте указаниям, пока у вас не установится расширение chrome, как на примере ниже. Вам нужно будет создать учетную запись и написать пароль из 10 слов, который будет использоваться для входа в вашу учетную запись.

https://chrome.google.com/webstore/detail/nkbihfbeogaeaoehlefnkodbefgpgknn

1_SnIb3JO0H6qmvdluJJqAuQ.png

Шаг 2

Прежде чем мы приступим к созданию токена, вам нужно учесть следующие вещи. Вам нужно будет выбрать:
Имя токена (например, TutorialToken)
Символ токена (обычно 3 или 4 буквы. Например, TUT)
Десятичные знаки (покажет, на сколько десятичных знаков может быть разделена каждая монета. Например, Биткоин имеет 14 десятичных знаков. Для этого я просто буду использовать 1)
Количество токенов в обращении (например, 100 000)

Шаг 3

Сначала вам нужно будет приобрести тестовую версию Ethereum за плату за газ. Плата за газ – это, по сути, плата за использование их блокчейна для передачи ваших токенов. Зайдите на этот сайт и запросите хотя бы 1 Ethereum из кран https://remix.ethereum.org

Теперь зайдите на сайт: https://remix.ethereum.org

1_NoSUgztRUxxYZjAI1kTMxA.png

Для создания нового файла нажмите кнопку ( + ) в левом верхнем углу экрана. Название можно дать любое, главное в конце приписать .sol.

1_ZbhxUUBas1a-g0S9wojbuw.png

Затем вставьте этот код в редактор

Pragma solidity ^0.4.4;
контракт Token {
/// @return суммарное количество токенов
function totalSupply() constant returns (uint256 supply) {}
/// @param _owner Адрес, с которого будет получен баланс
/// @return Баланс
function balanceOf(address _owner) constant returns (uint256 balance) {}
/// @notice отправьте `_value` токенов на `_to` с  `msg.sender`
/// @param _to Адрес получателя
/// @param _value Сумма токенов к переводу
/// @return Успешный или неуспешный перевод
function transfer(address _to, uint256 _value) returns (bool success) {}
/// @notice отправьте `_value` токенов на `_to` с `_from` при условии, что это разрешено `_from`
/// @param _from Адрес отправителя
/// @param _to Адрес получателя
/// @param _value Сумма токенов к переводу
/// @return Успешный или неуспешный перевод
function approve(address _spender, uint256 _value) returns (bool success) {}
/// @notice `msg.sender` разрешает `_addr` потратить `_value` токенов
/// @param _spender Адрес счета для перевода токенов
/// @param _value Сумма wei, разрешенная к переводу
/// @return Разрешение получено или нет
function approve(address _spender, uint256 _value) returns (bool success) {}
/// @param _owner Адрес счета, владеющего токенами
/// @param _spender Адрес счета для перевода токенов
/// @return Сумма остатка токенов, которую можно потратить
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}
событие Transfer(address indexed _from, address indexed _to, uint256 _value);
событие Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
контракт StandardToken - это Token {
function transfer(address _to, uint256 _value) returns (bool success) {
//Default означает, что totalSupply не может быть больше макс. (2²⁵⁶ — 1).
//Если ваш токен выпускает totalSupply и со временем сможет выпустить еще больше токенов, вам нужно убедиться в том, что он не будет обертываться (wrap-эффект).
// if замените этим.
//if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
if (balances[msg.sender] >= _value && _value > 0) {
balances[msg.sender] -= _value;
balances[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
} else { return false; }
}
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
//как выше. Замените эту строку на следующую, если хотите обезопасить себя от обертывания uints.
//if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
balances[_to] += _value;
balances[_from] -= _value;
allowed[_from][msg.sender] -= _value;
Transfer(_from, _to, _value);
return true;
} else { return false; }
}
function balanceOf(address _owner) returns returns (uint256 balance) {
return balances[_owner];
}
function approve(address _spender, uint256 _value) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
mapping (address => uint256) balances;
mapping (address => mapping (address => uint256)) allowed;
uint256 public totalSupply;
}
//назовите этот контракт, как хотите
контракт ERC20Token – это StandardToken {
function () {
//если эфир отправляется на этот адрес, отправьте его обратно.
throw;
}
/* Общедоступные переменные токена */
/*
Примечание:
следующие переменные являются необязательными, т.е. необязательно их включать.
Они просто позволяют настроить токен-контракт и никак не влияют на основной функционал.
Некоторые кошельки / интерфейсы могут даже не с реагировать на эту информацию.
*/
общедоступное название строки; //вымышленное имя: например, Simon Bucks
общедоступные десятичные uint8; //Сколько десятичных знаков показывать, т.е. может быть 1000 базовых единиц с 3 десятичными. Значение 0.980 SBX = 980 базовым единицам. Это как сравнивать 1 wei с 1 эфиром.
общедоступное название строки; //Идентификатор: напр., SBX
общедоступное название строки = ‘H1.0’; //human 0.1 standard. Просто произвольная многоверсионная схема.
//
// ПОМЕНЯЙТЕ ЭТИ ЗНАЧЕНИЯ ДЛЯ ВАШЕГО ТОКЕНА
//
//убедитесь, что название этой функции соответствует имени контракта выше. Если ваш токен называется TutorialToken, убедитесь, что // имя контракта выше также TutorialToken, а не ERC20Token
function ERC20Token(
) {
balances[msg.sender] = NUMBER_OF_TOKENS_HERE; // передайте создателю все исходные токены (100000, например)
totalSupply = NUMBER_OF_TOKENS_HERE; // Обновите общее количество (100000, например)
имя = “NAME OF YOUR TOKEN HERE”; // Установите имя для отображения
десятичные = 0; // Количество десятичных для отображения
символ = “SYM”; // Установите символ для отображения
}
/* Утверждает и затем вызывает получающий контракт */
function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
// вызовите функцию receiveApproval в контракте, о котором вы хотите получить уведомление. Это обрабатывает подпись функции вручную, так что не нужно включать контракт сюда только для этого.
//receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
//предполагается, что при этом вызов *должен* завершиться успешно, в противном случае вместо него будет использоваться Vanilla approve.
if(!_spender.call(bytes4(bytes32(sha3(“receiveApproval(address,uint256,address,bytes)”))), msg.sender, _value, this, _extraData)) { throw; }
return true;
}
}

Теперь найдите, где говорится / / ПОМЕНЯЙТЕ ЭТИ ЗНАЧЕНИЯ ДЛЯ ВАШЕГО ТОКЕНА.

Замените все эти значения на то, что хотели ранее.

balances[msg.sender] = TOTAL_NUMBER_OF_TOKENS_HERE;
totalSupply = TOTAL_NUMBER_OF_TOKENS_HERE;
имя = “NAME OF YOUR TOKEN HERE”;
десятичные = 0;
символ = “SYM”;

Теперь, когда с кодом закончено, вы можете протестировать свой токен в тестовой сети. Прежде всего, убедитесь, что вы находитесь в тестовой сети Ropsten. Ниже показано, как переключиться с Ethereum на Ropsten.

1_1wbYZQR8m-_ki4ScWP-xwA.png

Убедитесь, что все ваши настройки совпадают с этим во вкладке RUN:

1_4gHPiujsJ1OqrSk5zgya5Q.png

Перейдите во вкладку COMPILER и переключитесь на версию компилятора 0.4.24 commit version. НЕ ИСПОЛЬЗУЙТЕ ВЕРСИЮ NIGHTLY VERSION. Также убедитесь, что включена автоматическая компиляция и отключена оптимизация.

1_2NRAc0Rfs4MEAlcLb4RV6Q.png

Теперь перейдите обратно во вкладку RUN и выберите TOKEN.

1_HJqGrjiaLVKtSBQxKcb-HA.png

Затем нажмите Deploy, и почти готово! Появится всплывающее окно с вопросом, хотите ли вы подтвердить действие; нажмите кнопку confirm (подтвердить). Не беспокойтесь из-за фразы, что передается 0 ethereum, - так и должно быть.

Далее необходимо нажать на значок MetaMask во вкладке extensions (расширения) и нажать на кнопку Contract Deployment (развертывание контракта). Затем нажмите на View On Etherscan (просмотр на Etherscan).

1_-osf6_ChhWyLFzAcGPVP0g.png

Затем скопируйте ID контракта, выделенный ниже.

1_Tqksr-w70Rw8IMm2Lbu7EA.png
Нажмите кнопку COPY TO CLIPBOARD (Копировать в буфер обмена).

Вернитесь к MetaMask и нажмите menu, затем Add Token (добавить Токен).

1_xm8eooOGkJdn4JF1RDA5IA.png
1_ZkMxan1WloKQd5Z1JAm-sw.png

Добавьте все данные для своего токена. Адрес контракта – это идентификатор (ID), который вы только что скопировали.

1_tfwuECb_Qsc57dMflXPByg.png
1_tfwuECb_Qsc57dMflXPByg.png
1_eLx-D6-_B6GY6rK6OEdUPQ.png

Вы закончили! Теперь у вас есть полная сумма токенов, аккредитованная для вашего счета. Теперь ее можно отправлять кому-либо еще, используя MetaMask и некоторые другие кошельки.

Шаг 4 (необязательно)

В качестве заключительного шага вы можете поместить токен в основную сеть Ethereum, сделав его официальным токеном. Недостатком этого является то, что вы должны заплатить около 30 долларов США, чтобы сделать это. Все, что вам нужно сделать, это повторить шаг 3, но быть при этом в главной сети Ethereum вместо сети Ropsten.

Вывод

Это было обучающее пособие о том, как создать криптовалютный токен в сети Ethereum. Если у вас возникнут какие-либо ошибки, прокомментируйте их, и я постараюсь помочь их исправить. Просто чтобы внести ясность: это не криптовалюта. На самом деле, чтобы создать криптовалюту, у вас должен быть блокчейн, а это намного сложнее сделать. Но это хорошее начало, если вы намерены в дальнейшем переключиться на блокчейн и криптовалюты.

Категория: 
Tutorial
3
Ваша оценка: Нет Средняя: 3 (1 оценка)
90800 / 0
Аватар пользователя Daritas
Публикацию добавил: Daritas
Дата публикации: пн, 11/11/2019 - 13:56

Что еще почитать:

Комментарии:

Наталья Корсакова

зачем столько сложностей) зайдите на платформу www.decimalchain.com и создайте монету за 3 минуты))

чт, 10/22/2020 - 21:21

Каром

Здравствуйте. Меня зовут Каром я из Таджикистана и я очень серьёзно намерен создать собственную криптовалюту с поддержкой правительства страны (Таджикистан) у меня есть возможность побеседовать об этом с президентом нашей страны!
С кем я могу поговорить?
[email protected]

вт, 05/11/2021 - 12:22

Арни

Поговори с рукой.

пн, 05/17/2021 - 21:35