Купить крипто
Рынки
Спот
ФьючерсыBTC
Сбережения
Центр событий
Хаб наград
Еще
Фестиваль с 0 комиссией
ERC-721: Что такое ERC-721?ERC-721 — это стандарт токенов Ethereum для создания и управления невзаимозаменяемыми токенами, или NFT.У каждого токена ERC-721 есть уникальный идентификатор (token ID), который отлERC-721: Что такое ERC-721?ERC-721 — это стандарт токенов Ethereum для создания и управления невзаимозаменяемыми токенами, или NFT.У каждого токена ERC-721 есть уникальный идентификатор (token ID), который отл

ERC-721

2026/10/13 15:31
#Intermediate
Humanity
H$0.05588-0.62%
PX
PX$0.0129+0.78%
AINFT
NFT$0.0000002379-0.66%
TokenFi
TOKEN$0.001996-0.05%
SPACE ID
ID$0.03591-1.88%

Что такое ERC-721?

ERC-721 — это стандарт токенов Ethereum для создания и управления невзаимозаменяемыми токенами, или NFT.

У каждого токена ERC-721 есть уникальный идентификатор (token ID), который отличает его от всех остальных токенов, управляемых тем же смарт-контрактом.

Официальная спецификация ERC-721 устанавливает стандартизированные правила учета прав собственности, передачи токенов и предоставления другим адресам разрешения на управление NFT.

ERC-721 относится к категории окончательных стандартов Ethereum Request for Comments.

Этот стандарт был создан, поскольку стандарты взаимозаменяемых токенов не позволяют корректно представлять активы, которые необходимо идентифицировать и отслеживать по отдельности.

Токен ERC-721 может представлять цифровой коллекционный предмет, игровой объект, удостоверение участника, виртуальную недвижимость, билет на мероприятие, финансовую позицию, актив, аналогичный доменному имени, или запись, связанную с физическим предметом.

Стандарт определяет правила владения и передачи в блокчейне, но сам по себе не устанавливает авторские права, юридическое право собственности, подлинность, финансовую ценность или права на внешний актив.

Что означает ERC?

ERC — это сокращение от Ethereum Request for Comments.

ERC описывает технический стандарт, которому могут следовать приложения и смарт-контракты для повышения совместимости в экосистеме Ethereum.

ERC-721 — это идентификационный номер стандарта невзаимозаменяемых токенов.

Этот номер не описывает предложение токена, его цену, адрес блокчейна или дату выпуска.

Контракт, реализующий ERC-721, может включать дополнительные расширения и пользовательские функции, если его обязательное поведение остается совместимым со стандартом.

Зачем был создан ERC-721?

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

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

ERC-721 предоставляет кошелькам и приложениям общий способ определения владельца каждого уникального токена.

Он также стандартизирует переводы, разрешения, права операторов и журналы событий, связанных с владением.

Без общего стандарта для каждого NFT-контракта могла бы потребоваться отдельная интеграция.

Общие функции позволяют универсальным кошелькам, обозревателям блокчейна, индексаторам, играм, протоколам кредитования и другим криптоприложениям взаимодействовать со множеством NFT-коллекций.

Как работает ERC-721

Смарт-контракт ERC-721 хранит или рассчитывает владельца, связанного с каждым действительным token ID.

Контракт также отслеживает, сколько NFT из данной коллекции принадлежит каждому адресу.

При авторизованной передаче контракт удаляет сведения о владении у отправителя и присваивает токен получателю.

Контракт генерирует стандартизированное событие

Transfer
, чтобы внешние приложения могли отслеживать это изменение.

Владелец может разрешить одному адресу передать конкретный NFT или предоставить оператору право управлять всеми NFT, которыми владелец владеет в рамках этого контракта.

Все переводы и разрешения должны соответствовать правилам авторизации, заложенным в развернутый смарт-контракт.

Узлы Ethereum выполняют транзакцию и проверяют, что состояние владения после нее соответствует правилам контракта и протокола.

Что такое token ID?

Token ID — это беззнаковое целое число, которое уникально идентифицирует один NFT в рамках контракта ERC-721.

