Pré-requisitos

Ferramentas Necessárias

  • Node.js 18+ - Ambiente de execução JavaScript
  • pnpm (recomendado) ou npm/yarn - Gerenciador de pacotes
  • Git - Controle de versão
  • Carteira com Base ETH - Para implantações e transações

Opções de Início Rápido

Instalar o SDK

pnpm add @b3dotfun/sdk

Configuração do Projeto

# Criar um novo projeto
mkdir my-bondkit-app
cd my-bondkit-app
pnpm init

# Instalar dependências
pnpm add @b3dotfun/sdk typescript
pnpm add -D @types/node tsx

# Criar configuração TypeScript
npx tsc --init

Configuração do Ambiente

Configuração Básica

Crie um arquivo .env na raiz do seu projeto:
# Necessário para operações do lado do servidor
WALLET_PRIVATE_KEY=0x...

# Opcional: Endpoint RPC personalizado (padrão para público)
RPC_URL=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

# Opcional: Configuração da API
BONDKIT_API_ENDPOINT=https://api.b3.fun

Melhores Práticas de Segurança

Nunca cometa chaves privadas no controle de versão!
  • Adicione .env ao seu .gitignore
  • Use variáveis de ambiente em produção
  • Considere usar um serviço de gerenciamento de chaves
  • Use carteiras separadas para desenvolvimento e produção

Inicialização do Cliente

Configuração Básica

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

// Para uso do lado do servidor com chave privada
const factory = new BondkitTokenFactory(
  base.id, 
  process.env.WALLET_PRIVATE_KEY
);

// Para uso do lado do cliente com provedor de carteira
const clientFactory = new BondkitTokenFactory(base.id);
await clientFactory.connect(window.ethereum);

Configuração Avançada

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

// Configuração personalizada do cliente de carteira
const walletClient = createWalletClient({
  chain: base,
  transport: custom(window.ethereum)
});

// Inicializar com configuração personalizada
const config = getConfig(base.id);
const factory = new BondkitTokenFactory(base.id);

// Conectar com cliente de carteira personalizado
await factory.connect(walletClient.transport);

// Trabalhar com token existente
const token = new BondkitToken(
  "0x123...", // endereço do token
  process.env.WALLET_PRIVATE_KEY
);

Configuração TypeScript

tsconfig.json recomendado para projetos 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"]
}

Testando Sua Configuração

Crie um arquivo de teste 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("✅ SDK BondKit conectado com sucesso!");
    console.log("Endereço de implementação:", implementationAddress);
  } catch (error) {
    console.error("❌ Falha na conexão:", error);
  }
}

testConnection();
Execute o teste:
npx tsx test-bondkit.ts

Próximos Passos

Solução de Problemas