Skip to main content

Prerequisites

Required Tools

  • Node.js 18+ - JavaScript runtime
  • pnpm (recommended) or npm/yarn - Package manager
  • Git - Version control
  • Wallet with Base ETH - For deployments and transactions

Quick Start Options

Install the SDK

pnpm add @b3dotfun/sdk

Project Setup

# Create a new project
mkdir my-bondkit-app
cd my-bondkit-app
pnpm init

# Install dependencies
pnpm add @b3dotfun/sdk typescript
pnpm add -D @types/node tsx

# Create TypeScript config
npx tsc --init

Environment Configuration

Basic Setup

Create a .env file in your project root:
# Required for server-side operations
WALLET_PRIVATE_KEY=0x...

# Optional: Custom RPC endpoint (defaults to public)
RPC_URL=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

# Optional: API configuration
BONDKIT_API_ENDPOINT=https://api.b3.fun

Security Best Practices

Never commit private keys to version control!
  • Add .env to your .gitignore
  • Use environment variables in production
  • Consider using a key management service
  • Use separate wallets for development and production

Client Initialization

Basic Setup

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

// For server-side usage with private key
const factory = new BondkitTokenFactory(
  base.id, 
  process.env.WALLET_PRIVATE_KEY
);

// For client-side usage with wallet provider
const clientFactory = new BondkitTokenFactory(base.id);
await clientFactory.connect(window.ethereum);

Advanced Configuration

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

// Custom wallet client setup
const walletClient = createWalletClient({
  chain: base,
  transport: custom(window.ethereum)
});

// Initialize with custom configuration
const config = getConfig(base.id);
const factory = new BondkitTokenFactory(base.id);

// Connect with custom wallet client
await factory.connect(walletClient.transport);

// Work with existing token
const token = new BondkitToken(
  "0x123...", // token address
  process.env.WALLET_PRIVATE_KEY
);

TypeScript Configuration

Recommended tsconfig.json for BondKit projects:
{
  "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"]
}

Testing Your Setup

Create a test file 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 connected successfully!");
    console.log("Implementation address:", implementationAddress);
  } catch (error) {
    console.error("❌ Connection failed:", error);
  }
}

testConnection();
Run the test:
npx tsx test-bondkit.ts

Next Steps

Quickstart Guide

Deploy your first token in minutes

SDK Reference

Explore all SDK methods and features

Demo Application

Study the complete implementation

API Documentation

Learn about backend services and analytics

Troubleshooting

Ensure the SDK is properly installed:
pnpm add @b3dotfun/sdk
If using React components, you may need:
pnpm add @wagmi/core @tanstack/react-query
Update TypeScript to latest version:
pnpm add -D typescript@latest @types/node@latest
  • Verify your RPC endpoint is working
  • Check wallet has sufficient Base ETH
  • Ensure private key format is correct (with 0x prefix)
Clear cache and reinstall:
rm -rf node_modules .next
pnpm install