Skip to main content

Overview

This guide walks you through the complete lifecycle of a Bondkit token, from initial creation to full decentralization. Understanding this flow is essential for successful token launches and management.

Phase 1: Token Creation

Pre-Deployment Planning

Critical Decisions:
ParameterImpactRecommendation
finalTokenSupplyTotal tokens ever created1M-100M tokens typical
aggressivenessFactorPrice curve steepness30-60 for balanced launches
targetAmountMigration threshold5-50 trading tokens
tradingTokenWhat users pay withUse B3 for Base mainnet
Example Configuration:
const tokenConfig = {
  name: "MyToken",
  symbol: "MTK",
  finalTokenSupply: parseEther("10000000"), // 10M tokens
  aggressivenessFactor: 45, // Moderate curve
  targetAmount: parseEther("20"), // 20 B3 tokens
  tradingToken: "0xB3B32F9f8827D4634fE7d973Fa1034Ec9fdDB3B3"
};
Fee Distribution Strategy:
const feeConfig = {
  feeRecipient: "0x...", // Your treasury/team address
  lpSplitRatioFeeRecipientBps: 2000n, // 20% to fee recipient
  // Remaining 80% becomes LP tokens after migration
};
Fee Flow:
  • Bonding Phase: 5% of all trades → feeRecipient
  • Post-Migration: 0.3% trading fees → LP providers

Deployment Execution

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

// 1. Initialize factory
const factory = new BondkitTokenFactory(
  base.id,
  process.env.WALLET_PRIVATE_KEY
);

// 2. Deploy with full configuration
const tokenAddress = await factory.deployBondkitToken({
  // Token metadata
  name: "MyToken",
  symbol: "MTK",
  
  // Economics
  finalTokenSupply: parseEther("10000000"),
  aggressivenessFactor: 45,
  targetAmount: parseEther("20"),
  
  // Fee structure  
  feeRecipient: process.env.TREASURY_ADDRESS,
  lpSplitRatioFeeRecipientBps: 2000n,
  
  // Admin & migration
  migrationAdminAddress: process.env.ADMIN_ADDRESS,
  
  // Uniswap V4 config
  bondingPhaseSplitter: "0x2AB69e0d9D20D3700466153D84a6574128154Fd2",
  v4PoolManager: "0x498581fF718922c3f8e6A244956aF099B2652b2b",
  v4Hook: "0xB36f4A2FB18b745ef8eD31452781a463d2B3f0cC",
  v4PoolFee: 3000,
  v4TickSpacing: 60,
  tradingToken: "0xB3B32F9f8827D4634fE7d973Fa1034Ec9fdDB3B3"
});

console.log(`✅ Token deployed: ${tokenAddress}`);

Phase 2: Bonding Phase Management

Launch Strategy

  • Community Building
  • Progress Monitoring
  • Community Engagement
Pre-Launch Checklist:
  • Token contract verified on Basescan
  • Community channels established (Discord/Telegram)
  • Marketing materials prepared
  • Initial buying strategy planned
  • Price tracking dashboard ready
Launch Day:
// Connect to your token
const token = new BondkitToken(tokenAddress, privateKey);

// Initial purchase to establish price
await token.buy(parseEther("1"), 0n); // 1 B3 token

// Announce launch with real data
const price = await token.getCurrentPrice();
const progress = await token.getBondingProgress();

console.log(`🚀 Live at ${formatEther(price)} B3 per token`);
console.log(`🎯 ${(progress.progress * 100).toFixed(1)}% to migration`);

Managing the Bonding Curve

Healthy Bonding Phase Indicators:
  • Steady trading volume
  • Growing holder base
  • Active community engagement
  • Progress toward target (but not too fast)
  • Minimal large sell-offs
Warning Signs:
  • No trading activity for 24+ hours
  • Single whale controlling large percentage
  • Rapid target achievement without community
  • Excessive volatility from bots

Phase 3: Migration Readiness

Pre-Migration Checklist

async function checkMigrationReadiness(token) {
  const [canMigrate, progress, status] = await Promise.all([
    token.canMigrate(),
    token.getBondingProgress(),
    token.currentStatus()
  ]);
  
  const checks = {
    targetReached: canMigrate,
    progressComplete: progress.progress >= 1.0,
    stillBondingPhase: status === 1,
    communityReady: await checkCommunityConsensus(), // Your logic
    liquidityPlan: await checkPostMigrationPlan()     // Your logic
  };
  
  const allReady = Object.values(checks).every(Boolean);
  
  return {
    ready: allReady,
    checks,
    recommendation: allReady ? 
      "✅ Ready to migrate!" : 
      "⏳ Address issues before migration"
  };
}

