Apa itu Fase Bonding?

Fase bonding adalah periode perdagangan awal di mana token dibeli dan dijual langsung dari smart contract menggunakan kurva penetapan harga algoritmik. Anggap ini sebagai pre-sale terdesentralisasi dengan pembuatan pasar otomatis.

Bagaimana Cara Kerja Bonding

Mekanisme Kurva Bonding

Selama bonding, kontrak bertindak sebagai market maker tunggal:
  1. Tanpa Buku Pesanan: Harga ditentukan secara algoritmik
  2. Likuiditas Instan: Selalu bisa membeli atau menjual
  3. Independensi Jalur: Harga hanya bergantung pada pasokan, bukan riwayat
  4. Penetapan Harga Otomatis: Tidak perlu pengaturan harga manual

Operasi Perdagangan

Membeli Token

Alur Proses:
  1. Pengguna mengirim ETH/B3 ke kontrak
  2. Kontrak menghitung token berdasarkan kurva
  3. Biaya 5% dipotong dan dikirim ke penerima
  4. Token dicetak dan dikirim ke pembeli
  5. Status kurva diperbarui
Contoh Kode:
// Dapatkan kutipan terlebih dahulu
const quote = await token.getAmountOfTokensToBuy(
  parseEther("1") // 1 ETH
);
console.log(`Akan menerima: ${formatEther(quote)} token`);

// Eksekusi pembelian dengan perlindungan slippage
const minTokens = quote * 0.95n; // Slippage 5%
await token.buy(minTokens, "1");

Menjual Token

Alur Proses:
  1. Pengguna menyetujui pengeluaran token
  2. Pengguna memanggil sell dengan jumlah token
  3. Kontrak menghitung ETH berdasarkan kurva
  4. Biaya 5% dipotong dari hasil
  5. ETH dikirim ke penjual, token dibakar
  6. Status kurva diperbarui (harga menurun)
Contoh Kode:
// Periksa saldo dan dapatkan kutipan
const balance = await token.balanceOf(userAddress);
const sellAmount = balance / 2n; // Jual setengah

const quote = await token.getAmountOfEthToReceive(
  sellAmount
);
console.log(`Akan menerima: ${formatEther(quote)} ETH`);

// Eksekusi penjualan dengan perlindungan slippage
const minEth = quote * 0.95n; // Slippage 5%
await token.sell(sellAmount, minEth);

Struktur Biaya

Cara Kerja Biaya

Ekonomi Biaya

Volume HarianPendapatan BiayaPendapatan Bulanan
10 ETH0.5 ETH~15 ETH
50 ETH2.5 ETH~75 ETH
100 ETH5 ETH~150 ETH
500 ETH25 ETH~750 ETH

Mekanik Target

Memahami Target

Target adalah jumlah ETH/B3 yang harus terkumpul sebelum migrasi:
Tujuan Target:
  • Memastikan likuiditas yang cukup untuk Uniswap v4
  • Menciptakan tujuan yang jelas untuk komunitas
  • Mencegah migrasi prematur
  • Membangun momentum selama bonding

Mendekati Target

// Memantau kemajuan menuju target
async function trackProgress(token: BondkitToken) {
  const progress = await token.getBondingProgress();
  
  if (progress.progress < 0.5) {
    console.log("🌱 Tahap awal - harga terbaik tersedia");
  } else if (progress.progress < 0.8) {
    console.log("🚀 Momentum terbangun - pertimbangkan untuk membeli");
  } else if (progress.progress < 1.0) {
    console.log("🔥 Hampir sampai - migrasi segera");
  } else {
    console.log("✅ Target tercapai - siap untuk migrasi!");
  }
  
  const remaining = progress.threshold - progress.raised;
  console.log(`Butuh ${formatEther(remaining)} ETH lagi`);
}

Penanganan Overflow

