Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →

Ringkasan satu paragraf

CPMM — Constant Product Market Maker, secara resmi disebut “Standard AMM” dalam UI Raydium — adalah implementasi native Solana dari AMM klasik x · y = k. Tanpa order book OpenBook, tanpa warisan Serum, tanpa dependensi eksternal selain SPL Token dan Token-2022. Setiap pool adalah triplet dari (dua vault token, satu LP mint) yang diatur oleh PDA berwenang milik program, dengan harga ditentukan oleh hasil kali saldo vault. Ini adalah AMM yang Raydium rekomendasikan untuk semua pool constant-product baru, dan ini adalah target default dari endpoint /pools/create dan alur “Create pool” di UI web.

Apa yang CPMM berikan

Pembaruan pengumpulan biaya kreator. Siapa pun dapat memicu CollectCreatorFeePermissionless. Dana tetap hanya masuk ke akun token kanonis kreator pool, dan CollectCreatorFee yang ditandatangani kreator yang sudah ada tetap tersedia. Lihat Instructions.
  • Token-2022 dengan daftar whitelist ekstensi yang telah diverifikasi. CPMM tidak menerima mint Token-2022 sembarangan. Program memberlakukan whitelist ekstensi aman saat pembuatan pool: TransferFeeConfig, MetadataPointer, TokenMetadata, InterestBearingConfig, dan ScaledUiAmount. Ekstensi lain pada mint menyebabkan Initialize ditolak dengan NotSupportMint — kecuali mint itu sendiri ada di daftar whitelist mint hard-coded kecil yang dipertahankan dalam program (digunakan untuk onboarding mint spesifik secara kasus per kasus). Biaya transfer khususnya memengaruhi matematika swap dan diterapkan di sisi yang benar dari perdagangan — lihat algorithms/token-2022-transfer-fees.
  • Biaya yang dapat diprediksi. Setiap pool mereferensikan AmmConfig yang dipilih saat pembuatan. Konfigurasi membawa tingkat biaya perdagangan (dibagi antara LP, protokol, dan dana) dan tingkat biaya kreator yang terpisah dan independen. Biaya kreator adalah bucket tersendiri — tidak pernah bagian dari biaya perdagangan. Pool memilih untuk mengenakan biaya ini saat pembuatan. Default dan matematika pembagian lengkap ada di products/cpmm/fees.
  • TWAP on-chain melalui ring buffer observasi. Setiap swap memperbarui akun observation. Kontrak eksternal dapat membaca observasi harga kumulatif untuk menghitung TWAP tanpa oracle khusus.
  • Tata letak akun datar. Pool sepenuhnya dijelaskan oleh enam PDA (authority, pool state, LP mint, dua vault, observation). Tidak ada akun OpenBook per-market, tidak ada event queue, tidak ada request queue. Transaksi lebih murah dalam compute dan jumlah akun dibanding AMM v4.
  • Kompatibel burn-and-earn. Token LP dapat dikunci di bawah program LP Lock sehingga kreator pool dapat terus mengklaim biaya tanpa mempertahankan hak untuk menarik likuiditas. Digunakan untuk peluncuran likuiditas “permanen”.

Apa yang CPMM bukan

  • Bukan terkonsentrasi. Likuiditas tersebar merata di seluruh rentang harga, seperti Uniswap v2. Jika Anda membutuhkan market making yang efisien modal — yaitu, memusatkan likuiditas di dekat harga saat ini — gunakan CLMM.
  • Bukan hybrid. Tidak seperti AMM v4, pool CPMM tidak menempatkan pesanan resting di pasar OpenBook. Routing lintas pool CPMM terjadi melalui program AMM Routing, bukan melalui CLOB.
  • Bukan dapat diluncurkan untuk kurva sembarangan. Kurva hard-coded ke constant product. Jika Anda menginginkan bonding curve untuk peluncuran token, gunakan LaunchLab, yang lulus ke pool CPMM saat terisi.

Bagaimana CPMM berbeda dari AMM v4

Pembahasan lebih mendalam tentang cerita migrasi ada di protocol-overview/versions-and-migration.

Model mental

Pool CPMM adalah objek milik program yang memegang tiga saldo: vault0 (token0), vault1 (token1), dan pasokan LP mint. Pasokan LP mint melacak klaim deposan pada pool; vault token memegang aset aktual. Segalanya — PDA authority, akun observation, pointer konfigurasi biaya — adalah pembukuan untuk membuat hubungan tiga variabel itu dapat diperdagangkan, mengumpulkan biaya, dan dapat diamati. Setiap operasi yang dihadapi pengguna runtuh menjadi transisi status yang terdefinisi dengan baik:
  • Deposit: transfer token0 dan token1 masuk, mint LP ke pengguna, tidak ada perubahan harga.
  • Withdraw: bakar LP dari pengguna, transfer token0 dan token1 keluar dalam rasio pool saat ini, tidak ada perubahan harga.
  • Swap: transfer satu token masuk, transfer yang lain keluar; rasio bergerak sepanjang kurva x · y = k (minus biaya); akun observation mengambil sampel harga baru.
Pengumpulan biaya adalah transaksi terpisah; tidak terjadi pada setiap swap. Pengumpulan protokol dan dana memerlukan authority masing-masing. Biaya kreator dapat dikumpulkan baik melalui jalur yang ditandatangani kreator atau oleh pemanggil tanpa izin melalui jalur yang dibatasi tujuan. Matematika dijelaskan di products/cpmm/math dan set instruksi di products/cpmm/instructions.

Kapan memilih CPMM

Pilih CPMM ketika:
  • Anda meluncurkan token baru atau pasangan baru dan tidak memiliki pendapat kuat tentang rentang mana yang akan melihat perdagangan.
  • Salah satu atau kedua token menggunakan ekstensi Token-2022.
  • Anda menginginkan model biaya sederhana per-perdagangan daripada model dinamis berbasis tick.
  • Anda mengintegrasikan dan ingin routing melalui Raydium tanpa mengambil kompleksitas posisi CLMM.
Lebih suka CLMM ketika:
  • Pasangan stabil atau sangat berkorelasi (stablecoin-stablecoin, LST-SOL) dan Anda ingin memusatkan likuiditas di sekitar paritas.
  • Anda adalah tim market-making yang bersedia secara aktif mengelola rentang untuk APR biaya yang lebih tinggi per dolar TVL.
Lebih suka AMM v4 ketika:
  • Anda bermigrasi tooling AMM v4 yang sudah ada dan tidak membuat pool baru.
(Catatan: mode hybrid OpenBook AMM v4 tidak lagi aktif — itu bukan alasan untuk memilih AMM v4 lagi.)

Ke mana selanjutnya

  • Accounts — enam PDA dari pool CPMM dan cara menurunkannya.
  • MathSwapBaseInput vs SwapBaseOutput, penanganan biaya transfer Token-2022, pembaruan observation.
  • Instructions — permukaan instruksi lengkap dengan daftar akun.
  • Fees — pembagian biaya empat arah dan cara mengumpulkan.
  • Code demos — snippet TypeScript yang dapat dijalankan untuk create / swap / deposit / withdraw.
Sumber: