Skip to main content
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Banneau de version.
  • SDK : @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster : Solana mainnet-beta
  • ID du programme : voir reference/program-addresses
  • Dernière vérification : 2026-04
Épinglez la version du SDK dans votre package.json. L’interface de la courbe de liaison a évolué entre les versions mineures.

Configuration

Les démos ici reflètent les fichiers dans raydium-sdk-V2-demo/src/launchpad. L’amorçage suit le config.ts.template du dépôt de démo :

Créer un lancement

Source : src/launchpad/createMint.ts (et createBonkMintApi.ts pour la variante Bonk pilotée par API)
Notes :
  • initialK est le facteur d’échelle pour la courbe quadratique. Réglez-le pour cibler un prix CPMM d’ouverture spécifique à la diplomation. Voir products/launchlab/bonding-curve pour la dérivation.
  • Le SDK gère la création du mint de base, du PDA de métadonnées et des deux coffres-forts dans une seule transaction. Il peut dépasser 1232 octets si l’URI des métadonnées est long ; dans ce cas, le SDK se divise en deux transactions.
  • Après Initialize, le lancement n’est pas négociable jusqu’à openTime. Définissez openTime une ou deux minutes à l’avance pour donner moins de chances aux front-runners de saisir le premier achat.

Récupérer l’état du lancement

getLaunchById retourne le LaunchState décodé plus la fraction « progression vers la diplomation » calculée en tant que Decimal.

Acheter — devis exact en entrée

Source : src/launchpad/buy.ts
computeBuyBase reflète le solveur Newton sur chaîne (courbe quadratique) ou l’inverse CPMM de forme fermée (curve_type 1). Utilisez-le pour remplir le champ « Vous recevez » de l’interface utilisateur.

Acheter — base exacte en sortie

Utile pour les interfaces « acheter exactement X tokens ». Rejette avec ExceededSlippage si la courbe a bougé suffisamment pour que l’exigence de devis dépasse maintenant maximumQuoteIn.

Vendre

Source : src/launchpad/sell.ts
Le chemin de vente de la courbe est symétrique au chemin d’achat : réduire base_sold par baseIn retourne quote_out égal à la zone intégrée sous la courbe entre base_sold − baseIn et base_sold, moins les frais de vente.

Diplôme automatique lors de l’achat de franchissement de seuil

Le SDK enchaîne une instruction Graduate dans la transaction buy* lorsqu’il détecte que l’état post-achat franchira le seuil :
Parce que Graduate est sans permission, n’importe qui (y compris un bot MEV) peut faire la course pour atterrir le premier Graduate après le franchissement du seuil — généralement quelques secondes plus tard, pas des minutes. Le premier arrivant paie simplement le loyer des comptes du pool CPMM ; ils ne reçoivent aucun autre avantage.

Graduate manuel

Si autoGraduate était désactivé ou si la transaction de franchissement de seuil a échoué, vous pouvez déclencher la diplomation séparément :
Revient avec NotAtThreshold si quote_reserve_real < quote_reserve_target au moment de la soumission. Sûr pour les tentatives — une deuxième tentative Graduate après succès revient avec NotActive.

Collecter les frais du créateur

Source : src/launchpad/claimCreatorFee.ts (mint unique) et collectAllCreatorFees.ts (par lot)
Transfère le montant du compteur de frais du créateur accumulé vers l’ATA du créateur sur le mint de devis. Appelable avant ou après la diplomation ; utilisez-le périodiquement plutôt que d’attendre qu’un énorme solde s’accumule.

Suivre un lancement tout au long de son cycle de vie

En mettant tout ensemble, un script de surveillance pourrait ressembler à :

Surveiller les configurations et les pools sur gRPC

Source : src/grpc/launchpadPoolInfo.ts S’abonne au programme LaunchLab sur Yellowstone gRPC et enregistre chaque mise à jour GlobalConfig et PoolState avec le programme de token de chaque mint. Deux filtres datasize sur un abonnement accounts séparent les deux types de comptes, donc un seul flux couvre les deux. La démo est la référence la plus courte et correcte pour classer les mints d’un lancement, ce que la version de quote-mint Token-2022 rend nécessaire :
  • Les pools sont classés directement à partir de PoolState.token_program_flag, en décodant le bit0 pour le mint de base et le bit1 pour le mint de devis sans aucune récupération de mint. Tester l’octet entier contre 0 — ce qui était suffisant alors que les mints de devis étaient hérités uniquement — mésinterprète un mint de base hérité comme Token-2022 chaque fois que le mint de devis est Token-2022.
  • Les configurations ne peuvent pas être classées de cette façon : un GlobalConfig stocke l’adresse du mint de devis et aucun drapeau de programme, donc la démo lit le propriétaire du compte mint une fois et le met en cache par mint.
Il effectue également une vérification croisée des deux l’un contre l’autre, ce qui est une assertion utile à conserver dans votre propre indexeur. Notez que « créer » par rapport à « mettre à jour » est déduit des caches propres de la démo, amorcés au démarrage à partir de getProgramAccounts ; avec cet amorçage désactivé, lisez « créer » comme « d’abord vu sur ce flux ». L’accès gRPC ne fait pas partie de la surface RPC publique — voir le src/grpc/README.md du dépôt de démo.

CPI Rust

Appeler LaunchLab à partir de votre propre programme Anchor est rare (la plupart des intégrations de lancement sont côté TS uniquement). Si vous le faites, le programme expédie une caisse Anchor raydium_launchlab avec cpi::accounts::Buy, cpi::accounts::Sell, etc. — le motif reflète les exemples CPI CPMM / CLMM. Voir sdk-api/rust-cpi pour un modèle généralisé une fois ce site rempli.

Pièges

  • Arithmétique de répartition des frais hors d’un. Si total_share n’est pas exactement lp_share + creator_share + protocol_share, Initialize revient avec InvalidFeeShares. Définissez totalShare égal à la somme.
  • Utiliser un mint de devis non autorisé. launch_config.allowed_quote_mints est une liste fixe ; passer n’importe quel autre mint revient. Vérifiez d’abord avec raydium.launchpad.getConfig().
  • Taille des métadonnées. Les longues chaînes uri poussent le CPI Metaplex au-delà du budget. Gardez uri sous ~200 caractères — la plupart des métadonnées JSON hébergées sur CDN s’adaptent facilement.
  • Course de diplomation. Les bots automatisés surveillent quote_reserve_real et font la course avant Graduate dans un ou deux emplacements du franchissement du seuil. C’est bénin — cela ne leur coûte que le loyer — mais cela signifie que votre interface utilisateur doit traiter les transitions status comme des événements rapides.

Où aller ensuite

Sources :