Ketika pembelian akan melebihi target:
  1. Pengisian Sebagian: Hanya jumlah yang diperlukan yang diterima
  2. Pengembalian Dana Otomatis: Kelebihan dikembalikan dalam transaksi yang sama
  3. Penyelesaian Adil: Tidak ada yang bisa membayar lebih di akhir
Skenario Contoh:
Target: 100 ETH
Saat ini: 99.5 ETH
Pengguna mengirim: 2 ETH

Hasil:
- 0.5 ETH diterima (tepat mencapai 100 ETH)
- 1.5 ETH dikembalikan
- Pengguna mendapatkan token untuk 0.5 ETH
- Migrasi sekarang tersedia

Event & Pemantauan

Event Kontrak

event BondingCurveBuy(
    address indexed payer,
    address indexed recipient,
    uint256 tradingTokenIn,
    uint256 tokensOut,
    uint256 fee,
    uint256 totalRaisedBonding
);
Mendengarkan di SDK:
token.onBuy((event) => {
  console.log({
    pembeli: event.payer,
    ethDihabiskan: formatEther(event.tradingTokenIn),
    tokenDiterima: formatEther(event.tokensOut),
    biayaDibayar: formatEther(event.fee),
    totalTerkumpul: formatEther(event.totalRaisedBonding)
  });
});

Pemantauan Real-Time

// Penyiapan pemantauan lengkap
class BondingMonitor {
  constructor(private token: BondkitToken) {}
  
  async start() {
    // Status awal
    const progress = await this.token.getBondingProgress();
    console.log(`Mulai pada ${(progress.progress * 100).toFixed(2)}%`);
    
    // Memantau pembelian
    this.token.onBuy(async (event) => {
      const newProgress = await this.token.getBondingProgress();
      console.log(`BELI: ${formatEther(event.tokensOut)} token`);
      console.log(`Kemajuan: ${(newProgress.progress * 100).toFixed(2)}%`);
      
      if (newProgress.progress >= 1.0) {
        console.log("🎆 TARGET TERCAPAI! Migrasi tersedia.");
      }
    });
    
    // Memantau penjualan
    this.token.onSell(async (event) => {
      const newProgress = await this.token.getBondingProgress();
      console.log(`JUAL: ${formatEther(event.tokensIn)} token`);
      console.log(`Kemajuan: ${(newProgress.progress * 100).toFixed(2)}%`);
    });
  }
}

// Penggunaan
const monitor = new BondingMonitor(token);
await monitor.start();

Strategi Fase Bonding

Untuk Pembuat Token

Membangun Momentum

  • Mulai dengan agresivitas lebih rendah (30-50)
  • Tetapkan target yang dapat dicapai
  • Libatkan komunitas sejak dini
  • Sediakan peta jalan yang jelas

Maksimalkan Kesuksesan

  • Tanamkan likuiditas awal sendiri
  • Ciptakan insentif pembelian
  • Waktu pengumuman yang tepat
  • Rencanakan pasca-migrasi

Untuk Pedagang

Strategi Masuk

  • Beli awal untuk harga terbaik
  • Gunakan DCA untuk jumlah besar
  • Pantau faktor agresivitas
  • Periksa kemajuan target

Manajemen Risiko

  • Selalu gunakan perlindungan slippage
  • Pahami dampak harga
  • Jangan FOMO dekat target
  • Rencanakan strategi keluar

Transisi Pasca-Bonding

Kritis: Setelah MigrasiSetelah migrateToDex() dipanggil:
  • ❌ Perdagangan kurva bonding secara permanen dinonaktifkan
  • ❌ Tidak ada lagi fungsi buy() atau sell()
  • ✅ Semua perdagangan pindah ke Uniswap v4
  • ✅ Mekanik AMM standar berlaku
  • ✅ Siapa pun dapat menyediakan likuiditas
  • ✅ Perdagangan sepenuhnya terdesentralisasi

Langkah Selanjutnya