Migration Timing Strategy

Best Practices:
  • Announce migration 24-48 hours in advance
  • Choose high-activity time for your community
  • Ensure sufficient community consensus
  • Have post-migration marketing ready
Pre-Migration Announcement:
const migrationData = await token.getMigrationData();

const announcement = `
  🚀 MIGRATION SCHEDULED
  
  📊 Final Bonding Stats:
  • Raised: ${formatEther(progress.raised)} B3
  • Tokens Distributed: ${formatEther(totalSupply)}
  
  🔄 Migration Will Create:
  • Initial LP: ${formatEther(migrationData.ethForLp)} B3 + tokens
  • Opening Price: ~${calculateOpeningPrice(migrationData)} B3/token
  
  ⏰ Migration in 24 hours!
`;
The Migration Process:
// Final checks
const readiness = await checkMigrationReadiness(token);
if (!readiness.ready) {
  throw new Error(`Not ready: ${JSON.stringify(readiness.checks)}`);
}

// Execute migration
console.log("🔄 Starting migration to Uniswap V4...");
const migrationTx = await token.migrateToDex();

// Wait for confirmation
const receipt = await token.waitForTransaction(migrationTx);

if (receipt.status === 'success') {
  console.log("✅ Migration successful!");
  
  // Verify new status
  const newStatus = await token.currentStatus();
  console.log(`Status: ${newStatus === 2 ? 'DEX Phase' : 'Unknown'}`);
  
  // Announce to community
  const announcement = `
    🎉 MIGRATION COMPLETE!
    
    📍 Now trading on Uniswap V4
    🔗 Transaction: ${migrationTx}
    💫 Token is now fully decentralized!
  `;
  
  postToDiscord(announcement);
}

Phase 4: DEX Phase Operations

Immediate Post-Migration (First 24 Hours)

// Initialize DEX trading tools
import { BondkitSwapService } from "@b3dotfun/sdk/bondkit";

const swapService = new BondkitSwapService(tokenAddress);

// Verify DEX functionality
const isSwapAvailable = await token.isSwapAvailable();
if (isSwapAvailable) {
  console.log("✅ DEX trading active");
  
  // Test swap quote
  const quote = await swapService.getSwapQuote({
    tokenIn: "0xB3B32F9f8827D4634fE7d973Fa1034Ec9fdDB3B3",
    tokenOut: tokenAddress,
    amountIn: "1",
    tokenInDecimals: 18,
    tokenOutDecimals: 18,
    slippageTolerance: 0.005,
    recipient: testAddress
  });
  
  console.log(`DEX Price: ${quote.executionPrice} B3 per token`);
}

Long-Term DEX Strategy

  • Liquidity Management
  • Community Transition
  • Monitoring & Analytics
Initial Liquidity Analysis:
async function analyzeLiquidity() {
  // Get pool info (implementation depends on your setup)
  const poolData = await getUniswapV4PoolData(tokenAddress);
  
  return {
    totalValueLocked: poolData.tvl,
    tradingVolume24h: poolData.volume24h,
    priceImpactFor1k: await calculatePriceImpact(1000),
    liquidityUtilization: poolData.utilization,
    
    recommendations: {
      needsMoreLiquidity: poolData.tvl < minimumTVL,
      shouldIncentivize: poolData.utilization > 0.8,
      healthyTrading: poolData.volume24h > minimumVolume
    }
  };
}
Liquidity Incentive Program:
// Example LP reward structure
const lpIncentives = {
  rewardToken: tokenAddress,
  dailyRewards: parseEther("1000"), // 1000 tokens per day
  minimumLPTime: 7 * 24 * 3600, // 7 days minimum
  bonusMultipliers: {
    week1: 2.0,  // 2x rewards first week
    month1: 1.5, // 1.5x rewards first month
    longTerm: 1.0 // Standard rewards after
  }
};

Phase 5: Full Decentralization

Ownership Renunciation

// Final step: Complete decentralization
async function finalizeDecentralization(token) {
  // Verify everything is working properly
  const healthChecks = await performFinalHealthChecks(token);
  
  if (!healthChecks.allPassed) {
    throw new Error("Health checks failed - do not renounce ownership yet");
  }
  
  // Point of no return warning
  console.log("⚠️  WARNING: This will permanently renounce all admin control");
  console.log("⚠️  No further contract modifications will be possible");
  console.log("⚠️  Ensure community governance is established if needed");
  
  // Final renunciation
  const tx = await token.renounceTokenOwnership();
  const receipt = await token.waitForTransaction(tx);
  
  if (receipt.status === 'success') {
    console.log("🎊 TOKEN FULLY DECENTRALIZED!");
    console.log("🎊 Community now has complete control");
    
    // Final community announcement
    const announcement = `
      🎊 DECENTRALIZATION COMPLETE!
      
      ✅ All admin keys renounced
      ✅ Community in full control  
      ✅ Permissionless and unstoppable
      
      Thank you for this journey! 🚀
    `;
    
    await postFinalAnnouncement(announcement);
  }
}

