NFT Item
Контракт одного NFT-токена в TON. Деплоится коллекцией при mint и хранит owner, индекс и ссылку на индивидуальные метаданные.
Синонимы: nft item, nft контракт, single nft
NFT Item — это смарт-контракт одного конкретного NFT-токена в TON. В отличие от ERC-721, где все NFT коллекции живут в одном контракте, в TON каждый NFT — отдельный контракт. Это та же архитектурная идея, что и у jetton-wallet: разносить хранение, чтобы переводы шли параллельно.
Что хранит
- Адрес owner-а. Текущий держатель NFT.
- Адрес коллекции. Контракт-родитель.
- Index. Порядковый номер в коллекции (0, 1, 2, …).
- Individual content. Ссылка или cell с метаданными именно этого экземпляра (атрибуты, изображение).
В большинстве коллекций общая часть метаданных хранится в коллекции, а индивидуальная — в самом item-контракте. Это снижает дублирование данных в стейте.
Что делает
NFT Item понимает несколько стандартных сообщений (TEP-62):
- transfer — изменить owner, перевести NFT новому держателю.
- get_static_data — отдать индекс и адрес коллекции.
- report_royalty_params — передать запросы маркетплейсам.
Get-методы: get_nft_data — возвращает всё про NFT в одном вызове, маркетплейсы и кошельки этим пользуются.
Перевод
При смене владельца:
- Старый владелец шлёт
transferна адрес NFT Item. - Item проверяет подпись (что это действительно от текущего owner-а), обновляет owner-поле в storage.
- Шлёт
excesses(возврат лишних TON) и опциональноеtransfer_notificationновому owner-у.
Это атомарная операция в одной транзакции — переадресация на jetton-wallet здесь не нужна.
Идентификация
Адрес NFT Item — это и есть «уникальный ID конкретной NFT». Если у вас есть .ton-домен или Telegram-username, у каждого из них в TON свой собственный адрес, и его можно посмотреть в Tonkeeper или TonViewer.