К основному содержанию
T TON Adoption
← Словарь
NODE/03 · Term

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 в одном вызове, маркетплейсы и кошельки этим пользуются.

Перевод

При смене владельца:

  1. Старый владелец шлёт transfer на адрес NFT Item.
  2. Item проверяет подпись (что это действительно от текущего owner-а), обновляет owner-поле в storage.
  3. Шлёт excesses (возврат лишних TON) и опциональное transfer_notification новому owner-у.

Это атомарная операция в одной транзакции — переадресация на jetton-wallet здесь не нужна.

Идентификация

Адрес NFT Item — это и есть «уникальный ID конкретной NFT». Если у вас есть .ton-домен или Telegram-username, у каждого из них в TON свой собственный адрес, и его можно посмотреть в Tonkeeper или TonViewer.

См. также