Saltar al contenido
Proyecto showcaseBlockchain y Web3
  • 223 tests
  • 100 % de cobertura
  • analizado con Slither

SigmaNFT Collection

Drop ERC-721 con allowlist Merkle, fase pública, royalties y reveal diferido

ERC-721ERC-2981Merkle proofsFoundry

Qué es

SigmaNFT guarda únicamente una raíz de Merkle para la allowlist: los usuarios presentan una prueba, compatible con @openzeppelin/merkle-tree, de modo que se puede incluir a miles de seguidores en la allowlist sin escribir direcciones on-chain. Las fases pasan de Closed a Allowlist y a Public, cada una con su propio precio y su límite por wallet, bajo un suministro máximo global e inmutable.

Hasta que el owner revela la colección, todos los tokens devuelven los metadatos provisionales; tras el reveal apuntan a los metadatos definitivos. Los royalties ERC-2981 indican a los marketplaces las comisiones del creador, y la recaudación se retira a la cuenta del owner.

El problema de negocio

Un drop de NFT debe premiar a los primeros seguidores sin guardar miles de direcciones on-chain, impedir que bots y ballenas arrasen con la acuñación, generar royalties en las ventas secundarias y evitar el rarity sniping antes del reveal. Las implementaciones ingenuas fallan justo en estos puntos.

Cómo funciona

  1. 1

    Off-chain: se construye un árbol de Merkle a partir de la allowlist, se publican las pruebas y se fija la raíz de Merkle.

  2. 2

    El owner abre la fase de allowlist; las wallets incluidas acuñan con su prueba al precio de allowlist.

  3. 3

    El owner abre la fase pública; cualquiera puede acuñar hasta el límite por wallet.

  4. 4

    Tras la acuñación, los metadatos se suben a IPFS y el owner llama a reveal(baseURI).

  5. 5

    El owner retira la recaudación.

Medidas de seguridad

  • Vías de acuñación nonReentrant; los contadores se actualizan antes de los callbacks de _safeMint
  • Regla de pago exacto: sin lógica de reembolso, sin ETH perdido
  • Hojas de Merkle con doble hash, verificadas con MerkleProof de OpenZeppelin
  • Suministro máximo inmutable; Ownable2Step
  • La retirada revierte en lugar de perder fondos en silencio
  • Verificado con fuzzing: supply ≤ MAX_SUPPLY, balance == minted × price

Funcionalidades

  • Allowlist Merkle (basada en pruebas)
  • Fases Closed → Allowlist → Public con precios independientes
  • Límites por wallet en cada fase
  • MAX_SUPPLY inmutable
  • Royalties ERC-2981
  • Reveal diferido

Casos de uso típicos

  • Drops de PFP y de arte, pases de membresía, entradas para eventos
  • Colecciones de fidelización de marcas para clientes actuales
  • Preventas de objetos de juego con revelación diferida de la rareza

Limitaciones conocidas

El alojamiento de los metadatos (p. ej., el pinning en IPFS) se gestiona off-chain.

Otros contratos showcase

Showcase

Milestone Escrow

El cliente bloquea por adelantado todo el presupuesto, repartido en hitos. Los fondos solo se mueven por liberación, decisión del árbitro o cancelación.

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20

223 tests · 100 % de cobertura · analizado con Slither

Showcase

Token + Vesting + Staking

Un ERC-20 con límite máximo y aprobaciones sin gas, calendarios de vesting con cliff para equipo e inversores y recompensas de staking al estilo Synthetix.

ERC-20EIP-2612OpenZeppelin v5

223 tests · 100 % de cobertura · analizado con Slither

Showcase

Gold-Backed Token (RWA)

El respaldo se convierte en condición previa de la acuñación: solo se pueden acuñar tokens si la reserva de oro declarada cubre el nuevo suministro total.

ERC-20AccessControlProof of reserve

223 tests · 100 % de cobertura · analizado con Slither

Estándares: Solidity 0.8.x, OpenZeppelin, tests en Foundry con fuzzing, análisis estático con Slither y código fuente verificado. 223 tests · 100 % de cobertura · analizado con Slither.

¿Tienes un proyecto en mente?

Cuéntanos qué estás construyendo. Normalmente en pocos días laborables recibes una valoración honesta, un alcance claro y una propuesta a precio fijo o por hitos.

¿Prefieres escribirnos primero? Escríbenos

Hablarás directamente con Ing. Ismet Mesic, Tech lead.