Один и тот же token ID может существовать в нескольких разных контрактах, не обозначая один и тот же актив.

Таким образом, NFT идентифицируется сочетанием сети блокчейна, адреса контракта и token ID.

Например, token ID 50 в одном контракте никак не связан с token ID 50 в другом контракте.

Нумерация token ID не обязательно начинается с нуля или продолжается последовательно.

Коллекция может использовать последовательные или случайно назначенные ID, закодированные идентификаторы или другую систему, поддерживаемую контрактом.

Приложениям следует запрашивать данные у контракта, а не считать, что каждому номеру в заданном диапазоне соответствует существующий NFT.

Почему ERC-721 — стандарт для невзаимозаменяемых токенов?

Каждый токен ERC-721 учитывается как отдельный объект в блокчейне.

Два NFT из одной коллекции могут различаться метаданными, историей, свойствами, редкостью и рыночной стоимостью.

Владение одним token ID не дает владельцу права собственности на другой token ID.

Стандартный токен ERC-721 передается целиком, а не в виде дробного количества.

Для дробного экономического владения требуется отдельный смарт-контракт или структура токена за пределами основного стандарта ERC-721.

Невзаимозаменяемость двух NFT не гарантирует различия их визуального содержимого: разные token ID могут ссылаться на похожие или идентичные метаданные.

Основные функции ERC-721

Основной стандарт включает функции проверки владения, передачи NFT и управления разрешениями на передачу.

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

balanceOf
,
ownerOf
,
transferFrom
, две версии
safeTransferFrom
,
approve
,
getApproved
,
setApprovalForAll
и
isApprovedForAll
.

ERC-721 также использует обнаружение интерфейсов ERC-165.

Стандарт не требует наличия публичной функции выпуска (mint), публичной функции сжигания (burn), механизма продажи, системы роялти, максимального предложения или фиксированной политики метаданных.

Эти функции зависят от конкретной реализации или отдельных расширений.

Функция balanceOf

Функция

balanceOf
возвращает количество NFT, которыми адрес владеет в рамках одного контракта ERC-721.

Если адресу принадлежат token ID 8, 19 и 250 из одной коллекции, его баланс равен трем.

Возвращаемое значение не показывает, какими именно token ID владеет адрес.

Функция также не сообщает рыночную стоимость этих NFT.

Согласно стандарту запрос баланса нулевого адреса должен завершаться ошибкой.

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

Функция ownerOf

Функция

ownerOf
возвращает адрес, который в данный момент указан владельцем конкретного token ID.

Запрос для несуществующего или недействительного токена должен завершаться ошибкой.

Владелец действительного токена не может быть нулевым адресом.

Адрес, возвращаемый функцией

ownerOf
, обладает основными правами на ончейн-владение и передачу, определенными контрактом.

Эта запись в блокчейне сама по себе не подтверждает владение авторскими правами, товарными знаками, физической собственностью или договорными преимуществами.

Внешние права должны устанавливаться юридическими условиями проекта и применимым законодательством.

Функция transferFrom

Функция

transferFrom
передает NFT от текущего владельца другому адресу.

Вызывающим должен быть владелец, адрес с разрешением на этот токен или оператор, авторизованный владельцем.

Указанный отправитель должен совпадать с текущим владельцем, записанным в контракте.

Адрес получателя не может быть нулевым.

Функция не проверяет, умеет ли принимающий смарт-контракт управлять NFT.

Если передать NFT несовместимому контракту с помощью

transferFrom
, токен может стать недоступным.

Если получателем является контракт, обычно предпочтительнее безопасная передача.

Функции safeTransferFrom

ERC-721 включает две версии

safeTransferFrom
.

Одна версия принимает отправителя, получателя и token ID.

Другая также принимает поле bytes с данными приложения.

Обе версии выполняют стандартные проверки владения и авторизации.

Если получателем является смарт-контракт, контракт NFT вызывает функцию получателя

onERC721Received
.

Получатель должен вернуть требуемый селектор, иначе вся передача отменяется.

