ERC-20 — что это простыми словами | IceAI

ERC-20

"ERC-20 — стандарт токенов в сети Ethereum: USDT, UNI и LINK живут по одним правилам. Как устроен контракт, зачем нужен approve и от чего зависит комиссия."

Обновлено: 2026-09-15

Я выводила USDT из биржи в сеть Ethereum и заплатила 3,4 $ комиссии. Тот же перевод в сети Tron стоил бы около 0,9 $. Монета одна, тикер один, а правила и цена разные: это два разных токена с одинаковым названием — ERC-20 и TRC-20.

ERC-20 — технический стандарт токенов в сети Ethereum. Это список обязательных функций, которые должен уметь смарт-контракт, чтобы кошельки, биржи и DeFi-протоколы работали с токеном без отдельной интеграции под каждый из них.

ERC-20 токен ERC-20: от выпуска до свапа 1 Выпуск mint в контракте 2 Балансы у каждого адреса 3 approve лимит на списание 4 Свап transfer или DEX один интерфейс — тысячи токенов кошелёк и биржа понимают любой

Что задаёт стандарт

Стандарт описывает не токен, а его интерфейс. Если в контракте есть функции transfer, balanceOf и approve с правильными параметрами, токен автоматически считается ERC-20. Кошельку не нужно спрашивать разрешения у разработчика: он просто вызывает знакомые функции по адресу контракта.

Отсюда и главное удобство. MetaMask показывает сотни токенов в одном списке, Uniswap торгует любой парой без правок в коде. Стандарт предложил Фабиан Фогельшталлер в 2015 году, закрепили его как EIP-20 в 2017-м.

Обязательные функции

Их немного: totalSupply (общий выпуск), balanceOf (баланс адреса), transfer (перевод), transferFrom (списание с чужого адреса), approve и allowance (лимит на списание), плюс name, symbol и decimals. Ещё два события — Transfer и Approval — по ним кошельки и биржи узнают об операциях.

decimals важнее, чем кажется. У USDT — 6 знаков, у большинства токенов — 18. В блокчейне хранятся целые числа, поэтому 1 USDT записан как 1000000, а 1 UNI — как 1000000000000000000. Отсюда ошибки при ручном расчёте сумм.

approve: лимит на списание

Самый неочевидный пункт. Чтобы DEX или другой контракт списал ваши монеты, вы даёте разрешение approve с лимитом. Многие интерфейсы по умолчанию ставят максимум uint256 — фактически бесконечный лимит. Если в контракте найдут дыру, он вытащит всё, что вы разрешили.

Я раз в месяц проверяю выданные разрешения и отзываю лишние: это занимает две минуты и стоит пару долларов газа за одну транзакцию.

Почему у одного USDT два адреса

Tether работает больше чем в десяти сетях: ERC-20 в Ethereum, TRC-20 в Tron, BEP-20 в BNB Chain. Это разные контракты со своими адресами, и балансы между ними не связаны никак. Отправить ERC-20 USDT на адрес Tron нельзя: монеты уйдут в никуда, вернуть их не сможет никто, включая поддержку биржи.

Поэтому перед выводом сверяйте три вещи: сеть в бирже, сеть у получателя и адрес контракта токена. Комиссия тоже разная: перевод ERC-20 стоит 3–8 $, TRC-20 — около 1 $.

Коротко

  • ERC-20 — стандарт интерфейса токенов в Ethereum, а не отдельная монета.
  • Любой кошелёк и DEX работают с токеном автоматически, потому что функции одинаковые.
  • decimals различаются: 6 у USDT, 18 у большинства токенов.
  • approve — разрешение на списание ваших монет: ставьте лимит равный сумме сделки, а не максимум.
  • Один тикер в разных сетях — это разные токены: сверяйте адрес контракта перед переводом.

Остались вопросы? Спросите ИИ-ассистента — объяснит другими словами.

Спросить