Langsung ke konten utama

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
APR yang ditampilkan di Raydium UI untuk pool CLMM adalah APR fee yang terealisasi dari likuiditas in-range selama 24 jam terakhir, diproyeksikan ke setahun. Ini bukan APR yang posisi Anda akan hasilkan — itu bergantung pada range Anda, waktu Anda berada in-range, dan bagian Anda dari likuiditas yang aktif selama jendela trading.

Formula utama

Untuk pool CLMM, APR fee harian yang ditampilkan di Raydium dihitung sebagai:
apr_24h = (fees_24h / tvl_in_range_24h) · 365
Di mana:
  • fees_24h adalah jumlah fee swap yang disisi LP yang terkumpul dalam 24 jam terakhir (dalam USD).
  • tvl_in_range_24h adalah nilai rata-rata tertimbang waktu (time-weighted average) USD dari likuiditas yang berada in-range selama periode tersebut.
Penyebut inilah yang membedakan APR CLMM dari APR CPMM. CPMM menggunakan total TVL pool karena setiap dolar selalu berkontribusi. CLMM hanya menggunakan bagian in-range karena dolar out-of-range tidak menghasilkan apa pun.

APR yang akan Anda dapatkan sebenarnya

APR headline adalah statistik pool, bukan statistik posisi Anda. APR Anda bergantung pada empat pengali:
your_APR = headline_APR
         · (your_in_range_fraction / pool_in_range_fraction)     # concentration bonus
         · time_in_range                                          # range discipline
         · (1 − transfer_fee_haircut)                             # token-2022 tax
         · compounding_factor                                     # jika Anda auto-restake
  • Concentration bonus. Jika range Anda lebih ketat dari rata-rata pool, setiap tick aktif memiliki lebih banyak likuiditas Anda per dolar dibandingkan LP rata-rata. Lebih ketat = bonus lebih besar (dan amplifikasi IL yang proporsional lebih besar).
  • Time in range. Jika Anda berada in-range hanya 40% dari waktu, kalikan dengan 0.40.
  • Transfer-fee haircut. Untuk mint Token-2022 dengan fee transfer, setiap pengumpulan fee melalui transfer yang sendirinya mengurangi basis point.
  • Compounding. Jika Anda collectFee dan redeploy ke range yang sama setiap minggu, APR efektif adalah sekitar (1 + daily_APR)^365 − 1. Tanpa compounding itu linear.

Contoh perhitungan

Misalkan pool SOL/USDC CLMM memiliki:
  • Volume 24h: $120M
  • Fee tier: 0.05% (LP mendapat bagian 88% dari fee setelah potongan protokol)
  • Total TVL: $40M
  • In-range TVL: $18M (45% dari pool saat ini in-range)
fees_24h = 120M · 0.0005 · 0.88 = $52,800
apr_24h  = (52,800 / 18,000,000) · 365 = 107%
Raydium UI menampilkan 107% APR untuk pool. (Contoh ini menggunakan pool yang dalam dan bervolume tinggi untuk membuat angka tetap konkret; pool CLMM tipikal menampilkan APR di mana saja dari 10% hingga 50%, dengan pool bervolume rendah jauh di bawah 10%.) Sekarang Anda sedang mempertimbangkan membuka posisi:
  • Range Anda: cukup ketat sehingga Anda memiliki konsentrasi 2× rata-rata.
  • Waktu in-range yang diharapkan: 70% (Anda akan memeriksa setiap minggu).
  • Tidak ada fee Token-2022. Tidak ada auto-compounding.
your_APR ≈ 107% · 2 · 0.70 = 150%
Itu adalah perkiraan, bukan jaminan. Volume yang terealisasi dapat turun atau naik dua kali dalam seminggu.

Mengapa trailing APR adalah sinyal tertinggal

APR CLMM bergerak cepat relatif terhadap APR CPMM karena penyebut in-range TVL bergerak cepat:
  • Pergerakan harga besar mendorong sejumlah posisi keluar dari range, mengecilkan penyebut. Tiba-tiba TVL in-range yang tersisa Anda terlihat “APR lebih tinggi” — tetapi hanya karena kompetitor pergi, dan biasanya volume juga turun.
  • Pool yang mencapai ATH baru dapat sementara menampilkan APR 500–1000% selama satu jam karena sebagian besar posisi dikalibrasi untuk harga lebih rendah dan hanya beberapa LP agresif yang tersisa in-range.
  • Setelah pasar menetap, LP menyeimbangkan kembali dan APR mean-revert.
