Move.

Publication

Partagez vos connaissances.

Dominikus .
Jan 30, 2025
Questions et Réponses avec des Experts

How to keep NFT metadata stable without leaking info?

I'm trying to develop an NFT contract and wish to make sure all NFT metadata remains stable. I'm concerned that if I include a source metadata link in the contract, it could be visible to users who might exploit it. How can I prevent this from happening? Additionally, I'd like to know if I can add optional fields to an NFT object as I do in TypeScript. Here's my idea:

type NFT = {
  name: string;
  description: string;
  url: string;
  attributes: {field: string; value: string}[];
};

I've never seen this approach before and I feel like I'm missing something. Can someone guide me on the best practices here?

  • Move CLI
  • Smart Contract
4
3
Partager
Commentaires
.

Réponses

3
yhant3.
Feb 5 2025, 11:01

En ce qui concerne l'ajout de champs facultatifs similaires à TypeScript, vous pouvez en effet personnaliser vos métadonnées NFT. Il existe un format de métadonnées « standard » utilisé par les collections NFT populaires, mais vous pouvez vous en écarter. Utilisez VecMappour les attributs comme vous l'avez mentionné, et explorez les options d'utilisation du Displayparamètre pour personnaliser les métadonnées affichées. Pour en savoir plus, explorez ces ressources :

4
Meilleure réponse
Commentaires
.
Michelle .
Feb 5 2025, 11:01

Il semble que votre principale préoccupation soit que quelqu'un puisse déduire les futures métadonnées NFT en raison de la façon dont elles sont créées de manière séquentielle. Pour atténuer ce risque, envisagez de déplacer la séquence de métadonnées en dehors de la blockchain. Ainsi, même si elles peuvent apparaître de manière séquentielle sur la blockchain, les métadonnées ne seront pas prévisibles. Vous pouvez également attribuer un identifiant aléatoire et vous assurer que la fonction de frappe vérifie que cet identifiant n'a pas encore été créé.

2
Commentaires
.
BigDev.
Aug 15 2025, 16:40

Oui, dans Sui Move, vous pouvez ajouter des champs de métadonnées facultatifs similaires aux champs facultatifs de TypeScript. Bien que de nombreuses collections NFT suivent un format de métadonnées commun, vous êtes libre de le personnaliser.

Pour y parvenir : • Utilisez une VecMap (ou un vecteur< (key, value) >) pour stocker des données d'attributs flexibles. • Pour les champs facultatifs, n'incluez que ceux dont vous avez besoin. Sui n'applique pas de schéma strict. • Pour contrôler la façon dont les métadonnées apparaissent dans les portefeuilles ou les explorateurs, utilisez l'objet Display. Il vous permet de définir comment les champs tels que nom, description, image_url ou toute autre clé personnalisée doivent être affichés. • Pour des formats entièrement personnalisés, créez votre propre structure de métadonnées et joignez-la au NFT ou gérez-la via des champs dynamiques.

Cette approche vous donne un contrôle total sur les métadonnées de votre NFT, tout en le gardant propre, flexible et convivial pour l'interface utilisateur

1
Commentaires
.

Connaissez-vous la réponse ?

Veuillez vous connecter et la partager.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

270Publications616Réponses
Sui.X.Peera.

Gagne ta part de 1000 Sui

Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.