NFT, Metadata/Media et leur cycle de vie
Metadata
Comme nous l'avons déjà vu ici, un NFT est défini par un identifiant, l'adresse du portefeuille de son propriétaire et une URI pointant vers où trouver ses metadata.
Mais que sont les metadata? Il s'agit principalement d'un fichier json dans lequel les données du NFT sont définies. Il peut comprendre de manière non exclusive :
- un nom
- l'emplacement du média sous-jacent, c'est-à-dire ce que doit représenter le NFT (image/vidéo/son...)
- ses propriétés (aussi appelées traits) qui sont utilisées pour déterminer la rareté au sein d'une collection, ou toute autre information utile
Médias
L'un des principaux objectifs d'un NFT est d'acter la propriété d'un média sous-jacent, qu'il s'agisse d'une image, d'une vidéo, d'une musique... Mais stocker une telle quantité d'information sur les blockchain principales n'est pas vraiment réalisable à cause de leurs limitations (cela coûterait trop cher à déployer).
C'est pourquoi les médias ne sont que référencés par leur NFT. L'URI du média pourrait être directement retourné, mais il est communément admis que, comme vu précédemment, il sera compris dans les métadonnées.
Ainsi, lorsque vous connectez votre portefeuille à n'importe quelle solution affichant des NFTs (OpenSea, MetaMask...), ce qu'ils font, c'est récupérer :
- l'identifiant de vos NFTs à partir du Smart Contract de la collection
- l'URI du NFT à partir du Smart Contract de la collection en utilisant l'identifiant
- les metadata du NFT à partir de son URI
- les médias à partir de l'URI contenus dans les métadonnées... nous y voilà ;o)
Reveal
Alors que se passe-t-il lorsqu'une collection est révélée ?
Quelque chose doit changer dans cet enchaînement de données récupérées. Comme l'identification est immuable, cela doit se passer n'importe où après, en fonction de ce qui devrait être différent après le reveal (les médias et/ou les traits) et de la manière dont ces données sont stockées.
C'est quelque chose qui doit être fait par l'entité gérant la collection.
Persistance
C'est pourquoi il est important de savoir ce qui est autorisé par le contrat (ie l'URI peut-elle être changée?) et par le protocole de stockage (ie les données peuvent-elles être mises à jour) car cela aura des impacts sur tout ce que vous possédez.
Tant que l'URI renvoyée par le contrat n'est pas explicitement mise à jour, elle restera 'eternellement' telle qu'inscrite dans la blockchain. La possibilité d'opérer ce genre de modification doit pouvoir être vérifiable car les sources du Smart Contract se doivent d'être publiées par tout projet consciencieux et professionnel.
Mais pour les données, c'est tout autre chose. Si elles sont stockées sur les habituels serveurs de type web2 , elles peuvent être modifiées à la volée et même être supprimées. Alors que déployées sur IPFS, elles seront immuables et donc présentes 'pour toujours', ou tout du moins tant que quelqu'un les 'pin'.
Méfiez vous des icônes
Gardez à l'esprit que tout ce qui s'affiche lorsque vous utilisez votre solution d'affichage NFT ne reflète pas toujours la réalité.
Nous savons maintenant que les données peuvent changer (à des fins de reveal ou en raison de la nature évolutive de certaines collections de NFTs) mais je dois vous avertir qu'OpenSea, par exemple, ne les vérifie pas en permanence mais les conserve plutôt en cache.
Donc, ce que vous voyez n'est pas nécessairement ce que vous obtenez et vous devriez donc vérifier par vous-même ces assets (vu que les applications tierces peuvent vous en montrer des version obsolètes).