Aturan praktis:
  • Abaikan APR sub-24h. Terlalu banyak noise.
  • Lebih suka jendela 7d dan 30d. Raydium mengekspos keduanya melalui GET /pools/info/ids — field week.apr dan month.apr.
  • Backtest range spesifik Anda pada data volume dan harga historis sebelum berkomitmen dengan modal yang berarti.

Cara matematika bekerja (single-tick step)

Dalam satu tick tunggal, CLMM berperilaku seperti CPMM pada jumlah likuiditas L yang aktif di tick tersebut. Fee terkumpul dalam fee_growth_global_X dan fee_growth_global_Y per unit likuiditas. Untuk posisi dengan likuiditas Lₚ yang mencakup range tick [i_lo, i_hi]:
fees_earned_X = Lₚ · (fee_growth_inside_X(i_lo, i_hi, now) − fee_growth_inside_X(i_lo, i_hi, t_open))
fees_earned_Y = Lₚ · (fee_growth_inside_Y(i_lo, i_hi, now) − fee_growth_inside_Y(i_lo, i_hi, t_open))
Di mana fee_growth_inside mengurangi fee growth di bawah i_lo dan di atas i_hi dari accumulator global. Detail di algorithms/clmm-math. Untuk menghitung fee yang diharapkan selama periode mendatang untuk range prospektif, estimasi:
expected_fees_per_day = Σ_ticks_in_range (volume_at_tick · fee_rate · your_share_at_tick)
SDK Raydium mengekspos getEstimateAprFromPositionAndPool yang melakukan estimasi ini menggunakan histogram volume-per-tick terkini.

SDK helper

import { Raydium, TxVersion } from "@raydium-io/raydium-sdk-v2";

const raydium = await Raydium.load({ owner, connection });
const pool = await raydium.clmm.getPoolInfoFromRpc({ poolId });

const apr = await raydium.clmm.estimatedApr({
  poolInfo: pool.poolInfo,
  poolKeys: pool.poolKeys,
  tickLower: -100,   // range yang Anda maksudkan
  tickUpper:  100,
  volumeUsd24h: pool.poolInfo.day.volume, // atau estimasi khusus
});

console.log(`Expected APR: ${apr.feeApr * 100}% (fee-only, excludes farm incentives)`);
Method ini juga secara terpisah mengembalikan APR farm apa pun jika pool memiliki farm yang terpasang. “LP APR” lengkap Anda adalah feeApr + farmApr.

Di mana farm APR cocok

Pool CLMM Raydium dapat memiliki emisi Farm v6 yang berlapis. Reward farm dibayar dalam reward mint (sering RAY atau token partner) independen dari fee swap. Raydium UI biasanya menampilkan:
Total APR = Fee APR + Farm APR [dalam $X, Y, Z reward mint]
Farm APR dihitung serupa tetapi menggunakan jadwal emisi reward dan harga saat ini dari mint reward dalam USD. Tidak seperti fee APR, itu tidak bergantung pada volatilitas — itu adalah jadwal yang tetap. Lihat products/farm-staking/overview untuk matematika emisi farm.

Kesalahan umum

  • “APR dicompound secara otomatis.” Tidak. Fee harus diklaim via collectFee, kemudian redeploy secara manual. Raydium tidak auto-compound fee CLMM.
  • “APR saya = APR headline.” Hanya jika konsentrasi Anda rata-rata, waktu in-range Anda 100%, dan Anda compound dengan ritme yang sama. Ketiganya biasanya salah.
  • “Fee tier lebih tinggi = APR lebih tinggi.” Hanya jika volume bertahan pada fee yang lebih tinggi. Pada 1% sepasang mungkin menampilkan 50% APR tetapi melakukan 1/10 volume; net kurang dari 0.25% pada 120% × 0.1 = 12%.
  • “Posisi out-of-range memiliki risiko nol.” Mereka memiliki zero fee income tetapi full IL pada komposisi token yang ada — posisi sekarang “100% dari sisi mana pun”.

Pointer

Sumber:
  • Implementasi Raydium SDK v2 estimatedApr.
  • Raydium UI pool page (field APR live).
  • Derivasi Uniswap V3 fee-growth.