Playbook
Metadatos IPFS (Sistema de archivos interplanetario), Mint y Multiple Mint (Metadatos Ipfs Sistema DE Archivos Interplanetario Mint Y Multiple Mint)
Infura IPFS + pin Pinata, metadatos JSON, mint(tokenId, uri) y multipleMint: 0,1 ETH × n, suministro de 750.
Colección NFT Mint y endurecimiento de Mainnet
Parte 2 de 4
Superficies de menta CBD All-Stars y Confident Gorillas: embudo de lista blanca WIP, metadatos IPFS, canal de revelación de marcador de posición y fortalecimiento de billetera de red principal con Web3Modal.
La cadena no sostiene la imagen; monto del CID
En la transmisión Mint de Confident Gorillas, las imágenes y características se escriben primero en IPFS: JSON/carga de archivos con Infura add API, pin con Pinata. Luego se llama al contrato mint o multipleMint; valor 0,1 ETH × uds. El selector de cantidad (2–5) en Landing está directamente conectado al parámetro 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
## Conceptos en la primera mención```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.
```La carga de Infura y el pin de piñata son pasos separados. Si la carga se realiza correctamente y se olvida el pin, las puertas de enlace pueden dar 404 con el tiempo.
## Forma de metadatos
nftContractUtils configura metadatos con nombre, descripción, imagen (hash IPFS), external_url y atributos (artista, fondo, cuerpo, ojo, boca). uploadJSON devuelve hash; Este hash se acuña como uri.```text
metadata JSON
name / description / image
attributes[] → traits
↓
uploadJSON → ipfsMetadataHash
```## menta vs múltipleMint
Menta única: mint(tokenId, ipfsMetadataHash) + 0,1 ETH. Múltiple: multipleMint(ipfsMetadataHash, num) + 0.1 ETH × num. La selección de página de inicio selecciona del 2 al 5; El contenedor Minter llama a multiplemintNFT. Con un límite de suministro total de 750 restantes, se muestra en la interfaz de usuario.```text
UI qty (2..5)
↓
multipleMint(uri, num)
value = 1e17 * num
gasLimit ≈ 300000 (app default)
```## ADR: IPFS antes, cadena después
Veredicto: los metadatos y los medios no están integrados en la cadena; primero IPFS, luego referencia de uri en cadena. Ventaja: ruta de actualización económica (revelar) y datos de llamada pequeños. Riesgo: la fijación y la puerta de enlace pueden convertirse en puntos únicos: se requieren copias de seguridad de Pinata pin + puerta de enlace pública.```text
ADR-02 Content-addressed mint
Off-chain: Infura add + Pinata pin
On-chain: store URI hash only
Read path: tokenURI → retrieveJSON
```## Escenarios de fracaso
Arreglar gasPrice: 0 hará que tx permanezca estancado/bajo precio en la red principal. La red incorrecta (reserva de Rinkeby/Infura) no le permitirá firmar el acuerdo de red principal. Falta de coincidencia de ABI: si la ABI de la interfaz y la firma multipleMint implementada no coinciden, la codificación genera un error. Dirección resguardada: En All-Stars, cuatro contratos miraban a la misma dirección.```text
Fail matrix
gasPrice=0 → stuck / underpriced
wrong chainId → silent wrong net
ABI skew → encode / revert
stub address → call nowhere useful
Los enfrentamientos más confusos de este episodio.```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
## Lista de verificación de su propio sistema
1. ¿El CID anterior a la menta está fijado en Pinata (o equivalente)?
2. ¿La cuenta wei verifica el valor de 0,1 ETH × num?
3. ¿Está el totalSupply + num ≤ 750 verificado en la interfaz de usuario y el contrato?
4. ¿GasPrice / maxFeePerGas es dinámico para la red principal?
5. ¿La ABI implementada y la ABI front-end provienen del mismo compromiso?
## Cosas para recordar de esta sección
1. Tubería de menta: rasgos → IPFS → pin → llamada de contrato → valor.
2. multipleMint es el equivalente en cadena del selector de cantidad de aterrizaje.
3. gasPrice: 0, dirección stub y ABI skew son el trío clásico de mainnet.
> Si incorporas metadatos en la cadena, encareces el dinero; Si deja el CID sin fijar perderá la colección.
FAQ
Frequently asked questions
¿Qué es IPFS CID?
Dirección contextual del contenido; tokenURI normalmente hace referencia a este hash.
¿Qué es fijar?
Para evitar perder el CID, manténgalo en un servicio de fijación como Pinata.
¿Es correcto "Escribir la imagen como base64 en el contrato"?
Poner imagen en IPFS; mantener solo CID/URI en cadena
¿Qué soluciona esta sección?
Esta sección conecta la canalización de metadatos al mint tx; La siguiente sección abre el URI del marcador de posición y la revelación del propietario. En la transmisión Mint de Confident Gorillas, las imágenes y características se escriben primero en IPFS: JSON/carga de archivos con Infura add API, pin con Pinata. Luego se llama al contrato mint o multipleMint; valor 0,1 ETH × uds. El selector de cantidad (2–5) en Landing está directamente conectado al parámetro multipleMint(num).
Principios de ingeniería aprendidos
- Primero, se debe abordar el contenido, luego se debe almacenar el uri en la cadena.
- Verifique dos veces el precio, la cantidad y el límite de suministro entre la UI y el contrato.
- Demuestre los parámetros de transmisión de mainnet (gas, chainId, dirección, ABI) en la preparación.
Continuar leyendo
Continuar leyendo
Siguiente en la serie
URI de marcador de posición y línea de revelación de propietario
En Mint, metadatos de marcador de posición, mapa de uridata, revela (tokenId, uriHash) y revela superficie que solo el propietario puede abrir.
Siguiente en la serie
Embudo de aterrizaje de colección y lista blanca de WIP
Aterrizaje de CBD All-Stars mint: ¿Cómo se combinan #GETINTHEWIP, 750 espacios, embudo de descuento y superficie mint exclusiva de MetaMask?
Misma serie
Mainnet Web3Modal y endurecimiento de billetera
Migración de MetaMask únicamente a Web3Modal + WalletConnect + Coinbase WalletLink; chainId, gas y endurecimiento de dirección.