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

Интерфейс ERC-721

2026/10/13 15:31
#Advanced
Humanity
H$0.05444-10.53%
PX
PX$0.0123-5.38%
AINFT
NFT$0.00000024+0.67%
TokenFi
TOKEN$0.00199-6.35%
SynFutures
F$0.003108-4.98%

Что такое интерфейс ERC-721?

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

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

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

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

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

Стандарт ERC-721 получил статус Final в процессе рассмотрения предложений по улучшению Ethereum и по-прежнему остается одним из основных стандартов уникальных активов в блокчейне.

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

Зачем нужен интерфейс?

Интерфейс смарт-контракта описывает внешние функции и события, которые совместимое ПО ожидает от контракта.

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

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

Интерфейс ERC-721 позволяет программам вызывать привычные функции, например

ownerOf
,
balanceOf
,
approve
и
safeTransferFrom
.

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

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

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

Что делает токен ERC-721 невзаимозаменяемым?

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

Токен полностью определяется сочетанием блокчейн-сети, адреса контракта и идентификатора токена.

Токен с идентификатором 100 в одном контракте не связан с токеном с идентификатором 100 в другом.

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

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

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

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

Идентификатор основного интерфейса ERC-721

Основной интерфейс ERC-721 идентифицируется через ERC-165 значением

0x80ac58cd
.

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

true
, когда функция
supportsInterface
вызывается с этим идентификатором.

В стандарте обнаружения интерфейсов ERC-165 указано, что идентификатор интерфейса рассчитывается посредством XOR селекторов функций, входящих в интерфейс.

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

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

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

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

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

К основным функциям относятся

balanceOf
,
ownerOf
,
safeTransferFrom
,
transferFrom
,
approve
,
setApprovalForAll
,
getApproved
и
isApprovedForAll
.

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

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

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

Функция balanceOf

Функция

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

Она не возвращает делимое количество токенов или финансовую стоимость NFT.

Если адресу принадлежат токены с идентификаторами 4, 19 и 83 из одной коллекции, его баланс равен трем.

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

Функция не показывает, какими конкретно идентификаторами владеет адрес.

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

Функция ownerOf

Функция

ownerOf
возвращает текущего владельца указанного токена.

Для существующего токена возвращаемый адрес владельца не должен быть нулевым.

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

Записанное в контракте право собственности определяет основные права на перевод соответствующего NFT.

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

Такие права зависят от соглашения проекта, применимого законодательства и внешних записей.

Функция transferFrom

Функция

transferFrom
переводит NFT с одного адреса на другой после проверки полномочий и права собственности.

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

Адрес

from
должен совпадать с текущим владельцем NFT.

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

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

NFT, отправленный через

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

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

Функции safeTransferFrom

В ERC-721 определены две перегруженные версии

safeTransferFrom
.

Одна версия включает адреса отправителя и получателя и идентификатор токена.

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

Обе функции проверяют право собственности и полномочия на перевод.

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

onERC721Received
этого контракта.

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

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

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

Что такое IERC721Receiver?

IERC721Receiver
— это интерфейс, который реализует смарт-контракт, если он должен принимать NFT через
safeTransferFrom
.

Обязательная функция этого интерфейса —

onERC721Received
.

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

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

0x150b7a02
.

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

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

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

Риск callback-функции получателя ERC-721

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

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

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

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

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

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

Функция approve

Функция

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

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

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

Он получает право переводить указанный токен.

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

Вызов

approve
с нулевым адресом позволяет отменить существующее разрешение.

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

Функция getApproved

Функция

getApproved
возвращает адрес, которому в данный момент разрешено распоряжаться конкретным токеном.

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

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

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

Чтобы определить, может ли другой адрес перевести токен, приложению следует также проверить

isApprovedForAll
.

Функция setApprovalForAll

Функция

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

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

Это разрешение шире, чем одобрение одного идентификатора токена.

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

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

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

Функция isApprovedForAll

Функция

isApprovedForAll
сообщает, имеет ли оператор право распоряжаться всеми токенами конкретного владельца в коллекции.

Она возвращает логическое значение, а не количество токенов.

Полномочия оператора действуют только в рамках контракта ERC-721, который их предоставил.

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

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

События ERC-721

В основном интерфейсе ERC-721 определены события

Transfer
,
Approval
и
ApprovalForAll
.

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

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

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

Событие Transfer

Событие

Transfer
фиксирует прежнего и нового владельца и идентификатор токена.

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

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

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

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

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

Событие Approval

Событие

Approval
фиксирует разрешение на конкретный идентификатор токена.

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

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

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

Событие ApprovalForAll

Событие

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

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

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

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

Необязательный интерфейс метаданных ERC-721

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

name
,
symbol
и
tokenURI
.

Идентификатор интерфейса ERC-165 —

0x5b5e139f
.

Согласно официальной спецификации расширение необязательно, хотя многие контракты NFT его реализуют.

Функция

name
возвращает описательное название коллекции.

Функция

symbol
возвращает краткое обозначение, выбранное разработчиком контракта.

Функция

tokenURI
возвращает URI, связанный с конкретным идентификатором токена.

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

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

Функция

tokenURI
обычно указывает на документ с метаданными в формате JSON.

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

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

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

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

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

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

Необязательный интерфейс перечисления ERC-721

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

Идентификатор интерфейса ERC-165 —

0x780e9d63
.

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

