Installation
Install and configure BondKit for launching ERC20 bond tokens on Base.
Prerequisites
Quick Start Options
Install the SDK
bashpnpm add @b3dotfun/sdk
bashnpm install @b3dotfun/sdk
bashyarn 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
Add to Existing Project
bashpnpm add @b3dotfun/sdk
bashnpm install @b3dotfun/sdk
bashyarn add @b3dotfun/sdk
Note
The SDK includes all necessary dependencies including viem
Clone Demo Application
The fastest way to get started is with our complete demo application:
bash# Clone the B3 monorepogit clone https://github.com/b3-fun/b3-mono.gitcd b3-mono# Install dependenciespnpm install# Navigate to the BondKit democd apps/bondkit-demo# Set up environmentcp .env.example .env.local# Edit .env.local with your configuration# Run the demopnpm dev
Info
The demo app is located at apps/bondkit-demo/src/app/ and includes:
- Complete token deployment flow
- Trading interface with TradingView charts
- Wallet connection with B3 authentication
- Real-time price and volume tracking
- Migration management interface
Demo App Structure
textapps/bondkit-demo/src/app/├── page.tsx # Landing page with token list├── deploy/page.tsx # Token deployment interface├── token/[address]/page.tsx # Individual token trading page├── providers.tsx # Web3 providers setup├── b3ProviderWrapper.tsx # B3 authentication wrapper└── api/ # TradingView data endpoints └── udf/ # Universal Data Feed for charts
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
.envto your.gitignore - Use environment variables in production
- Consider using a key management service
- Use separate wallets for development and production
Client Initialization
Basic Setup
typescriptimport { 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
typescriptimport { 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:
typescriptimport { 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:
bashnpx tsx test-bondkit.ts
Next Steps
Troubleshooting
Ensure the SDK is properly installed:
bashpnpm add @b3dotfun/sdk
If using React components, you may need:
bashpnpm add @wagmi/core @tanstack/react-query
Update TypeScript to latest version:
bashpnpm 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:
bashrm -rf node_modules .nextpnpm install