手册

占位符 URI 和所有者显示行 (Uri)

在 Mint 中,占位符元数据、uridata 映射、reveal(tokenId, uriHash) 和只有所有者才能打开的reveal surface。

NFT Collection 铸币和主网强化

部分 3 的 4

CBD 全明星和自信的大猩猩薄荷表面:WIP 白名单漏斗、IPFS 元数据、占位符→显示管道以及使用 Web3Modal 强化主网钱包。

NFT mint and mainnet architecture diagram

Mint 不提供随机艺术;揭示了

在 Confident Gorillas 1.4 mint 中通常不会立即显示最终图像。占位符/临时 URI 是即时写入的;真实的 CID 在 uridata 表中以 tokenId → hash/link 的形式等待。 Reveal 在容器所有者检查后发送 Reveal(tokenId, uriHash) — 这是艺术“出现在你的钱包中”的承诺。```text mint → placeholder / interim tokenURI │ uridata[tokenId] = { hash, link } │ ownerOf(tokenId) === connected wallet? yes │ no → deny ↓ reveal(tokenId, uriHash) ↓ tokenURI updated → retrieveJSON / image


## 第一次提到的概念```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ü.
```显示按钮可能在查看器中被禁用;操作揭示有时是由所有者面板或脚本触发的。主人又来了。

## 为什么是占位符?

公平性和可操作性:在全部供应压榨之前减少元数据泄漏,将艺术生成与薄荷节奏分开。用户铸币;艺术后来随着“揭示”而来。 Landing FAQ 将其描述为出现在 MetaMask 中。```text
Mint window
  → same placeholder look
Reveal window
  → unique CID per tokenId
```## 显示管道

Reveal.ts 读取 uridata.uri[tokenId],获取哈希值,调用 RevealToken(tokenId, hash)。 nftContractUtils 验证ownerOf; if 匹配 Contract.methods.reveal(...).send({ from })。然后 tokenURI 返回新的哈希值; retrieveJSON 解析图像 CID。```text
Reveal.ts
  uridata[tokenId].hash
       ↓
revealToken → owner check
       ↓
reveal(tokenId, hash).send
```## ADR:链下表+链上所有者揭示

决策:最终的 CID 列表保存在 client/bundle (uridata) 中;更新权限仍然由所有者控制的揭示功能保留。替代方案(链上提交-显示,VRF)更昂贵。权衡:uridata 包可能会泄露——泄露时间和访问控制是产品风险。```text
ADR-03 Placeholder + owner reveal
  Store: uridata off-chain map
  Auth: ownerOf gate
  Mutate: reveal(tokenId, uriHash)
  Reject: non-owner / wrong id
```## 失败场景

错误的 tokenId → 错误的艺术。哈希/链接不匹配 → 网关 404。非拥有钱包 → 静默无操作(函数返回 null)。如果 ABI 中没有泄露,编码就会爆炸。如果占位符从未更新,则集合仍然是“空盒子”。```text
Fail matrix
  wrong tokenId     → wrong art
  hash ≠ pinned CID → 404
  non-owner         → no-op / deny
  missing reveal ABI→ encode fail

本期最令人困惑的对决```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


## 您自己的系统清单

1. 是否可以固定并检索每个 tokenId 的 uridata 哈希值?
2. 在披露之前,ownerOf 控制权在客户端和合约上都可用吗?
3. 占位符 URI 和最终 URI 是否清晰分开?
4. 非所有者是否可以安全地禁用/拒绝“显示”按钮?
5. 750 个条目的表是否存在索引移位?

## 本节中需要记住的事情

1.占位符提供了揭示、公平和薄荷操作之间的区别。
2.未经所有者门禁而泄露,违反了藏品的完整性。
3. uridata是产品决定;不要假设隐私、设计时机。

> 轻松瞬间赋予艺术薄荷感;公正且不可撤销的给予是揭示的纪律。

FAQ

Frequently asked questions

什么是占位符元数据?

Mint Fly 上写的临时 URI;最终特征/视觉尚未连接。

什么是uridata?

tokenId → { 哈希、链接、索引 } 映射; CID 表已准备好展示。

“Reveal = 只是删除 UI 中的模糊”是否正确?

Reveal = 链上 tokenURI 更新; UI仅显示结果

本节修复了什么?

本节修复了产品和安全边界的泄露;下一部分将强化钱包与主网的连接。在 Confident Gorillas 1.4 mint 中通常不会立即显示最终图像。占位符/临时 URI 是即时写入的;真实的 CID 在 uridata 表中以 tokenId → hash/link 的形式等待。 Reveal 在容器所有者检查后发送 Reveal(tokenId, uriHash) — 这是艺术“出现在你的钱包中”的承诺。

学到的工程原理

  • 有意将 Mint URI 和最终 URI 分开。
  • 使用ownerOf(或明确的角色)锁定Reveal 权限。
  • 检查链外 CID 表的引脚和索引完整性。

继续阅读

继续阅读

系列中的下一个

系列中的下一个

同系列

Paylaş