Как проверить принадлежность NFT в TON к заявленной коллекции
Контракт отдельного NFT может указать у себя адрес известной коллекции. Маркетплейс может проверить это утверждение встречным запросом к самой коллекции.
Получите адрес по индексу со стороны коллекции
Прочитайте get_nft_data у предмета и убедитесь, что он инициализирован. Если заявлена принадлежность к коллекции, передайте полученный индекс в get_nft_address_by_index ожидаемого контракта коллекции. Сверьте результат с адресом проверяемого NFT. В примере три адреса сокращены для наглядности.
const claimed = { item: "contract-X", collection: "collection-C", index: 12n };
const addressAt12 = "contract-Y"; // result returned by the trusted collection
console.log(claimed.item === addressAt12);
Сохраните сведения о расхождении
Если коллекция вернула Y, а в листинге указан X, сохраните индекс, заявленную коллекцию и оба адреса. Такому X нельзя присваивать отметку проверенной коллекции. На практике сравнивайте разобранные адреса в контексте одной сети. Самостоятельный NFT может обходиться без адреса коллекции. Даже успешная проверка членства не удостоверяет сторонний сервер, с которого загружается изображение.