Такая проверка снижает вероятность случайной отправки NFT в контракт, который не может корректно его принять.

Она не гарантирует безопасность получателя и не подтверждает, что позднее NFT можно будет вывести.

Что такое получатель ERC-721?

Получатель ERC-721 — это смарт-контракт, реализующий функцию

onERC721Received
.

Обратный вызов получает сведения об операторе, предыдущем владельце, token ID и необязательных прикрепленных данных.

Совместимый получатель возвращает ожидаемый селектор, обычно представленный как

0x150b7a02
.

Неверное возвращаемое значение или отмененный обратный вызов приводят к неудаче безопасной передачи.

Актуальная документация по реализации ERC-721 включает интерфейс получателя и базовый вспомогательный контракт для контрактов, которым нужно принимать NFT.

Перед записью депозита или предоставлением преимущества получателю следует проверить NFT-контракт, вызвавший обратный вызов.

Разрешения ERC-721

Разрешения ERC-721 позволяют владельцу NFT делегировать право на передачу, не передавая право собственности немедленно.

Разрешение для конкретного токена распространяется на один token ID.

Разрешение оператору распространяется на все NFT, которыми один адрес владеет в рамках данного контракта.

Разрешения записываются в блокчейн и могут использоваться без дополнительной подписи владельца, пока остаются действительными.

Пользователям следует считать запросы на разрешение для NFT чувствительными финансовыми полномочиями.

Разрешение ненадежному адресу может дать ему возможность передать ценные NFT.

Функция approve

Функция

approve
разрешает одному адресу передать конкретный token ID.

Обычно такое разрешение может предоставить владелец или оператор, уполномоченный на всю коллекцию.

Одобренный адрес не становится владельцем NFT.

Разрешение для конкретного токена сбрасывается при передаче NFT.

Разрешение также можно отменить, указав в качестве одобренного адреса нулевой адрес.

Перед подписанием транзакции владельцу следует проверить одобренный адрес и token ID.

Функция getApproved

Функция

getApproved
возвращает адрес, которому выдано разрешение на конкретный действительный NFT.

Если разрешения для конкретного токена нет, функция обычно возвращает нулевой адрес.

Результат не включает права операторов на всю коллекцию.

Приложение, проверяющее возможность аккаунта передать NFT, должно также учитывать функцию

isApprovedForAll
.

Функция setApprovalForAll

Функция

setApprovalForAll
предоставляет или отзывает право оператора на всю коллекцию.

Одобренный оператор может передать каждый NFT, которым владелец на данный момент владеет в рамках этого контракта.

Разрешение может также распространяться на NFT той же коллекции, которые владелец получит позднее.

Такое разрешение часто используется, когда приложению необходимо управлять несколькими NFT.

Оно значительно шире разрешения на один token ID.

Пока разрешение действует, злоумышленник-оператор может вывести все затронутые NFT.

Отключение кошелька от веб-сайта не отменяет разрешение, записанное в блокчейне.

Функция isApprovedForAll

Функция

isApprovedForAll
показывает, уполномочен ли оператор управлять NFT владельца в рамках одной коллекции.

Функция возвращает значение

true
или
false
.

Разрешение в одном контракте ERC-721 не дает права управлять NFT в другом контракте.

Пользователям следует проверять активные разрешения операторов и отзывать те, которые больше не нужны.

События ERC-721

ERC-721 определяет события

Transfer
,
Approval
и
ApprovalForAll
.

Эти журналы событий помогают кошелькам, обозревателям блокчейна, индексаторам данных и приложениям отслеживать активность NFT.

После успешного выполнения смарт-контракта события сохраняются в квитанциях транзакций.

Событие следует интерпретировать с учетом контракта, который его создал.

Злоумышленный контракт может создавать события с привычными названиями, не представляя подлинную NFT-коллекцию.

Событие Transfer

Событие

Transfer
записывает предыдущего владельца, нового владельца и token ID.

При обычной передаче NFT используются ненулевые адреса отправителя и получателя.

Выпуск обычно отображается как передача от нулевого адреса первому владельцу.

