プレイブック
プレースホルダー URI と所有者表示行 (Uri)
Mint では、プレースホルダー メタデータ、uridata マップ、reveal(tokenId, uriHash)、および所有者のみが開くことができるサーフェスを明らかにします。
NFTコレクションのミントとメインネットの強化
一部 3 の 4
CBD オールスターと自信のあるゴリラのミント サーフェス: WIP ホワイトリスト ファネル、IPFS メタデータ、プレースホルダー→公開パイプライン、Web3Modal によるメインネット ウォレットの強化。
ミントはランダムなアートを与えません。明らかにする
Confident Gorillas 1.4 ミントでは、最終的なイメージがすぐに表示されないことがよくあります。プレースホルダー/一時 URI mint はその場で書き込まれます。実際の CID は、tokenId → ハッシュ/リンクとして uridata テーブル内で待機します。 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 を検証します。 Contract.methods.reveal(...).send({ from }) と一致する場合。次に、tokenURI は新しいハッシュを返します。 retrieveJSON はイメージ CID を解決します。```text
Reveal.ts
uridata[tokenId].hash
↓
revealToken → owner check
↓
reveal(tokenId, hash).send
```## ADR: オフチェーンテーブル + オンチェーン所有者の公開
決定: 最終的な CID リストはクライアント/バンドル (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。非所有ウォレット → サイレント no-op (関数は 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
よくある質問
プレースホルダー メタデータとは何ですか?
Mint fly に書かれた一時 URI。最終的な特性/ビジュアルはまだ接続されていません。
ウリデータとは何ですか?
tokenId → { ハッシュ、リンク、インデックス } マップ; CID テーブルを公開する準備ができました。
「Reveal = UI のぼかしを削除するだけ」は正しいですか?
Reveal = オンチェーントークン URI 更新; UIは結果のみを表示します
このセクションでは何を修正しますか?
このセクションでは、製品とセキュリティの境界としての公開を修正します。次の部分では、メインネットへのウォレット接続を強化します。 Confident Gorillas 1.4 ミントでは、最終的なイメージがすぐに表示されないことがよくあります。プレースホルダー/一時 URI mint はその場で書き込まれます。実際の CID は、tokenId → ハッシュ/リンクとして uridata テーブル内で待機します。 Reveal は、コンテナ所有者がチェックした後、reveal(tokenId, uriHash) を送信します。これは、アートが「ウォレットに表示される」という約束です。
学んだエンジニアリング原則
- Mint URI と最終 URI を意図的に分離します。
- Reveal 権限を ownerOf (または明確なロール) でロックします。
- オフチェーン CID テーブルでピンとインデックスの整合性を確認してください。
続きを読む
続きを読む
シリーズの次のシリーズ
メインネット Web3Modal とウォレットの強化
MetaMask のみから Web3Modal + WalletConnect + Coinbase WalletLink への移行。 chainId、ガス、アドレスの強化。
シリーズの次のシリーズ
IPFS (InterPlanetary File System) メタデータ、ミントおよびマルチ ミント
Infura IPFS + Pinata ピン、メタデータ JSON、mint(tokenId, uri) および multipleMint: 0.1 ETH × n、750 供給。
同じシリーズ
コレクションのランディングと WIP ホワイトリスト ファネル
CBD オールスターのミント ランディング: #GETINTHEWIP、750 スロット、割引ファネル、メタマスクのみのミント サーフェスはどのように組み合わされるのでしょうか?