Resumen

Esta página proporciona ejemplos completos y reales de implementación de CreateKit en varios escenarios. Cada ejemplo incluye código completo, manejo de errores y mejores prácticas.

Colección Básica de NFT

Una colección de arte simple con acuñación gratuita:
Colección de Arte Básica
import { CollectionManager, BaseMintStorage, b3Testnet } from "@b3dotfun/basemint";
import { createPublicClient, createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";

async function createBasicArtCollection() {
  // Configurar clientes
  const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
  const publicClient = createPublicClient({
    chain: b3Testnet,
    transport: http(),
  });
  const walletClient = createWalletClient({
    chain: b3Testnet,
    transport: http(),
    account,
  });

  // Inicializar servicios
  const collectionManager = new CollectionManager(publicClient);
  const storage = new BaseMintStorage({ baseUrl: "https://api.basemint.fun" });

  // Definir colección
  const artCollection = {
    name: "Galería de Arte Digital",
    symbol: "DAG",
    creator: account.address,
    gameOwner: account.address,
    description: "Una colección curada de obras de arte digitales",
    image: "https://example.com/art-collection.png",
    maxSupply: 1000n,
    mintPrice: 0n, // Acuñación gratuita
    maxPerWallet: 5n,
    tokenStandard: "ERC721" as const,
    chainId: 1993,
  };

  try {
    console.log("🎨 Creando colección de arte...");

    // Generar firma del creador
    const creatorSignature = await collectionManager.generateCreatorSignature(walletClient, artCollection);

    // Predecir dirección
    const predictedAddress = collectionManager.predictCollectionAddress(artCollection, creatorSignature);
    console.log(`📍 Dirección de la colección: ${predictedAddress}`);

    // Enviar a almacenamiento
    await storage.submitCollection(artCollection, creatorSignature);
    console.log("✅ Metadatos de la colección almacenados");

    // Desplegar y acuñar el primer NFT
    const deployerSignature = await collectionManager.generateDeployerSignature(walletClient, predictedAddress);

    const collection = collectionManager.createCollection(predictedAddress, "ERC721");
    const mintTx = await collection.mint(walletClient, 1n, undefined, 0n, [], creatorSignature, deployerSignature);

    console.log(`🎉 Colección desplegada y primer NFT acuñado: ${mintTx}`);
    return { collection, predictedAddress, mintTx };
  } catch (error) {
    console.error("❌ Falló la creación de la colección de arte:", error);
    throw error;
  }
}

// Uso
createBasicArtCollection()
  .then(result => console.log("Colección creada exitosamente:", result))
  .catch(error => console.error("Creación fallida:", error));

Colección de Juegos con Lista Blanca

Una colección de juegos con acceso de lista blanca por niveles:

Plataforma Multi-Colección

Una plataforma que gestiona múltiples colecciones: