Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
Sürüm bilgisi.
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - Cluster: Solana
mainnet-beta - Program ID: bkz.
reference/program-addresses - Son doğrulama: 2026-09-09, SDK
0.2.64-alphakaynağı,raydium-sdk-V2-demo/src/launchpadveraydium-launchprogram kaynağına karşı
package.json dosyanızda sabitleyin. Bonding curve arayüzü küçük sürümler arasında değişmiştir.Kurulum
Buradaki örneklerraydium-sdk-V2-demo/src/launchpad içindeki dosyaları yansıtır. Başlatma, demo repo’nun config.ts.template dosyasını takip eder:
Başlatma oluşturun
Kaynak:src/launchpad/createMint.ts (ve Bonk varyantı için createBonkMintApi.ts)
Başlatmanın ekonomisinin çoğu argüman değildir — configId aracılığıyla bağladığınız GlobalConfig’ten gelir ve SDK geri kalanını API’nin varsayılan parametrelerinden doldurur. Mint’in kimliğini, bağlanacak konfigürasyonu ve (isteğe bağlı olarak) ilk bir alımı geçersiniz:
- Hiçbir
curveType,graduationFractionBps,initialK,quoteMint,openTime,feesveyapostGraduationLpPolicyargümanı yoktur. Curve şekli ve quote mint, bağladığınızGlobalConfig’in özellikleridir; ücret oranlarıGlobalConfigvePlatformConfig’te yaşar; mezuniyet sırasında LP elden çıkarılması birPlatformConfigayarıdır.InitializeV2’nin tam olarak ne kabul ettiğini görmek içinproducts/launchlab/instructionsbölümüne bakın. - 10 karakterden uzun
symbolve boşuriher ikisi de herhangi bir RPC’den önce istemci tarafında reddedilir. transferFeeExtensionParamsgeçirmek, builder’ıInitializeWithToken2022’ye geçirir vemigrateType’ı"cpmm"’ye zorlar.- Builder bir
transactionsdizisi döndürür;createOnly: falseilk alım işlemini ekler. Her zamanexecute({ sequentially: true })çalıştırın — mint alımdan önce var olmalıdır.
Başlatma durumunu getirin
Kaynak:src/launchpad/poolInfo.ts
getLaunchById yoktur. Pool id, (programId, mintA, mintB) öğesinin bir PDA’sıdır ve getRpcPoolInfo bağlı configInfo ile birlikte çözülen PoolState’i döndürür:
getRpcPoolsInfo({ poolIdList }) toplu formdur ve pool id’ye göre anahtarlanmış bir poolInfoMap döndürür — döngü yapmak yerine portföy görünümleri için kullanın. Ham hesapları kendiniz çözmek istiyorsanız, LaunchpadPool.decode ve LaunchpadConfig.decode dışa aktarılır.
Alım — tam quote giriş
Kaynak:src/launchpad/buy.ts
Zincir dışı fiyat teklifi yardımcısı Curve.buyExactIn’dir, dışa aktarılan Curve sınıfında statik bir yöntemdir — raydium.launchpad’da bir yöntem değildir. İşlem builder’ı buyToken’dır. Her ikisinin de platform’un ücret oranlarına ihtiyacı vardır, bunlar ayrı bir PlatformConfig hesabında yaşar:
slippage yerine minMintAAmount’ı açıkça geçebilirsiniz; her ikisini de atın ve SDK sınırı canlı RPC verilerinden hesaplar. shareFeeRate, poolInfo.configInfo.maxShareFeeRate’i aşmamalı ve sadece bir shareFeeReceiver da geçtiğinizde geçerlidir.
Alım — tam base çıkış
BuilderbuyTokenExactOut’dur ve miktar argümanları outAmount (istediğiniz base) ve maxBuyAmount (en fazla harcayacağınız quote) şeklindedir. Curve.buyExactOut({ poolInfo, amountA, ... }) eşleşen zincir dışı önizlemedir.
outAmount’ı istemci tarafında reddeder ve curve yeterince hareket ettiyse program geri döner, quote gereksinimi maxBuyAmount’ı aşar.
Satış
Kaynak:src/launchpad/sell.ts
Builder sellToken’dır (tam quote çıkış varyantı için sellTokenExactOut), sellAmount ve isteğe bağlı minAmountB ile. Curve.sellExactIn({ poolInfo, amountA, ... }) bunu önizler.
real_a’yı sellAmount kadar azaltmak, real_a − sellAmount ile real_a arasında curve’ün altındaki entegre alanına eşit quote_out döndürür, satış ücreti eksi. sellAmount sıfırdan büyük olmalıdır — builder sıfırı herhangi bir RPC’den önce reddeder.
Mezuniyet
Bu cüzdanlar Raydium’un mezuniyet crank’ı tarafından işletilir, bu nedenle pratikte göç, eşik geçildikten sonra son alımı kimin yaptığından bağımsız olarak saniyeler içinde gerçekleşir. Bir entegratör tarafından yapılacak tek şey, durum geçişini hızlı bir olay olarak ele almaktır:getRpcPoolInfo’yi yoklayın (veya aşağıda gRPC üzerinden abone olun) ve status değiştiğinde UI’nızı curve’den sonuçlanan CPMM pool’una geçirin.
Hesap listeleri, göç ücreti ve mezuniyet sırasında LP’nin nasıl bölündüğü için products/launchlab/instructions bölümüne bakın.
Yaratıcı ücretlerini toplayın
Kaynak:src/launchpad/claimCreatorFee.ts (tek mint) ve collectAllCreatorFees.ts (toplu)
Yöntem claimCreatorFee’dir (toplu form için claimMultipleCreatorFee). Quote mint tarafından anahtarlanır, başlatma tarafından değil — bir çağrı, imzalayanın o mint’te biriken yaratıcı ücretlerini başlatmalarında temizler:
claimPlatformFee / claimAllPlatformFee / claimVaultPlatformFee builder’larına sahiptir.
Başlatmayı yaşam döngüsü boyunca izleyin
Bir araya getirerek, bir izleme betiği şöyle görünebilir:getRpcPoolInfo’yi 10 saniyelik bir zamanlayıcıda yoklamak iyidir. Bir indexer için, bunun yerine aşağıdaki gRPC aboneliğini kullanın — getRpcPoolsInfo({ poolIdList }) toplu işlem yapar, ancak yüzlerce pool’u yoklamak hiçbir fayda için RPC kredilerini yakar.
Konfigürasyonları ve pool’ları gRPC üzerinden izleyin
Kaynak:src/grpc/launchpadPoolInfo.ts
LaunchLab programına Yellowstone gRPC üzerinden abone olur ve her GlobalConfig ve PoolState güncellemesini her mint’in token programı ile günlüğe kaydeder. Bir accounts aboneliğinde iki datasize filtresi iki hesap türünü ayırır, bu nedenle tek bir akış her ikisini de kapsar.
Demo, Token-2022 quote-mint sürümü gerekli kılan başlatmanın mint’lerini sınıflandırmak için en kısa doğru referanstır:
- Pool’lar doğrudan
PoolState.token_program_flag’den sınıflandırılır, hiçbir mint getirmeden bit0’ı base mint için ve bit1’i quote mint için çözerek. Tüm baytı0’a karşı test etmek — quote mint’ler eski olduğu sürece yeterli idi — quote mint Token-2022 olduğunda eski bir base mint’i yanlış okur. - Konfigürasyonlar bu şekilde sınıflandırılamaz: bir
GlobalConfigquote mint’inin adresini ve program bayrağını depolamaz, bu nedenle demo mint hesabının sahibini bir kez okur ve mint başına önbelleğe alır.
create ile update arasındaki fark, demo’nun kendi önbelleklerinden çıkarılır, başlangıçta getProgramAccounts’tan tohumlanır; bu tohumlama devre dışı bırakıldığında, “oluştur”u “bu akışta ilk görülen” olarak okuyun.
gRPC erişimi genel RPC yüzeyinin bir parçası değildir — demo repo’nun src/grpc/README.md dosyasına bakın.
Rust CPI
Kendi Anchor programınızdan LaunchLab’ı çağırmak nadirdir (çoğu başlatma entegrasyonu sadece TS tarafında). Yaparsanız:- Crate
raydium-launchpad’dır (lib adıraydium_launchpad), sürüm0.2.0ve bircpiözelliğini ortaya çıkarır.raydium_launchlabyoktur. - crates.io’da yayınlanmamıştır — diğer Raydium program crate’leriyle aynı şekilde git revizyonuna göre bağımlılık yapın.
- CPI giriş noktaları, SDK’nın TypeScript yöntemlerinden sonra değil, zincir üstü talimatlardan sonra adlandırılır:
buy_exact_in,buy_exact_out,sell_exact_in,sell_exact_out,claim_creator_fee,create_vesting_account,claim_vested_token.migrate_to_amm/migrate_to_cpswap,GlobalConfiggöç cüzdanlarına imzalayan kapılı ve bir entegratör programından çağrılamaz.
sdk-api/rust-cpi bölümüne bakın — özellikle LaunchLab ve CLMM’ye CPI yapabilen bir crate’i belirleyen Anchor sürümü bölümü.
Tuzaklar
- Zincir üstü talimat adlarını SDK yöntem adlarıyla karıştırmak. Program
buy_exact_in/sell_exact_in’e sahiptir; SDKbuyToken/sellToken’a sahiptir.buyExactInvesellExactInsadeceCurve’de statik yöntemler olarak mevcuttur ve bir fiyat teklifi hesaplarlar — bir işlem oluşturmazlar. extraSigners’ı unutmak.createLaunchpad, base mint’i oluşturduğunuz bir keypair’den oluşturur, bu nedenle bu keypair imzalamalıdır.extraSigners: [pair]’ı atın ve işlem imza doğrulaması başarısız olur.- Quote mint’i seçmemek. Bir tane geçmezsiniz. Quote mint,
configIdaracılığıyla bağladığınızGlobalConfig’in bir özelliğidir —getPdaLaunchpadConfigId(programId, quoteMint, curveType, index). Farklı bir quote mint’e karşı başlatmak için farklı bir config bağlayın;raydium.api.fetchLaunchConfigs()varsayılan parametreleriyle mevcut olanları listeler. - Metadata boyutu. Uzun
uridizileri Metaplex CPI’ı bütçenin üzerine çıkarır.uri’yi ~200 karakterin altında tutun — çoğu CDN tarafından barındırılan JSON metadata kolayca uyar.symbol10 karakterde sabit sınırlandırılır. - Mezuniyeti girebileceğiniz bir yarış olarak ele almak. Değildir — yukarıdaki uyarıya bakın. UI’nız yine de
statusgeçişlerini hızlı olaylar olarak ele almalıdır, çünkü Raydium’un crank’ı göç’ü eşik geçildikten sonra saniyeler içinde gerçekleştirir.
Sonraki adım
products/launchlab/bonding-curve— curve matematiği.products/cpmm/code-demos— sonuçlanan pool’la ne yapılacağı.user-flows/launch-token-launchlab— zincir dışı adımlar dahil uçtan uca token başlatma kılavuzu.
- Raydium SDK v2
- Raydium LaunchLab program kaynağı

