Если коротко: ERC-20 — это стандарт «обычных» взаимозаменяемых токенов (как деньги или баллы). ERC-721 — стандарт уникальных NFT (как «паспорт» у каждой вещи). ERC-1155 — стандарт «всё в одном»: один контракт может выпускать и взаимозаменяемые, и уникальные токены (удобно для игр, коллекций и массовых предметов).
Но на практике разница важнее, чем кажется. От стандарта зависит:
- как токен хранится и передаётся (балансами или «правом собственности» на конкретный ID);
- как устроены комиссии (часто ERC-1155 экономнее по сети, потому что поддерживает batch-переводы);
- какие ошибки «самые дорогие» (например, отправка NFT на адрес, который их не умеет принимать);
- какие кейсы проще делать без костылей (airdrops, игровые предметы, билеты, сертификаты, подписки).
Дальше — объяснение без заумных слов, но с достаточной точностью, чтобы вы понимали, что у вас в кошельке и как не наделать типичных ошибок.
С чего начать: что такое «стандарт токена» и зачем он нужен
Представьте, что блокчейн — это огромный город, а токены — это «предметы», которые люди передают друг другу. Чтобы все понимали друг друга, нужен общий язык: какие команды поддерживает предмет, как проверить, кому он принадлежит, как безопасно его передать.
Стандарт токена — это набор правил для смарт-контракта (программы в сети), который выпускает и обслуживает токены. Если контракт следует стандарту, то кошельки, биржи и приложения заранее знают:
- как показать баланс;
- как сделать перевод;
- как проверить владельца;
- как обработать подтверждение (approval) и списание (transferFrom).
В Ethereum и EVM-экосистеме самые распространённые стандарты — ERC-20, ERC-721 и ERC-1155. База про стандарты в целом есть в нашей вики: Стандарты токенов: как устроены token standards в Ethereum и других блокчейнах.
Главная идея в одной картинке (мысленной)
Можно запомнить так:
- ERC-20 — как деньги: любой рубль = любой рубль. Важна сумма.
- ERC-721 — как коллекционная карта с номером: важен конкретный экземпляр.
- ERC-1155 — как склад: там могут лежать и «пачки одинаковых предметов», и уникальные вещи — всё в одном месте.
Теперь разберём каждый стандарт.
ERC-20: «обычные токены» (взаимозаменяемые)
ERC-20 — это стандарт для взаимозаменяемых токенов (fungible). Взаимозаменяемый означает: один токен не отличается от другого токена того же контракта.
Примеры, которые проще всего понять:
- стейблкоины (условно «цифровые доллары»),
- токены бирж/протоколов,
- игровая валюта, баллы лояльности, «очки».
Как ERC-20 устроен технически — на пальцах
У ERC-20 нет «уникальных экземпляров». Есть только:
- балансы (сколько токенов у каждого адреса);
- разрешения (кому вы разрешили списывать ваши токены).
Если очень упрощать, внутри контракта лежит таблица: адрес → количество. Поэтому, когда вы переводите токены, у одного адреса число уменьшается, у другого увеличивается.
Какие функции важны в ERC-20 (без кода)
- balanceOf — посмотреть баланс.
- transfer — отправить токены напрямую.
- approve — выдать разрешение «списывать до N токенов».
- transferFrom — списать токены по разрешению (часто так работают DEX и приложения).
Почему это важно пользователю? Потому что когда вы подключаете кошелёк к dApp и нажимаете «Approve», вы фактически даёте приложению право тратить ваши токены в пределах лимита. Это не «перевод», но это ключевой шаг перед обменом или депозитом.
Если хотите подробнее про ERC-20 как стандарт — отдельная страница в вики: ERC-20 — стандарт взаимозаменяемых токенов в Ethereum.
Где чаще всего используют ERC-20
- DeFi: обмены, пулы ликвидности, кредитование, фарминг.
- Платежи: когда нужен «денежный» токен, который легко делить на части (дробность).
- Токеномика проектов: комиссии, управление, награды, стимулы.
Типичные ошибки с ERC-20
- Отправка токена в неправильной сети (например, на адрес в другой сети), а потом попытка искать его «в Ethereum». Это не про стандарт, а про сеть.
- Выдача бесконечного approve непонятному контракту и забывание про него.
- Перевод токена на контракт/адрес, который не умеет работать с токеном (реже, но бывает — особенно в старых интерфейсах).
ERC-721: NFT (уникальные токены)
ERC-721 — стандарт невзаимозаменяемых токенов (NFT). Здесь каждый токен уникален, потому что у него есть свой tokenId — уникальный номер внутри контракта.
Важно: многие думают, что NFT = «картинка». На самом деле NFT — это запись о праве владения определённым ID в определённом контракте. Картинка/метаданные — это уже то, на что этот NFT ссылается.
Как ERC-721 устроен — на пальцах
Внутри контракта есть другая таблица: tokenId → владелец. То есть вопрос не «сколько у тебя токенов», а «какие конкретно ID принадлежат тебе».
Плюс есть метаданные (обычно через tokenURI): ссылка на JSON-файл, где описано, что это за NFT (название, атрибуты, ссылка на изображение). Но это уже «надстройка», а базовая суть — владение ID.
Где используют ERC-721
- Коллекционные NFT: искусство, аватары, карточки.
- Уникальные цифровые предметы: редкий скин, уникальный артефакт, персонаж.
- Сертификаты: «уникальный документ» с доказуемым владельцем.
- Билеты (в некоторых моделях): уникальный билет с историей перепродаж.
Страница-база по ERC-721: ERC-721 — стандарт NFT-токенов в Ethereum.
Почему ERC-721 часто дороже в операциях
ERC-721 обычно «тяжелее», чем ERC-20, потому что:
- каждый перевод — это перевод конкретного tokenId;
- часто взаимодействие затрагивает метаданные/дополнительные проверки (зависит от реализации);
- массовые операции (например, раздача тысяч NFT) могут быть затратнее без оптимизаций.
Типичные ошибки с NFT (ERC-721)
- Отправка NFT на биржевой депозит, который принимает только ERC-20. В итоге NFT может «потеряться» для пользователя (хотя технически он на адресе биржи).
- Покупка «похожего» NFT в другом контракте (фейковая коллекция). В кошельке оно выглядит как «похоже», но юридически/технически это другой контракт.
- Слепой approve для маркетплейса/контракта без понимания, что вы отдаёте право на перевод NFT.
ERC-1155: «гибрид» — токены и NFT в одном контракте
ERC-1155 придумали как более удобную и экономную модель для случаев, где у вас много разных предметов, и часть из них одинаковые (как «ресурсы в игре»), а часть уникальные (как редкие артефакты).
В ERC-1155 ключевая идея: один контракт — много типов токенов, и каждый тип определяется своим ID. При этом один ID может быть:
- взаимозаменяемым (как ERC-20-логика: «у каждого адреса есть количество»),
- или уникальным/почти уникальным (как NFT-логика: «у этого ID может быть 1 штука», или очень ограниченное количество).
Почему ERC-1155 считают более «практичным»
У него есть фишка, которая важна и бизнесу, и пользователям: batch-операции — можно отправить сразу несколько разных токенов (и/или количества) за одну транзакцию.
Простой пример: игра. Вы хотите перевести другу:
- 100 единиц дерева (одинаковый ресурс),
- 20 единиц железа (одинаковый ресурс),
- 1 уникальный меч (редкий предмет).
Если всё это сделано на ERC-1155, можно сделать одну операцию вместо трёх отдельных контрактов/транзакций. Это экономит комиссии и делает UX человеческим.
Подробная страница по ERC-1155 — в конце в «Полезных ссылках», чтобы не перегружать текст ссылками.
Где ERC-1155 встречается чаще всего
- Игры и метавселенные: предметы, ресурсы, скины, внутриигровые билеты.
- Коллекции с массовыми выпусками: когда у вас «партии» одинаковых токенов, но они всё равно NFT-типа.
- Мерч/доступы/права: доступ к событиям, подпискам, «пропускам» с разными уровнями.
Сравнение по сути: что именно отличает ERC-20, ERC-721, ERC-1155
| Критерий | ERC-20 | ERC-721 | ERC-1155 |
|---|---|---|---|
| Что это | Взаимозаменяемые токены | Уникальные NFT | Мульти-токен: и «пачки», и уникальные |
| Как хранится | Баланс адреса (сколько токенов) | Владелец tokenId (какой ID у кого) | Баланс адреса по ID (у кого сколько токенов типа X) |
| Дробность | Да (можно делить на части) | Нет (обычно 1 tokenId = 1 единица) | Зависит от конкретного ID (может быть «пачка») |
| Типичный кейс | Деньги/токены протоколов | Коллекционные NFT / уникальные вещи | Игровые предметы, массовые выпуски, доступы |
| Переводы пачкой | Нет (обычно один токен за раз) | Нет (обычно один tokenId за раз) | Да (batch-transfer) |
| Риск ошибок | Неверная сеть, approve, адрес | Отправка туда, где NFT не принимают; фейки коллекций | Путаница типов ID, неверная поддержка маркетплейсом/сервисом |
Как понять, что у вас за токен: быстрый чек-лист
Если вы открываете кошелёк и не понимаете, что именно держите, используйте простую логику:
- Если это «число» (например, 12.345) и вы можете отправить «часть» — чаще всего это ERC-20.
- Если это «предмет» с картинкой, названием и обычно без дробности — чаще всего ERC-721 (или ERC-1155, если указано количество).
- Если у предмета есть “Quantity” (количество) и он выглядит как NFT, но их может быть 5/10/100 — часто это ERC-1155.
Второй быстрый способ — открыть токен в эксплорере: там будет видно, какие события и интерфейсы поддерживает контракт. Но большинству пользователей достаточно логики выше.
Частые вопросы и «подводные камни»
NFT — это всегда ERC-721?
Нет. NFT могут быть и ERC-721, и ERC-1155. В ERC-1155 NFT часто выпускаются “партиями” (например, 10 одинаковых билетов одного типа), поэтому у них бывает количество.
Почему один и тот же проект может выпускать и ERC-20, и NFT?
Потому что это разные задачи. ERC-20 — для экономики (платежи, награды, управление). NFT — для уникальных прав/предметов (доступы, коллекции, игровые вещи). Это нормальная практика.
Что опаснее: approve для ERC-20 или approve для NFT?
Оба опасны, если вы выдаёте разрешение неизвестному контракту. Но психологически NFT-approve часто воспринимают легче (“ну это же один предмет”), хотя по факту вы можете дать право на перевод ваших NFT. Всегда проверяйте, кому и что вы разрешаете.
ERC-1155 «лучше» ERC-721?
Он не “лучше”, он удобнее для сценариев с большим количеством типов предметов и массовыми переводами. Для чисто коллекционных уникальных NFT ERC-721 остаётся простым и понятным стандартом.
Можно ли случайно «сжечь» токены неправильным переводом?
Да, риск есть: отправка на адрес/контракт, который не поддерживает приём нужного стандарта, или перевод в неправильной сети. Поэтому перед переводом проверяйте сеть, адрес и тип актива.
Вывод: как запомнить разницу навсегда
Запоминалка на 10 секунд:
- ERC-20 — токены-«деньги», важна сумма.
- ERC-721 — NFT-«паспорт предмета», важен конкретный ID.
- ERC-1155 — «склад» с разными предметами: и одинаковые пачки, и уникальные.
Если вы понимаете эту логику, вы уже на голову выше большинства новичков — и сильно реже попадаете в типичные ошибки, когда токен “исчез”, потому что его отправили не туда или не тем способом.
Технические нюансы: безопасность и газ
Ниже — сравнение по двум практичным вопросам, которые чаще всего «бьют по кошельку»: безопасность отправки и стоимость операций (газ). Это не теория — именно на этих местах люди чаще всего теряют NFT или переплачивают за массовые действия.
| Аспект | ERC-20 | ERC-721 | ERC-1155 |
|---|---|---|---|
| Безопасная отправка (safeTransferFrom) | Исторически нет (обычно transfer/transferFrom) |
Да (safeTransferFrom) |
Да (safeTransferFrom и safeBatchTransferFrom) |
| Защита от “немых” контрактов | Можно отправить токены на контракт, который не умеет их выводить — средства могут “застрять” | safeTransferFrom проверяет, что контракт-получатель поддерживает приём NFT (иначе транзакция откатится) |
Аналогично: safe-перевод проверяет, что контракт-получатель умеет принимать ERC-1155 (иначе откат) |
| Газ/комиссии: единичный перевод | Обычно самый экономный среди трёх (простая логика “баланс → баланс”) | Обычно дороже ERC-20 (владение конкретным tokenId + события/проверки) | Зависит от реализации, но чаще не дешевле ERC-20; выигрывает не в одиночных, а в массовых операциях |
| Газ/комиссии: массовые действия | Нет batch-операций: массовые раздачи/переводы обычно требуют много отдельных транзакций | Обычно тоже “по одному” токену за раз (массовые операции дороже) | Максимально эффективно: есть batch-переводы (несколько ID и количеств за одну транзакцию) |
| Что важно запомнить пользователю | ERC-20 можно “случайно” отправить туда, откуда никто не сможет вывести | Для NFT безопаснее использовать safeTransferFrom, особенно при отправке на контракты/биржи | ERC-1155 лучше всего подходит для “инвентаря” и массовых действий — дешевле и удобнее по газу |
- Поддержка safeTransferFrom критична для NFT (ERC-721 / ERC-1155): она снижает риск безвозвратной потери при отправке на контракт, который не умеет принимать токены.
- ERC-1155 выигрывает по газу, когда вы делаете массовые действия (batch-переводы/раздачи/перемещения инвентаря).
- Единичный перевод ERC-20 обычно дешевле единичного ERC-721 — это нормально, потому что модели хранения разные.
Эволюция стандартов: краткая история
Стандарты появлялись не «для красоты», а потому что реальная практика быстро показывала ограничения предыдущих решений.
- ERC-20 (2015) стал базовым стандартом для взаимозаменяемых токенов: он дал общий интерфейс “балансы + переводы + approve”. Но ERC-20 изначально не решал задачу уникальных активов и безопасного “получения” токенов контрактами.
- ERC-721 (2018) появился как ответ на потребность в уникальных токенах: у каждого NFT есть свой tokenId, а право собственности хранится как “ID → владелец”. Плюс появилась идея безопасной отправки NFT на контракты через safeTransferFrom.
- ERC-1155 (2018 → Final в 2019) родился из боли практики: держать “по контракту на каждый тип предмета” неудобно и часто дорого по газу. ERC-1155 сделал гибридную модель “много типов токенов в одном контракте” и добавил batch-операции, что резко улучшило экономику массовых действий (особенно в играх и коллекциях).
Комментариев нет