Oyun Kitabı
URI d'espace réservé et ligne de révélation du propriétaire (Uri Despace Reserve Et Ligne DE Revelation Du Proprietaire)
Dans Mint, les métadonnées d'espace réservé, la carte uridata, la révélation (tokenId, uriHash) et la surface de révélation que seul le propriétaire peut ouvrir.
Collection NFT Mint et durcissement du réseau principal
Partie 3 de 4
Surfaces menthe CBD All-Stars et Confident Gorillas : entonnoir de liste blanche WIP, métadonnées IPFS, espace réservé → pipeline de révélation et renforcement du portefeuille du réseau principal avec Web3Modal.
Mint ne donne pas d'art aléatoire ; donne une révélation
Dans Confident Gorillas 1.4, Mint n'affiche souvent pas immédiatement l'image finale. L'espace réservé/URI temporaire est écrit à la volée ; les vrais CID attendent dans la table uridata en tant que tokenId → hash/link. Reveal envoie révélation (tokenId, uriHash) après la vérification du propriétaire du conteneur — c'est la promesse de l'art « apparaît dans votre portefeuille ».```text mint → placeholder / interim tokenURI │ uridata[tokenId] = { hash, link } │ ownerOf(tokenId) === connected wallet? yes │ no → deny ↓ reveal(tokenId, uriHash) ↓ tokenURI updated → retrieveJSON / image
## Concepts à la première mention```text
📦 Placeholder Metadata
Mint anında yazılan geçici URI; nihai traits/görsel henüz bağlı değildir.
📦 uridata
tokenId → { hash, link, index } haritası; reveal için hazır CID tablosu.
📦 reveal(tokenId, uri)
Owner'ın tokenURI'yi gerçek hash ile güncellediği sözleşme çağrısı.
📦 Owner Gate
revealToken içinde ownerOf === connected address kontrolü.
```Le bouton Révéler peut être désactivé dans la visionneuse ; La révélation opérationnelle est parfois déclenchée par le panneau ou le script propriétaire. Le propriétaire est à nouveau la porte.
## Pourquoi un espace réservé ?
Équité et fonctionnement : réduire les fuites de métadonnées avant que l'intégralité de l'offre ne soit pressée, séparant la génération artistique du rythme de la menthe. Bonbons utilisateur ; l'art vient plus tard avec « révéler ». Landing FAQ décrit cela comme apparaissant dans MetaMask.```text
Mint window
→ same placeholder look
Reveal window
→ unique CID per tokenId
```## Révéler le pipeline
Reveal.ts lit uridata.uri[tokenId], obtient le hachage, appelle RevealToken(tokenId, hash). nftContractUtils valideownerOf ; si correspond à contract.methods.reveal(...).send({ from }). Ensuite, tokenURI renvoie le nouveau hachage ; retrieveJSON résout le CID de l'image.```text
Reveal.ts
uridata[tokenId].hash
↓
revealToken → owner check
↓
reveal(tokenId, hash).send
```## ADR : table hors chaîne + révélation du propriétaire en chaîne
Décision : la liste finale des CID est conservée dans le client/bundle (uridata) ; L'autorité de mise à jour reste la fonction de révélation contrôlée par le propriétaire. L'alternative (commit-reveal on-chain, VRF) est plus chère. Compromis : le paquet uridata peut être divulgué – révéler que le timing et le contrôle d'accès sont des risques pour le produit.```text
ADR-03 Placeholder + owner reveal
Store: uridata off-chain map
Auth: ownerOf gate
Mutate: reveal(tokenId, uriHash)
Reject: non-owner / wrong id
```## Scénarios d'échec
Mauvais tokenId → mauvais art. Incompatibilité de hachage/lien → passerelle 404. Portefeuille n'appartenant pas → non-opération silencieuse (la fonction renvoie null). S'il n'y a pas de révélation dans l'ABI, l'encodage explose. Si l'espace réservé n'est jamais mis à jour, la collection reste une « boîte vide ».```text
Fail matrix
wrong tokenId → wrong art
hash ≠ pinned CID → 404
non-owner → no-op / deny
missing reveal ABI→ encode fail
Les confrontations les plus déroutantes de cet épisode```text
❌ Reveal = sadece UI'da blur kaldırmak ✓ Reveal = on-chain tokenURI güncellemesi; UI yalnızca sonucu gösterir
❌ Herkes herhangi bir token'ı reveal edebilmeli ✓ Yalnızca owner (veya tasarlanmış minter/owner rolü) reveal eder
❌ uridata gizli kalır çünkü bundle'da ✓ Frontend bundle okunabilir; zamanlama ve erişim asıl kontroldür
## Liste de contrôle de votre propre système
1. Le hachage uridata de chaque tokenId peut-il être épinglé et récupéré ?
2. Le propriétaire du contrôle est-il disponible à la fois sur le client et sur le contrat avant la révélation ?
3. L'URI d'espace réservé et l'URI final sont-ils clairement séparés ?
4. Le bouton Révéler est-il désactivé/refusé en toute sécurité chez les non-propriétaires ?
5. Y a-t-il un décalage d'index dans la table comportant 750 entrées ?
## Choses à retenir de cette section
1. L'espace réservé permet de faire la distinction entre la révélation, l'équité et les opérations avec menthe.
2. Révéler sans la porte du propriétaire viole l'intégrité de la collection.
3. uridata est une décision de produit ; Ne présumez pas de la confidentialité, du timing de conception.
> Il est facile de donner de la menthe artistique instantanément ; Le don juste et irrévocable est la discipline de la révélation.
FAQ
Frequently asked questions
Qu’est-ce que les métadonnées d’espace réservé ?
URI temporaire écrit sur Mint fly ; traits finaux/visuel pas encore connectés.
Qu’est-ce que l’uridata ?
tokenId → { hachage, lien, index } carte ; Table CID prête à être révélée.
"Révéler = supprimer simplement le flou dans l'interface utilisateur" est-il correct ?
Révéler = mise à jour du tokenURI en chaîne ; L'interface utilisateur affiche uniquement le résultat
Que corrige cette section ?
Cette section corrige la révélation en tant que limite de produit et de sécurité ; La partie suivante renforce la connexion du portefeuille au réseau principal. Dans Confident Gorillas 1.4, Mint n'affiche souvent pas immédiatement l'image finale. L'espace réservé/URI temporaire est écrit à la volée ; les vrais CID attendent dans la table uridata en tant que tokenId → hash/link. Reveal envoie révélation (tokenId, uriHash) après la vérification du propriétaire du conteneur — c'est la promesse de l'art « apparaît dans votre portefeuille ».
Principes d'ingénierie appris
- Séparez intentionnellement l’URI Mint et l’URI final.
- Verrouillez l'autorité Reveal avecownerOf (ou un rôle clair).
- Vérifiez la table CID hors chaîne pour l’intégrité des broches et des index.
Continuer la lecture
Continuer la lecture
Suivant en série
Mainnet Web3Modal et renforcement du portefeuille
Migration de MetaMask uniquement vers Web3Modal + WalletConnect + Coinbase WalletLink ; chainId, gaz et durcissement des adresses.
Suivant en série
Métadonnées IPFS (InterPlanetary File System), Mint et Multiple Mint
Infura IPFS + Pinata Pinata, métadonnées JSON, mint (tokenId, uri) et multipleMint : 0,1 ETH × n, 750 approvisionnement.
Même série
Atterrissage de collection et entonnoir de liste blanche WIP
Atterrissage à la menthe CBD All-Stars : comment #GETINTHEWIP, 750 emplacements, un entonnoir de remise et une surface à la menthe uniquement MetaMask ?