ERC-20 задаёт общий способ запроса и перевода балансов взаимозаменяемых токенов. Внутри одного токена единицы считаются взаимозаменяемыми. Стандарт определяет функции balanceOf, transfer и totalSupply, а также события переводов и разрешений.
Количества и десятичные знаки
Контракты ведут учёт целыми единицами. Если токен сообщает шесть десятичных знаков, отображаемые 1,5 токена соответствуют 1 500 000 базовых единиц. Точность меняет представление, а не экономическую ценность или долю владения. Название, тикер и число знаков необязательны в исходной спецификации, хотя широко реализованы.
Разрешения на расходование
approve устанавливает разрешённую сумму для получателя полномочий, а transferFrom позволяет ему перемещать токены по правилам разрешения. Одобрение 100 токенов само по себе не переводит 100 токенов: оно создаёт право расходования. Большой лимит может подвергнуть риску будущие поступления, если уполномоченный окажется злоумышленником или будет взломан.
Что стандарт не определяет
Интерфейс не требует фиксированного предложения и не запрещает административный контроль. Токен может добавлять выпуск, приостановку и другие ограничения. Сеть и адрес контракта важнее тикера. ETH сам по себе не является ERC-20; газ в Ethereum обычно оплачивается ETH, в том числе при переводе ERC-20.