Один NFT раскрывается как цепочка ссылок
Начните с сети, адреса контракта и token ID. Для ERC-721 функция ownerOf сообщает текущего владельца токена, а optional tokenURI возвращает URI metadata. В ERC-1155 похожую роль играет uri с возможной подстановкой ID. JSON metadata обычно содержит name, description, image и произвольные свойства. Поле image может вести на IPFS, обычный HTTPS-сервер или data URI. Ни стандарт, ни marketplace preview не гарантируют, что media записано непосредственно в блокчейне.
| Слой | Наблюдаемый факт | Чего факт не доказывает |
|---|---|---|
| Контракт и token ID | Существование записи и текущий owner по правилам контракта | Подлинность автора и права на произведение |
| tokenURI / uri | Строка, которую возвращает контракт | Неизменность содержимого по этой строке |
| Metadata JSON | Название, описание, image и attributes | Что media доступно постоянно |
| Media | Байты, полученные по URI или CID | Лицензию на копирование и коммерческое использование |
- Слой
- Контракт и token ID
- Наблюдаемый факт
- Существование записи и текущий owner по правилам контракта
- Чего факт не доказывает
- Подлинность автора и права на произведение
- Слой
- tokenURI / uri
- Наблюдаемый факт
- Строка, которую возвращает контракт
- Чего факт не доказывает
- Неизменность содержимого по этой строке
- Слой
- Metadata JSON
- Наблюдаемый факт
- Название, описание, image и attributes
- Чего факт не доказывает
- Что media доступно постоянно
- Слой
- Media
- Наблюдаемый факт
- Байты, полученные по URI или CID
- Чего факт не доказывает
- Лицензию на копирование и коммерческое использование
Неизменность зависит от того, что закреплено onchain
Если tokenURI — обычный HTTPS URL, владелец домена или сервера способен заменить ответ, сохранив тот же адрес. Если контракт позволяет администратору менять base URI, может измениться и сам путь. IPFS URI с конкретным CID связывает адрес с содержимым: другие байты дают другой CID. Но контракт всё ещё может переключить tokenURI на новый CID, если его код и permissions это разрешают. Поэтому слова immutable проверяют по коду, proxy-настройкам и admin keys, а не по оформлению коллекции.
Владение токеном не равно владению произведением
Onchain transfer меняет владельца token ID по правилам контракта. Он не переносит автоматически copyright на изображение, музыку или текст. Проект может дать личную, коммерческую, ограниченную либо иную лицензию — или не описать её ясно. Ищите документ, привязанный к точной коллекции и версии условий: какие действия разрешены, действует ли лицензия после продажи токена, можно ли создавать производные работы и кто вправе менять условия. Это проверка условий, а не вывод из стандарта ERC-721.
Красные флаги вокруг файла и лицензии
- Marketplace показывает media, но tokenURI и исходный JSON нельзя воспроизвести независимо.
- Metadata доступно только через домен команды, а резервного content-addressed URI нет.
- CID существует, но файл не извлекается через собственный IPFS node и несколько gateway.
- Лицензия лежит на изменяемой странице без версии, даты или привязки к адресу контракта.
- Продавец обещает исключительные права, но не показывает цепочку авторства и текст передачи прав.
Решение строится из воспроизводимых ответов
| Результат | Решение | Recovery, если проверка не прошла |
|---|---|---|
| Контракт, token ID, metadata и media воспроизводятся; CID совпадает | Сохранить contract, token ID, JSON, CID и найденную версию лицензии | Закрепить собственную разрешённую копию; повторить retrieval с другого узла |
| URI изменяемый, но механизм и администратор раскрыты | Оценивать NFT как зависимый от оператора объект | Настроить наблюдение за URI/admin events; не выдавать preview за immutable content |
| Media недоступно | Остановить решение до восстановления байтов | Попросить автора или pinning provider восстановить exact CID; не загружать похожий файл под новым CID как доказательство исходного |
| Нет ясной лицензии | Считать подтверждённым только владение токеном | Запросить письменные условия у правообладателя; не использовать файл коммерчески на основании одного NFT |
- Результат
- Контракт, token ID, metadata и media воспроизводятся; CID совпадает
- Решение
- Сохранить contract, token ID, JSON, CID и найденную версию лицензии
- Recovery, если проверка не прошла
- Закрепить собственную разрешённую копию; повторить retrieval с другого узла
- Результат
- URI изменяемый, но механизм и администратор раскрыты
- Решение
- Оценивать NFT как зависимый от оператора объект
- Recovery, если проверка не прошла
- Настроить наблюдение за URI/admin events; не выдавать preview за immutable content
- Результат
- Media недоступно
- Решение
- Остановить решение до восстановления байтов
- Recovery, если проверка не прошла
- Попросить автора или pinning provider восстановить exact CID; не загружать похожий файл под новым CID как доказательство исходного
- Результат
- Нет ясной лицензии
- Решение
- Считать подтверждённым только владение токеном
- Recovery, если проверка не прошла
- Запросить письменные условия у правообладателя; не использовать файл коммерчески на основании одного NFT
Для самостоятельного аудита сохраните block number, contract, token ID, результат tokenURI, полный JSON, media URI и hash полученных байтов. Публичный адрес владельца показывает onchain-контроль в этот момент, но не личность автора. Если интерфейс и прямой вызов контракта расходятся, приоритет у воспроизводимых данных сети и байтов по адресу, а расхождение фиксируют отдельно.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- EIP-721 — Non-Fungible Token Standard Ethereum Improvement Proposals · Проверено 19 августа 2026 г. в 20:15 GMT+5
- EIP-1155 — Multi Token Standard Ethereum Improvement Proposals · Проверено 19 августа 2026 г. в 20:15 GMT+5
- IPFS Docs — Content Identifiers IPFS · Проверено 19 августа 2026 г. в 20:53 GMT+5
- IPFS Docs — Persistence, permanence and pinning IPFS · Проверено 19 августа 2026 г. в 20:15 GMT+5
- WIPO — Non-fungible tokens and copyright World Intellectual Property Organization · Проверено 19 августа 2026 г. в 20:15 GMT+5