Сжигание обычно отображается как передача от владельца нулевому адресу.

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

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

События Approval и ApprovalForAll

Событие

Approval
фиксирует разрешение для конкретного NFT.

Событие

ApprovalForAll
фиксирует включение или отключение полномочий оператора на всю коллекцию.

Эти события не свидетельствуют об изменении владельца NFT.

Мониторинг разрешений помогает пользователям и системам безопасности обнаруживать неожиданные права доступа.

Отзыв разрешения не отменяет переводы, выполненные, пока оно действовало.

Обнаружение интерфейсов ERC-165

Каждый совместимый с ERC-721 контракт должен поддерживать обнаружение интерфейсов ERC-165.

Стандарт ERC-165 определяет функцию

supportsInterface
.

ID основного интерфейса ERC-721 —

0x80ac58cd
.

Совместимый контракт должен возвращать

true
при запросе о поддержке этого идентификатора.

У необязательных расширений отдельные ID интерфейсов.

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

Заявление контракта о поддержке интерфейса не доказывает правильность или безопасность его реализации.

Метаданные ERC-721

ERC-721 включает необязательное расширение метаданных.

Расширение добавляет функции

name
,
symbol
и
tokenURI
.

ID интерфейса ERC-165 для этого расширения —

0x5b5e139f
.

Название и символ коллекции выбирает разработчик контракта, и их уникальность не гарантируется.

Скопированное название или символ не превращают контракт в часть оригинальной коллекции.

Основным техническим идентификатором остается адрес контракта.

Как работает tokenURI

Функция

tokenURI
возвращает URI, связанный с действительным token ID.

Обычно URI указывает на JSON-документ с метаданными: названием для отображения, описанием, изображением, анимацией и характеристиками.

Метаданные могут храниться на обычном сервере, в децентрализованной сети хранения данных или непосредственно в блокчейне.

Стандарт ERC-721 допускает изменение метаданных.

Если это допускают реализация и система хранения, проект может обновить URI, изменить указанный файл или изменить содержимое, размещенное по внешнему адресу.

Пользователям следует выяснить, можно ли изменять метаданные, хранятся ли они постоянно и контролирует ли их администратор.

Владение NFT автоматически не сохраняет внешнее изображение, если хостинг-сервис прекратит работу.

События обновления метаданных

Сам ERC-721 не предусматривает стандартизированное событие для каждого изменения метаданных.

Необязательное расширение ERC-4906 для обновления метаданных добавляет события

MetadataUpdate
и
BatchMetadataUpdate
.

Эти события сообщают приложениям, что необходимо получить обновленные метаданные одного токена или диапазона token ID.

ID интерфейса ERC-4906 —

0x49064906
.

События обновления метаданных упрощают синхронизацию, но не гарантируют точность или неизменность новых метаданных.

Перечисление токенов ERC-721

Необязательное расширение для перечисления позволяет получать через ончейн-функции сведения о предложении NFT и списках принадлежащих владельцам токенов.

ID его интерфейса —

0x780e9d63
.

Расширение добавляет функции

totalSupply
,
tokenByIndex
и
tokenOfOwnerByIndex
.

Функция

totalSupply
сообщает количество действительных NFT, отслеживаемых контрактом в данный момент.

Функции индексации позволяют получать token ID из коллекции или из списка активов одного владельца.

Перечисление требует дополнительных операций записи в хранилище и увеличивает комиссию за газ.

Согласно актуальным рекомендациям по реализации, многие контракты не включают это расширение из-за связанных с ним накладных расходов.

Вместо этого офчейн-приложения могут восстановить данные о владении, индексируя события

Transfer
.

Выпуск токенов ERC-721

Выпуск создает новый действительный token ID и назначает ему первого владельца.

Основной стандарт ERC-721 не определяет, кто может выпускать токены и как должен запрашиваться выпуск.

Коллекция может разрешать публичный выпуск, ограничивать его авторизованными ролями, требовать оплату, использовать списки разрешенных адресов или создавать все NFT при развертывании контракта.