Post-Renunciation Operations

Governance Structure Options:
ModelProsConsBest For
No GovernanceSimple, truly decentralizedCannot upgrade/changeSimple tokens
Token VotingHolder-driven decisionsCan be gamed by whalesActive communities
MultisigTrusted group decisionsSemi-centralizedTechnical projects
DAOFull on-chain governanceComplex, slowLarge projects
Implementation Examples:
// Option 1: Simple token voting
const governanceConfig = {
  votingToken: tokenAddress,
  minimumQuorum: parseEther("1000000"), // 1M tokens
  votingPeriod: 7 * 24 * 3600, // 7 days
  executionDelay: 2 * 24 * 3600 // 2 days
};

// Option 2: Community multisig
const multisigConfig = {
  signers: [
    "0x...", // Community member 1
    "0x...", // Community member 2  
    "0x...", // Community member 3
    "0x...", // Community member 4
    "0x..."  // Community member 5
  ],
  threshold: 3, // 3 out of 5 required
  timelock: 24 * 3600 // 24 hour delay
};
Handover Documentation:
  • Complete technical documentation
  • Community management guides
  • Emergency response procedures
  • Contact information for technical help
Community Tools:
const communityResources = {
  // Analytics
  dashboards: [
    "https://dexscreener.com/base/{tokenAddress}",
    "https://basescan.org/token/{tokenAddress}"
  ],
  
  // Trading
  dexInterfaces: [
    "https://app.uniswap.org/swap",
    "https://pancakeswap.finance/swap" 
  ],
  
  // Community
  channels: {
    discord: "https://discord.gg/...",
    telegram: "https://t.me/...",
    twitter: "https://twitter.com/...",
    website: "https://..."
  }
};

Lifecycle Success Metrics

Key Performance Indicators

  • Bonding Phase KPIs
  • Migration KPIs
  • DEX Phase KPIs
const bondingPhaseKPIs = {
  // Growth Metrics
  timeToTarget: "< 30 days ideal",
  uniqueHolders: "> 100 minimum", 
  averageHolding: "1-5% of supply per holder",
  
  // Trading Health
  dailyVolume: "> 1% of raised amount",
  priceStability: "< 50% daily volatility",
  communityEngagement: "> 50 active members",
  
  // Distribution
  topHolderConcentration: "< 20% by largest holder",
  whaleRisk: "< 50% by top 10 holders",
  
  // Success Signals
  organicGrowth: "Community-driven, not bot-heavy",
  sustainedInterest: "Consistent activity over time",
  realUtility: "Clear value proposition"
};

Common Pitfalls & Solutions

Critical Mistakes to Avoid:
  1. Rushing Migration: Don’t migrate immediately upon target - ensure community readiness
  2. Poor Communication: Keep community informed at every phase
  3. Whale Concentration: Monitor for unhealthy token concentration
  4. Technical Issues: Thoroughly test all integrations before launch
  5. Legal Compliance: Ensure regulatory compliance in your jurisdiction

Troubleshooting Guide

Problem: No trading activitySolutions:
  • Increase marketing and community outreach
  • Lower aggressiveness factor if price rises too quickly
  • Ensure trading token (B3) is easily accessible
  • Add trading charts and analytics tools
Problem: Whale manipulationSolutions:
  • Implement community watch programs
  • Use social pressure for responsible trading
  • Consider maximum purchase limits in future versions
  • Build strong community consensus
Problem: Migration failsSolutions:
  • Check all parameters are correct
  • Ensure sufficient gas and proper wallet setup
  • Verify target is actually reached
  • Contact technical support if needed
Problem: Poor opening priceSolutions:
  • Migration price is algorithmically determined
  • Market will find true value over time
  • Focus on utility and community building
  • Avoid artificial price manipulation
Problem: Low liquiditySolutions:
  • Implement LP reward programs
  • Partner with market makers
  • Educate community about LP provision
  • Consider liquidity mining campaigns
Problem: Community confusionSolutions:
  • Create clear migration guides
  • Host community AMAs and tutorials
  • Provide multiple trading interface options
  • Maintain active community support

Next Steps


Success Tips:
  • Start with smaller, test launches to gain experience
  • Build genuine community before, during, and after bonding
  • Focus on real utility and value creation
  • Be transparent about tokenomics and plans
  • Plan for long-term sustainability, not just initial hype