Когда в ENS-профиле можно показывать NFT как аватар

Запись avatar всё ещё указывает на ERC-721, который вчера сменил владельца. Файл изображения доступен и токен существует, но принадлежность профилю уже могла измениться.

Определите адрес для проверки владения

При прямом разрешении возьмите адресную запись того же имени ENS. Если начали с адреса, выполните проверки обратного разрешения и используйте исходный адрес. В сети из URI аватара вызовите ownerOf(tokenId) нужного ERC-721-контракта. В примере адреса различаются, поэтому запрашивать изображение для этого профиля не следует.

const resolved = "0x" + "11".repeat(20);
const nftOwner = "0x" + "22".repeat(20);
console.log(resolved === nftOwner ? "load token metadata" : "omit NFT avatar");

Разделите кеш изображения и кеш владения

Сохранённые tokenURI и файл могут пережить передачу токена. Перепроверяйте владельца перед показом ENS-аватара, а для ERC-1155 используйте проверку баланса. Передача токена может сделать аватар недействительным без изменений в ENS и в самом изображении. В ключ кеша владения включите сеть, контракт и ID, чтобы токены с одинаковым номером не разделили результат.

docs.ens.domains ENSIP-12 avatar records