При выпуске обычно генерируется событие

Transfer
с нулевым адресом в качестве отправителя.

Безопасный выпуск проверяет, поддерживает ли принимающий смарт-контракт интерфейс получателя ERC-721.

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

Сжигание токенов ERC-721

Сжигание удаляет NFT из действительных записей о владении.

Основной интерфейс ERC-721 не требует публичной функции сжигания.

Коллекция может разрешить сжигание владельцам, одобренным операторам, администраторам или логике протокола.

При сжигании обычно генерируется событие

Transfer
с нулевым адресом в качестве получателя.

Сжигание NFT не обязательно удаляет офчейн-метаданные или стирает прежнюю историю блокчейна.

Пользователям следует выяснить, является ли сжигание необратимым и допускает ли реализация повторное создание токена с тем же ID.

Роялти ERC-721

Роялти создателям не входят в основной стандарт ERC-721.

Необязательный стандарт роялти для NFT ERC-2981 предоставляет метод для указания получателя роялти и рекомендованной суммы исходя из цены продажи.

ERC-2981 передает информацию о роялти, но не обязывает каждую транзакцию или приложение выплачивать их.

Если реализация это поддерживает, коллекция может задавать стандартные или индивидуальные для токена параметры роялти.

Получателей и ставки роялти можно менять, если контракт наделяет администратора такими полномочиями.

Не следует считать, что каждая передача ERC-721 сопровождается обязательной выплатой создателю.

ERC-721 и ERC-20

ERC-20 предназначен для балансов взаимозаменяемых токенов, а ERC-721 — для NFT с индивидуальными идентификаторами.

Аккаунт ERC-20 может хранить делимое количество одного токена.

Аккаунт ERC-721 владеет отдельными token ID.

Функция

balanceOf
ERC-721 считает NFT, а не сообщает количество единиц, привязанное к одному token ID.

В ERC-721 не используется стандартное поле decimals, поскольку каждый NFT обычно передается целиком.

В этих стандартах также применяются разные модели разрешений и передачи.

ERC-721 и ERC-1155

ERC-721 представляет отдельно принадлежащие token ID в рамках одного контракта NFT-коллекции.

Мульти-токен-стандарт ERC-1155 позволяет одному контракту управлять множеством token ID с отдельными балансами по количеству.

Token ID ERC-1155 может представлять взаимозаменяемый, полу взаимозаменяемый или уникальный актив.

Адрес может владеть несколькими единицами одного token ID ERC-1155.

В стандартной модели у каждого действительного token ID ERC-721 один владелец.

ERC-1155 также поддерживает стандартизированные пакетные переводы, тогда как переводы ERC-721 обычно выполняются по одному NFT.

Выбор стандарта зависит от требований проекта к владению активами и учету инвентаря.

Сценарии использования ERC-721

Цифровые арт-коллекции могут использовать токены ERC-721 для фиксации владения отдельными произведениями.

Блокчейн-игры могут использовать NFT для персонажей, земли, экипировки и других уникальных предметов.

Системы членства могут применять NFT для представления прав доступа или статуса в сообществе.

Финансовые приложения могут токенизировать уникальные долговые позиции, страховые полисы, позиции в пулах ликвидности или требования.

Системы мероприятий могут выпускать индивидуальные билеты с ограниченными правилами передачи.

Проекты могут связывать NFT с физическими товарами, хотя смарт-контракт не способен самостоятельно подтвердить владение или право собственности на физический предмет.

Токен ERC-721 также может представлять удостоверение, но конфиденциальные персональные данные не следует хранить в открытом виде в публичном блокчейне.

Владение NFT и авторские права

Владение токеном ERC-721 означает, что контракт в блокчейне признает адрес владельцем данного token ID.

Оно не приводит автоматически к передаче авторских прав на связанное с токеном произведение или медиафайл.

Авторские права и права на коммерческое использование зависят от лицензии создателя, договора купли-продажи и применимого законодательства.

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

Метаданные также могут ссылаться на контент, который эмитент токена не имел права использовать.

