手册

IPFS(星际文件系统)元数据、铸币和多次铸币 (Ipfs)

Infura IPFS + Pinata pin、元数据 JSON、mint(tokenId, uri) 和 multipleMint:0.1 ETH × n,750 供应。

NFT Collection 铸币和主网强化

部分 2 的 4

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

NFT mint and mainnet architecture diagram

链子不能容纳图片;来电显示金额

在 Confident Gorillas mint 流中,图像和功能首先写入 IPFS:使用 Infura add API 上传 JSON/文件,使用 Pinata 固定。然后调用合约mint或者multipleMint;价值 0.1 ETH × 个Landing 中的数量选择器 (2–5) 直接连接到 multipleMint(num) 参数。```text traits + image ↓ uploadJSON / uploadFile (Infura IPFS) ↓ pinHash (Pinata) ↓ CID / metadata hash ↓ mint(tokenId, uri) | multipleMint(uri, num) ↓ value = 0.1 ETH × num supply ≤ 750


## 第一次提到的概念```text
📦 IPFS CID
İçeriğin içeriğe dayalı adresi; tokenURI genelde bu hash'e referans verir.

📦 Pinning
CID'nin kaybolmaması için Pinata gibi bir pinning servisinde tutma.

📦 multipleMint
Tek tx'de birden fazla NFT basma; value ve gas maliyeti adetle ölçeklenir.

📦 Mint Price
Confident Gorillas'da 1e17 wei (0.1 ETH) × mint adedi.
```Infura 上传和 Pinata pin 是单独的步骤。如果上传成功并且忘记了 PIN,网关可能会随着时间的推移给出 404。

## 元数据形状

nftContractUtils 设置包含名称、描述、图像(IPFS 哈希)、external_url 和属性(艺术家、背景、身体、眼睛、嘴巴)的元数据。 uploadJSON 返回哈希值;这个哈希值会作为 uri 被 Mint 生成。```text
metadata JSON
  name / description / image
  attributes[] → traits
       ↓
  uploadJSON → ipfsMetadataHash
```## 薄荷与多重薄荷

单次铸造:mint(tokenId, ipfsMetadataHash) + 0.1 ETH。倍数: multipleMint(ipfsMetadataHash, num) + 0.1 ETH × num。主页选择选择2-5; Minter 容器调用 multiplemintNFT。 UI 中显示剩余的总供应上限为 750。```text
UI qty (2..5)
   ↓
multipleMint(uri, num)
   value = 1e17 * num
   gasLimit ≈ 300000 (app default)
```## ADR:IPFS 之前,链之后

结论:元数据和媒体未嵌入链中;首先是 IPFS,然后是链上的 uri 引用。优点:便宜的更新路径(显示)和小的调用数据。风险:固定和网关可能会成为单点 - 需要 Pinata pin + 公共网关备份。```text
ADR-02 Content-addressed mint
  Off-chain: Infura add + Pinata pin
  On-chain: store URI hash only
  Read path: tokenURI → retrieveJSON
```## 失败场景

修复gasPrice:0将导致tx在主网上保持卡住/定价过低的状态。错误的网络(Rinkeby/Infura后备)将不允许您签署主网协议。 ABI 不匹配:如果前端 ABI 和部署的 multipleMint 签名不匹配,则编码会出错。存根地址:在全明星赛中,有四份合约查看同一个地址。```text
Fail matrix
  gasPrice=0     → stuck / underpriced
  wrong chainId  → silent wrong net
  ABI skew       → encode / revert
  stub address   → call nowhere useful

本期最令人困惑的对决```text

❌ Image'ı base64 olarak sözleşmeye yaz ✓ Image'ı IPFS'e koy; zincirde yalnızca CID/URI tut

❌ Upload yeter, pin opsiyonel ✓ Upload + pin birlikte; aksi halde içerik unorphan riski

❌ gasPrice: 0 'otomatik' demektir ✓ gasPrice: 0 çoğu mainnet koşulunda underpriced tx üretir


## 您自己的系统清单

1. 铸币前的 CID 是否固定在 Pinata(或同等物)中?
2. 0.1 ETH × num 的价值是否经过 wei 账户验证?
3. UI和合约中是否检查totalSupply + num ≤ 750?
4. 主网的gasPrice / maxFeePerGas 是动态的吗?
5. 部署的 ABI 和前端 ABI 是否来自同一提交?

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

1. 铸币管道:traits → IPFS → pin → 合约调用 → value。
2. multipleMint 是链上相当于落地数量选择器的。
3.gasPrice: 0、存根地址和ABI skew是主网的经典三重奏。

> 如果你在链上嵌入元数据,你的铸币成本就会变得昂贵;如果您不固定 CID,您将丢失该集合。

FAQ

Frequently asked questions

什么是 IPFS CID?

内容的上下文地址; tokenURI 通常引用此哈希。

什么是固定?

为了避免丢失 CID,请将其保留在 Pinata 等固定服务上。

“将图像作为 base64 写入合约”是否正确?

将镜像放入IPFS;仅将 CID/URI 保留在链中

本节修复了什么?

此部分将元数据管道连接到 mint tx;下一部分将打开占位符 URI 和所有者显示。在 Confident Gorillas mint 流中,图像和功能首先写入 IPFS:使用 Infura add API 上传 JSON/文件,使用 Pinata 固定。然后调用合约mint或者multipleMint;价值 0.1 ETH × 个Landing 中的数量选择器 (2–5) 直接连接到 multipleMint(num) 参数。

学到的工程原理

  • 首先,应该对内容进行寻址,然后将 uri 存储在链上。
  • 双重验证UI和合约之间的价格、数量和供应上限。
  • 在暂存阶段证明主网交易参数(gas、chainId、地址、ABI)。

继续阅读

继续阅读

系列中的下一个

系列中的下一个

同系列

Paylaş