totalSupply
,
tokenByIndex
и
tokenOfOwnerByIndex
.

Функция

totalSupply
возвращает количество действующих токенов, учитываемых контрактом.

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

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

Вместо этого многие приложения восстанавливают данные о владении NFT по событиям

Transfer
с помощью внешнего индексирования.

Выпуск и сжигание

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

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

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

Сжигание удаляет токен из действующих записей о владении в соответствии с реализацией контракта.

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

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

Интерфейс ERC-721 и его реализация

Интерфейс определяет внешнее поведение, необходимое для совместимости.

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

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

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

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

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

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

ERC-721 и ERC-20

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

На аккаунте ERC-20 может храниться делимое количество, например 250 единиц.

Аккаунт ERC-721 владеет определенным количеством отдельных токенов с разными идентификаторами.

Функция

balanceOf
ERC-721 сообщает количество NFT во владении аккаунта, а не количество токенов с одним идентификатором.

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

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

ERC-721 и ERC-1155

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

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

На аккаунте ERC-1155 может храниться несколько единиц с одним идентификатором токена.

У токена ERC-721 один владелец, и баланс аккаунта не отражает количество единиц с одним идентификатором.

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

Роялти и интерфейс ERC-721

В основном интерфейсе ERC-721 не определены роялти для создателей.

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

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

Коллекции, заявляющие о наличии роялти, должны объяснять, как рассчитывается их размер и может ли он меняться.

Пользователям не следует считать, что NFT ERC-721 дает постоянное или юридически защищенное право на роялти.

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

Фишинг с помощью запросов на предоставление разрешений — один из наиболее серьезных рисков для владельцев NFT.

Вредоносный сайт может запросить

setApprovalForAll
, представляя подпись как проверку аккаунта или доступ к коллекции.

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

Разрешение на конкретный токен также может позволить похитить указанный NFT.

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

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

Риск небезопасного перевода

Функция

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

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

Именно поэтому при переводе NFT контрактам рекомендуется использовать

safeTransferFrom
.

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

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

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

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

Адрес контракта — важнейший технический идентификатор коллекции.

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

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

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

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

Риски обновляемого контракта

Реализация ERC-721 может работать через обновляемый прокси.

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

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

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

Поддержка интерфейса ERC-721 не раскрывает все привилегированные функции реализации.

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

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

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

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

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

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

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

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

Как приложениям определить поддержку ERC-721

Приложение может вызвать функцию

supportsInterface
с идентификатором основного интерфейса ERC-721.

Возвращаемое значение

true
означает, что контракт заявляет о поддержке этого интерфейса.

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

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

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

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

Пример перевода ERC-721

Предположим, Алис владеет токеном с идентификатором 42 в контракте ERC-721.

Функция

ownerOf
этого контракта возвращает адрес Алисы для токена с идентификатором 42.

Алиса решает отправить NFT смарт-контракту.

Кошелек Алисы вызывает

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

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

Он обновляет сведения о владении и вызывает функцию

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

Получатель проверяет контракт NFT, оператора, прежнего владельца и идентификатор токена.

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

Transfer
.

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

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

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

Другая — интерпретировать

balanceOf
как количество единиц с одним идентификатором токена.

Третья — использовать

transferFrom
при отправке токена неизвестному смарт-контракту.

Четвертая — предоставлять оператору разрешение на всю коллекцию, не проверив его адрес.

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

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

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

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

Девятая — игнорировать риск повторного входа во время callback-функции получателя.

Десятая — считать поддержку ERC-165 доказательством безопасности или подлинности реализации.

FAQ

Что такое интерфейс ERC-721?

Интерфейс ERC-721 — это стандартизированный набор функций и событий для отслеживания владения, разрешений и переводов невзаимозаменяемых токенов.

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

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

0x80ac58cd
.

Что возвращает функция balanceOf в контракте ERC-721?

Она возвращает количество отдельных NFT из этого контракта, принадлежащих адресу.

Для чего нужна функция ownerOf?

Она возвращает текущего владельца действительного идентификатора токена.

Чем отличаются transferFrom и safeTransferFrom?

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

Что такое onERC721Received?

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

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

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

Что делает функция approve?

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

Что делает функция setApprovalForAll?

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

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

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

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

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

Требуются ли метаданные по стандарту ERC-721?

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

Каков идентификатор интерфейса метаданных ERC-721?

Идентификатор расширения метаданных —

0x5b5e139f
.

Каков идентификатор интерфейса перечисления ERC-721?

Идентификатор расширения перечисления —

0x780e9d63
.

Поддерживает ли каждый контракт ERC-721 функцию totalSupply?

Нет, функция

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

Требует ли ERC-721 наличия функции выпуска?

Нет, основной интерфейс не определяет, как пользователи или администраторы выпускают NFT.

Требует ли ERC-721 наличия функции сжигания?

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

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

Нет, роялти не входят в основной интерфейс ERC-721 и требуют отдельной логики или стандартов.

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

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

Доказывает ли соответствие ERC-721 подлинность NFT?

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

Заключение

Интерфейс ERC-721 устанавливает общие правила владения, разрешений, переводов и событий, применяемые к невзаимозаменяемым токенам в приложениях, совместимых с Ethereum.

Его идентификатор —

0x80ac58cd
. Контракты объявляют о поддержке интерфейса с помощью механизма обнаружения ERC-165.

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

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

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

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

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

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

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

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

В тренде

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

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

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