Покупателям следует изучить юридические условия проекта и не считать, что владение токеном дает любые возможные права.

Риски разрешений ERC-721

Злоумышленные запросы разрешений представляют серьезную угрозу безопасности для владельцев NFT.

Фишинговое приложение может запросить

setApprovalForAll
, представив транзакцию как проверку аккаунта или подтверждение доступа.

После предоставления разрешения оператор может передавать NFT владельца из этой коллекции без дополнительной подписи.

Разрешение на конкретный токен может аналогичным образом подвергнуть риску один ценный NFT.

Перед подписанием пользователям следует проверить адрес контракта, адрес оператора, тип разрешения и выбранную сеть.

После взаимодействия с незнакомым приложением следует проверить ранее выданные разрешения.

Безопасная передача и риск повторного входа

При безопасной передаче NFT, если получателем является смарт-контракт, вызывается внешний код.

Получатель может обратиться к исходному приложению до полного завершения первой операции.

Это может привести к уязвимостям повторного входа в контрактах выпуска, продаж, кредитования, стейкинга, эскроу или вывода средств.

В официальных рекомендациях по безопасности Solidity предлагается, когда это допускает логика приложения, завершать проверки и важные изменения состояния до внешних взаимодействий.

Разработчикам также следует учитывать повторный вход через другие функции: злоумышленный получатель может вызвать другую доступную функцию.

Обратные вызовы получателя необходимо тестировать с помощью вредоносных контрактов, а не считать простыми уведомлениями.

Риски безопасности метаданных

Видимое содержимое NFT может зависеть от данных вне блокчейна.

Внешний сервер может стать недоступным, изменить ответ или удалить файл.

Изменяемый URI может после покупки указывать на другое содержимое.

Метаданные могут включать вводящие в заблуждение описания, скопированные изображения, скрытые внешние ссылки или небезопасные форматы файлов.

Децентрализованное хранение может повысить устойчивость данных, однако доступность контента по-прежнему зависит от его постоянного хранения и правильности идентификаторов.

Полностью ончейн-метаданные снижают зависимость от внешнего хостинга, но могут увеличить расходы на развертывание и обновление.

Риски подлинности контракта

Любой может развернуть контракт ERC-721 с привычным названием, символом, изображением или token ID.

Совместимость с интерфейсом не подтверждает подлинность коллекции.

Пользователям следует проверять сеть блокчейна и полный адрес контракта по авторитетному источнику проекта.

Публикация верифицированного исходного кода подтверждает его соответствие коду контракта, но не гарантирует добросовестность бизнеса или безопасность экономической модели.

Также следует проверять историю токена, заявления создателя, права администратора и контроль над метаданными.

Обновляемые контракты ERC-721

Контракт ERC-721 может использовать прокси, позволяющий менять его логику после развертывания.

Обновления могут устранять ошибки или добавлять функции.

Они также могут изменить правила выпуска, передачи, разрешений, метаданных, роялти, приостановки или сжигания.

Если полномочия на обновление скомпрометированы, злоумышленник может установить вредоносную логику, затрагивающую владение NFT.

Пользователям следует выяснить, кто контролирует обновления, сколько подписей требуется и предусмотрена ли задержка.

У коллекции, называемой децентрализованной, все еще могут быть широкие полномочия администратора.

Как разработчикам реализовать ERC-721

Если особая архитектура не требуется, разработчикам следует использовать проверенную и активно поддерживаемую реализацию.

В актуальном руководстве по разработке ERC-721 описаны основные реализации и необязательные расширения для метаданных, перечисления, сжигания, приостановки, роялти, голосования и других задач.

Права на выпуск должны соответствовать опубликованным правилам предложения коллекции.

Передачи и разрешения должны отклонять неавторизованные вызовы и недействительные адреса.

Если токен может быть выпущен непосредственно на смарт-контракт, следует использовать безопасный выпуск.

Разработчикам следует тестировать взаимодействие с вредоносными получателями, повторный вход, недействительные token ID, сброс разрешений, права операторов, сжигание и обнаружение интерфейсов.

Для административных функций необходимы четкий контроль доступа и информативные события.

