Prerrequisitos

Herramientas Requeridas

  • Node.js 18+ - Entorno de ejecución JavaScript
  • pnpm (recomendado) o npm/yarn - Gestor de paquetes
  • Git - Control de versiones
  • Wallet con Base ETH - Para despliegues y transacciones

Opciones de Inicio Rápido

Instalar el SDK

pnpm add @b3dotfun/sdk

Configuración del Proyecto

# Crear un nuevo proyecto
mkdir my-bondkit-app
cd my-bondkit-app
pnpm init

# Instalar dependencias
pnpm add @b3dotfun/sdk typescript
pnpm add -D @types/node tsx

# Crear configuración de TypeScript
npx tsc --init

Configuración del Entorno

Configuración Básica

Crea un archivo .env en la raíz de tu proyecto:
# Requerido para operaciones del lado del servidor
WALLET_PRIVATE_KEY=0x...

# Opcional: Punto final RPC personalizado (por defecto al público)
RPC_URL=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

# Opcional: Configuración de la API
BONDKIT_API_ENDPOINT=https://api.b3.fun

Mejores Prácticas de Seguridad

¡Nunca comprometas claves privadas al control de versiones!
  • Agrega .env a tu .gitignore
  • Usa variables de entorno en producción
  • Considera usar un servicio de gestión de claves
  • Usa wallets separadas para desarrollo y producción

Inicialización del Cliente

Configuración Básica

import { BondkitTokenFactory } from "@b3dotfun/sdk/bondkit";
import { base } from "viem/chains";

// Para uso del lado del servidor con clave privada
const factory = new BondkitTokenFactory(
  base.id, 
  process.env.WALLET_PRIVATE_KEY
);

// Para uso del lado del cliente con proveedor de wallet
const clientFactory = new BondkitTokenFactory(base.id);
await clientFactory.connect(window.ethereum);

Configuración Avanzada

import { 
  BondkitTokenFactory, 
  BondkitToken,
  getConfig 
} from "@b3dotfun/sdk/bondkit";
import { createWalletClient, custom } from "viem";
import { base } from "viem/chains";

// Configuración personalizada del cliente de wallet
const walletClient = createWalletClient({
  chain: base,
  transport: custom(window.ethereum)
});

// Inicializar con configuración personalizada
const config = getConfig(base.id);
const factory = new BondkitTokenFactory(base.id);

// Conectar con el cliente de wallet personalizado
await factory.connect(walletClient.transport);

// Trabajar con un token existente
const token = new BondkitToken(
  "0x123...", // dirección del token
  process.env.WALLET_PRIVATE_KEY
);

Configuración de TypeScript

tsconfig.json recomendado para proyectos BondKit:
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "lib": ["ES2020", "DOM"],
    "moduleResolution": "node",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowJs": true,
    "noEmit": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Probando Tu Configuración

Crea un archivo de prueba test-bondkit.ts:
import { BondkitTokenFactory } from "@b3dotfun/sdk/bondkit";
import { base } from "viem/chains";

async function testConnection() {
  try {
    const factory = new BondkitTokenFactory(base.id);
    const implementationAddress = await factory.getImplementationAddress();
    
    console.log("✅ BondKit SDK conectado exitosamente!");
    console.log("Dirección de implementación:", implementationAddress);
  } catch (error) {
    console.error("❌ Conexión fallida:", error);
  }
}

testConnection();
Ejecuta la prueba:
npx tsx test-bondkit.ts

Próximos Pasos

Solución de Problemas