Что такое токен ERC-20

В чате «ERC-20» часто значит «монета, которую потом можно будет продать». В контракте это список балансов: имя, короткий символ, десятичность и объём. Кошельки и другие контракты читают список через один и тот же набор функций. Цены в списке нет, и в каталог токен сам не попадает. Этот текст не финансовая рекомендация.

Future Constructor выпускает такой контракт из вашего кошелька. Комиссия сервиса — $6 в Ethereum и $3 в Polygon, BNB Chain, Arbitrum и Base. Газ отдельно, и он меняется. Учебной сети нет: подпись идёт в живой сети и она окончательна.

Что такое ERC-20

ERC-20 — общий интерфейс, а не монета сама по себе. Кошелёк задаёт любому такому контракту одни и те же вопросы: как тебя зовут, сколько единиц существует, сколько лежит на этом адресе и переведёшь ли единицы, если попросить. Ethereum, Polygon, BNB Chain, Arbitrum и Base пользуются этим интерфейсом. Контракт, который вы выпускаете, всё равно живёт в той одной сети, где вы подписали.

Слово «токен» здесь — единицы, которые считает контракт. Это не цена, не доля в компании и не покупатель. Если нужна одна фраза для людей, которые будут держать единицы, напишите, что они с ними делают. Если в фразе будущая цена — перепишите. Контракт такое обещание не хранит, и эта страница его не даёт.

Знакомое имя не делает контракт известным активом. Личность токена — сеть плюс адрес. Два контракта могут носить один символ и не иметь друг к другу отношения.

Стандартные функции

Эти функции не набирают руками. Их вызывает кошелёк. Вместе они и есть открытая поверхность обычного ERC-20. Суммы — целые числа минимальных единиц, а не то число, которое человек произносит вслух.

ФункцияЧто делает
nameВозвращает имя, которое вы подписали.
symbolВозвращает короткий символ, который вы подписали.
decimalsВозвращает, сколько знаков стоит справа от запятой.
totalSupplyВозвращает, сколько минимальных единиц существует.
balanceOfВозвращает, сколько единиц лежит на одном адресе.
transferПереводит единицы с адреса вызывающего на другой адрес.
approveРазрешает другому адресу перевести не больше этого числа ваших единиц.
allowanceВозвращает, сколько единиц ещё покрывает это разрешение.
transferFromПереводит единицы по разрешению из approve.

approve — функция, которую пропускают. Другой контракт не заберёт единицы с вашего адреса, пока вы не поставили лимит. Лимит — число сырых единиц, не сумма в долларах. Адрес и размер выбираете вы. Ничего не двигается, пока тот адрес не вызовет transferFrom. Лимит на адрес, который вы не узнаёте, всё равно можно потратить.

Десятичность и объём

Форма спрашивает целое число токенов и десятичность от 0 до 30. Контракт хранит объём в минимальных единицах: умножает введённое число на 10 в степени десятичности. Обычно ставят 18, и форма открывается с этим значением. Десятичность 0 значит, что дробную часть одного токена контракт не представит.

Вы вводитеДесятичностьЕдиницы в контракте
1000181000 × 10^18
100061000 × 10^6
100001000

Кошелёк, который читает decimals, делит баланс перед показом: 1000 при десятичности 18 выглядит как 1000. Экран, который печатает сырое целое, показывает гораздо более длинное число. Объём не вырос. Экран пропустил десятичность.

transfer считает в тех же сырых единицах. Вызов, который отправляет 1 при десятичности 18, двигает 0,000000000000000001 токена, а не один токен. Кошелёк переводит число, которое вы ввели. Скрипт, который забыл про перевод, — нет.

Одно и то же введённое число при разной десятичности — не один размер в сети. 1 при десятичности 18 — это 10^18 единиц. 1 при десятичности 6 — это 10^6 единиц. Десятичность выбирают до подписи. Обычный контракт потом её не меняет.

Если умножение не помещается в число контракта, выпуск не проходит. Так обычно случается, когда огромный объём сочетают с высокой десятичностью. Форма ждёт человеческое число, а не уже умноженное целое.

Что входит в токен Constructor

Форма создания выпускает этот обычный токен. Вы задаёте имя, символ, десятичность, объём и адрес, который получит объём. Код вы не пишете. Имя и символ — латиница и цифры. Символ — от 2 до 11 знаков. Они остаются теми, что вы подписали.

Обычный выпуск — ERC-20 с фиксированным объёмом в одной сети. Цена, пул, каталог, дополнительный выпуск и независимый аудит в этот контракт не входят.Что входит в обычный токенВходитНе входитИмя, символ, десятичностьОбъём выпускается один разtransfer и approveОдна сеть, один адресЦенаПул или каталогДополнительный выпускНезависимый аудит
Обычный выпуск — ERC-20 с фиксированным объёмом в одной сети. Цена, пул, каталог, дополнительный выпуск и независимый аудит в этот контракт не входят.

Весь объём выпускается один раз, на адрес в поле владельца. Поле с самого начала заполнено кошельком, который подписывает. В обычном контракте это получатель объёма, а не роль, которая сможет выпустить токены ещё раз. Дополнительного выпуска нет, сжигания нет, паузы нет, и с перевода комиссия не снимается. Переводы другим адресам меняют, кто держит единицы.totalSupply от этого не меняется.

Поля формы токена: название, символ, десятичность и общее предложение, со значениями по умолчанию.
Обычная форма создания: название, символ, десятичность и объём. Это значения по умолчанию в продукте, не выпущенный токен. Поле владельца ниже — адрес, который получит этот объём.

О коде: построено на OpenZeppelin Contracts v5; исходный код фабрики верифицирован на Sourcify; независимого аудита не было. Верификация на Sourcify значит, что опубликованный исходник фабрики совпадает с кодом в сети. О цели вашего токена она ничего не говорит. Риск остаётся на вас.

Отдельная расширенная форма может добавить функции, которых в обычном токене нет: выпуск администратором, сжигание администратором, паузу переводов, комиссию с перевода или разделение начального объёма. Это другой код, и это не выпуск за $6 или $3, о котором здесь речь. Комиссия той формы — сумма, которую форма показывает до подписи. Эта страница её не называет.

На обычной форме платят два разных счёта. Комиссия сервиса — $6 в Ethereum и $3 в Polygon, BNB Chain, Arbitrum и Base. Она не возвращается. Форма переводит сумму в долларах в монету сети через Chainlink. Газ — плата самой сети, кошелёк показывает его ещё раз в момент подписи. Комиссия сервиса $3 не задаёт газ и не выбирает сеть за вас. Какая это сеть и какой монетой платится газ — в тексте как выбрать сеть.

После выпуска

На руках остаётся адрес контракта в той одной сети, которую вы выбрали. Объём лежит на адресе, который вы указали. Дальше переводы идут в этот контракт токена. Через фабрику они больше не проходят.

У задеплоенного токена есть публичная страница: сеть, адрес контракта и объём. Это не цена и не листинг. Путь страницы — /ru/token/{chain}/{address} и /en/token/{chain}/{address}. В кошелёк токен добавляют по этому адресу, и кошелёк должен стоять в той же сети. Пока этого нет, кошелёк может ничего не показать, хотя объём в контракте уже лежит.

Людям отправляют название сети вместе с адресом. Имени недостаточно. То же имя в другой сети было бы другим контрактом: другая подпись, другая комиссия сервиса и другой газ.

Пул, каталог и заявка на биржу — шаги, которые вы делаете сами и позже, если они входят в план. Выпуск их не подаёт, и эта страница не называет площадку. Маршрут из десяти пунктов, от фразы о цели до адреса: как запустить токен с нуля.