Как оценить NFT ERC-721

Сначала проверьте сеть, адрес контракта и token ID.

Затем убедитесь, что контракт поддерживает основной интерфейс ERC-721.

После этого проверьте текущего владельца и историю передач.

Далее изучите разрешения для конкретных токенов и всей коллекции.

Проверьте, как хранятся метаданные и связанные медиафайлы.

Определите, кто уполномочен выпускать и сжигать токены, приостанавливать и замораживать операции, а также обновлять контракт.

Установите, можно ли проверить в блокчейне заявления о предложении и редкости.

Изучите аудиты и исходный код, не считая их гарантиями.

Разберитесь, какие юридические или коммерческие права связаны с NFT.

Прежде чем рисковать ценными активами, проверьте незнакомые контракты транзакцией с активом небольшой стоимости.

Пример передачи ERC-721

Предположим, Алисе принадлежит token ID 101 из коллекции ERC-721.

Функция контракта

ownerOf
возвращает адрес Алисы.

Алиса решает отправить NFT в смарт-контракт, предназначенный для безопасного хранения NFT.

Ее кошелек вызывает

safeTransferFrom
, указывая адрес Алисы, контракт-получатель и token ID 101.

Контракт ERC-721 проверяет, что Алиса владеет NFT и имеет право его передать.

Контракт обновляет записи о владении и вызывает

onERC721Received
у получателя.

Получатель проверяет коллекцию, оператора, предыдущего владельца и token ID.

Если возвращен правильный селектор, передача завершается, а контракт NFT генерирует событие

Transfer
.

Если получатель отклоняет NFT, вся транзакция отменяется, и Алиса остается его владельцем.

Распространенные ошибки при работе с ERC-721

Распространенная ошибка — считать, что название коллекции уникально идентифицирует NFT.

Другая ошибка — предоставлять оператору доступ ко всей коллекции, не проверив его адрес.

Третья ошибка — думать, что отключение кошелька отменяет разрешения в блокчейне.

Четвертая ошибка — использовать

transferFrom
для отправки NFT в незнакомый контракт.

Пятая ошибка — считать, что безопасный прием гарантирует возможность последующего вывода.

Шестая ошибка — считать метаданные постоянными, не проверив способ их хранения.

Седьмая ошибка — полагать, что ERC-721 автоматически обеспечивает выплату роялти.

Восьмая ошибка — считать, что каждая коллекция поддерживает ончейн-перечисление.

Девятая ошибка — путать владение NFT с авторскими правами или владением физическим активом.

Десятая ошибка — считать соответствие стандарту доказательством подлинности, ценности или безопасности NFT.

FAQ

Что означает ERC-721?

ERC-721 — это стандарт Ethereum, определяющий правила владения, передачи, разрешений и интерфейсов для невзаимозаменяемых токенов.

ERC-721 — это то же самое, что NFT?

ERC-721 — технический стандарт для NFT, а NFT — более широкое понятие, которое включает токены, созданные и по другим стандартам.

Является ли ERC-721 взаимозаменяемым?

Нет, каждый действительный token ID ERC-721 учитывается отдельно и может иметь собственные свойства и стоимость.

Каков ID интерфейса ERC-721?

ID основного интерфейса ERC-721 —

0x80ac58cd
.

Что идентифицирует NFT ERC-721?

NFT идентифицируется сочетанием сети блокчейна, адреса смарт-контракта и token ID.

Что возвращает balanceOf?

Функция возвращает количество NFT, которыми адрес владеет в рамках одного контракта ERC-721.

Что возвращает ownerOf?

Функция возвращает текущий адрес владельца действительного token ID.

В чем разница между transferFrom и safeTransferFrom?

safeTransferFrom
проверяет, поддерживает ли контракт-получатель обратный вызов ERC-721, а
transferFrom
— нет.

Можно ли отправить NFT ERC-721 в смарт-контракт?

Да, но обычно следует использовать безопасную передачу, чтобы получатель должен был подтвердить возможность принять NFT.

Что делает approve?

