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

bash
pnpm add @b3dotfun/sdk

Project Setup

bash
# Create a new projectmkdir my-bondkit-appcd my-bondkit-apppnpm init# Install dependenciespnpm add @b3dotfun/sdk typescriptpnpm add -D @types/node tsx# Create TypeScript confignpx tsc --init

Environment Configuration

Basic Setup

Create a .env file in your project root:

bash
# Required for server-side operationsWALLET_PRIVATE_KEY=0x...# Optional: Custom RPC endpoint (defaults to public)RPC_URL=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY# Optional: API configurationBONDKIT_API_ENDPOINT=https://api.b3.fun

Security Best Practices

Warning

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

typescript
import { BondkitTokenFactory } from "@b3dotfun/sdk/bondkit";import { base } from "viem/chains";// For server-side usage with private keyconst factory = new BondkitTokenFactory( base.id, process.env.WALLET_PRIVATE_KEY);// For client-side usage with wallet providerconst clientFactory = new BondkitTokenFactory(base.id);await clientFactory.connect(window.ethereum);

Advanced Configuration

typescript
import { BondkitTokenFactory, BondkitToken, getConfig} from "@b3dotfun/sdk/bondkit";import { createWalletClient, custom } from "viem";import { base } from "viem/chains";// Custom wallet client setupconst walletClient = createWalletClient({ chain: base, transport: custom(window.ethereum)});// Initialize with custom configurationconst config = getConfig(base.id);const factory = new BondkitTokenFactory(base.id);// Connect with custom wallet clientawait factory.connect(walletClient.transport);// Work with existing tokenconst token = new BondkitToken( "0x123...", // token address process.env.WALLET_PRIVATE_KEY);

TypeScript Configuration

Recommended tsconfig.json for BondKit projects:

json
{ "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:

typescript
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:

bash
npx tsx test-bondkit.ts

Next Steps

Quickstart Guide

Deploy your first token in minutes

Learn More
SDK Reference

Explore all SDK methods and features

Learn More
Demo Application

Study the complete implementation

API Documentation

Learn about backend services and analytics

Learn More

Troubleshooting

Ensure the SDK is properly installed:

bash
pnpm add @b3dotfun/sdk

If using React components, you may need:

bash
pnpm add @wagmi/core @tanstack/react-query

Update TypeScript to latest version:

bash
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:

bash
rm -rf node_modules .nextpnpm install
Ask a question... ⌘I