Как различать отдельные NFT-выходы Avalanche X-Chain внутри группы

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

Идентифицируйте текущую запись по outpoint

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

asset ID   group ID   outpoint       payload bytes
asset A    3          transaction:0  01ff
asset A    3          transaction:1  01ff

Свяжите расход и появление выходов при передаче

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

Источники