Функция разрешает одному адресу передать конкретный NFT.

Что делает setApprovalForAll?

Функция уполномочивает оператора управлять всеми NFT, которыми владелец владеет в рамках данного контракта ERC-721.

Истекает ли разрешение оператора автоматически?

Нет, стандартное разрешение оператору остается активным, пока владелец не отзовет его или пользовательская логика контракта не изменит его действие.

Сбрасывается ли разрешение на конкретный токен при передаче NFT?

Да, при передаче NFT разрешение на конкретный токен сбрасывается.

Обязательны ли метаданные для ERC-721?

Нет, интерфейс метаданных необязателен, хотя его реализует большинство NFT-коллекций.

Могут ли изменяться метаданные ERC-721?

Да, метаданные могут изменяться, если контракт и система хранения не обеспечивают проверяемую гарантию неизменности.

В каждом ли контракте ERC-721 есть totalSupply?

Нет,

totalSupply
относится к необязательному расширению для перечисления токенов.

Определяет ли ERC-721 выпуск токенов?

Стандарт учитывает выпуск через события владения, но не требует конкретной публичной функции выпуска или политики предложения.

Определяет ли ERC-721 сжигание токенов?

Нет, функция сжигания необязательна и зависит от конкретной реализации.

Обеспечивает ли ERC-721 выплату роялти?

Нет, для роялти требуется отдельная логика или стандарты, а информация о них не обеспечивает автоматическую выплату.

Дает ли владение токеном ERC-721 авторские права?

Нет, права интеллектуальной собственности зависят от применимой лицензии и юридического соглашения.

Можно ли обновлять контракты ERC-721?

Некоторые можно обновлять через прокси-системы, а другие после развертывания неизменяемы.

Можно ли разделить NFT ERC-721 на доли?

Для дробного владения требуется отдельный контракт или механизм токенизации, поскольку основной токен ERC-721 принадлежит одному владельцу целиком.

Можно ли использовать разрешение ERC-721 для кражи NFT?

Да, злоумышленный одобренный адрес может передать NFT, на которые распространяется его разрешение.

Подтверждает ли соответствие ERC-721 подлинность?

Нет, совместимый контракт может развернуть любой пользователь, поэтому адрес коллекции и эмитента необходимо проверять отдельно.

В чем главное преимущество ERC-721?

Главное преимущество — стандартизированное поведение при владении и передаче, благодаря которому многие криптоприложения могут взаимодействовать с уникальными токенизированными активами.

Заключение

ERC-721 — основной стандарт Ethereum для представления индивидуально идентифицированных невзаимозаменяемых токенов.

Он определяет общие правила проверки владения, передачи, разрешений, полномочий операторов, событий и обнаружения интерфейсов.

Каждый NFT уникально идентифицируется сетью блокчейна, адресом контракта и token ID.

ID основного интерфейса —

0x80ac58cd
.

Необязательные расширения могут добавлять метаданные, ончейн-перечисление, информацию о роялти и уведомления об обновлении метаданных.

Стандарт не определяет автоматически права на выпуск, максимальное предложение, права на сжигание, роялти, постоянство метаданных, юридическое владение или подлинность коллекции.

Перед взаимодействием с NFT пользователям следует проверить адреса контрактов, изучить разрешения и способ хранения метаданных, а также понять полномочия администратора.

Разработчикам следует использовать поддерживаемые реализации, защитить все пути авторизации и считать обратные вызовы получателя при безопасной передаче потенциально вредоносными внешними вызовами.

Совместимость ERC-721 упрощает использование NFT в криптоприложениях, но не устраняет риски смарт-контрактов, фишинга, метаданных, юридические или рыночные риски.

Понимание ERC-721 помогает отличать владение уникальным токеном в блокчейне от более широкого контента, прав, ценности и обещаний, связанных с этим токеном.
Откат или возможность?
Откат или возможность?Откат или возможность?
Почему BTC ETF привлекли 2,4 млрд $ при ликвидациях

В тренде

Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка

Недавно добавленные

Криптовалюты недавно внесенные в листинг и доступные для торговли