Частые ошибки

  1. Читать введённое число как сырой счётчик единиц. Сеть хранит объём × 10^десятичность.
  2. Поставить десятичность 0 и ждать, что уйдёт дробная часть одного токена.
  3. Отправить из скрипта 1 и ждать целый токен, когда десятичность равна 18.
  4. Ждать, что после обычного выпуска изменятся имя, символ, десятичность или объём.
  5. Принять комиссию сервиса $6 или $3 за газ. Газ отдельно, и сеть за $3 всё равно живая.
  6. Отправить в чат имя без сети и без адреса.
  7. Считать, что один выпуск существует во всех пяти сетях. Вторая сеть — второй контракт.
  8. Поставить approve на адрес, которым вы не собирались пользоваться, или ввести сид-фразу на сайт или в личный чат. Constructor её не просит.
  9. Описывать токен будущей ценой. В контракте цены нет. Это не финансовая рекомендация.

Куда дальше

Остальные материалы лежат в разделе Learn. До выбора одной из пяти сетей откройте как выбрать сеть. Когда фраза о цели уже есть — как запустить токен с нуля. Что незнакомый человек сверяет по адресу — в тексте как вызвать доверие к своему новому токену.

Живые страницы сетей:

Когда имя, десятичность, объём и сеть уже решены, откройте форму.

Создать токен

Вопросы

ERC-20 бывает только в Ethereum?

Интерфейс написан для Ethereum. Те же функции работают в других сетях EVM. Future Constructor выпускает контракт в Ethereum, Polygon, BNB Chain, Arbitrum и Base. Сам контракт всё равно живёт только в одной из них.

Почему кошелёк показывает не то число, что сырой баланс?

Контракт хранит целые минимальные единицы. Кошелёк делит их на 10 в степени десятичности и уже потом показывает баланс. При десятичности 18 сырой баланс 1000 × 10^18 выглядит как 1000.

Можно ли после обычного выпуска поменять имя или объём?

Нет. Обычный контракт выпускает объём один раз, на адрес, который вы указали. В нём нет функции, которая довыпустит токены, сожжёт их, остановит переводы или изменит имя, символ и десятичность.

Выпуск ERC-20 назначает цену или ставит токен в каталог?

Нет. Выпуск создаёт контракт и публичную страницу: сеть, адрес и объём. Пул, каталог и заявку на биржу, если они входят в план, делаете вы сами и позже. Этот текст не финансовая рекомендация.

Зачем нужна функция approve?

approve разрешает другому адресу перевести не больше указанного числа ваших единиц. Число — в сырых единицах, не в долларах. Ничего не уходит, пока тот адрес не вызовет transferFrom. Лимит ставьте только адресу, которым вы сами собираетесь пользоваться.

Был ли независимый аудит?

Построено на OpenZeppelin Contracts v5; исходный код фабрики верифицирован на Sourcify; независимого аудита не было. Риск остаётся на вас.

Если выпустить в одной сети, тот же токен появится в остальных?

Нет. Вторая сеть — второй контракт: ещё одна подпись, ещё одна комиссия сервиса, ещё один газ и другой адрес. В чат отправляют название сети вместе с адресом.

Эта страница — финансовая рекомендация?

Нет. Здесь разобрано, как обычный ERC-20 считает балансы. Текст не говорит, сколько токен будет стоить, и не советует его выпускать.

Future Constructor — технический инструмент. Он выпускает обычный ERC-20 из вашего кошелька: комиссия сервиса $6 в Ethereum и $3 в Polygon, BNB Chain, Arbitrum и Base. Газ сети оплачивается отдельно и меняется. Контракты собраны на OpenZeppelin Contracts v5.4.0 и независимый аудит не проходили. Этот текст не является финансовой, инвестиционной или юридической рекомендацией. За сценарий токена и за законы вашей страны отвечаете вы. Комиссия сервиса не возвращается. Транзакции окончательны.