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.
Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
LaunchLab supporte trois formes de courbe sélectionnées à l’
Initialize : constant-product (la plus courante, la forme de réserve virtuelle de la courbe x · y = k standard), linear-price, et fixed-price. La formule du seuil de graduation est commune à tous les trois. Cette page détaille les mathématiques constant-product ; les formes linéaire et fixe sont résumées à la fin.Paramètres stockés sur LaunchState
| Champ | Signification |
|---|---|
curve_type | 0 = constant-product (réserves virtuelles), 1 = fixed-price, 2 = linear-price. |
base_supply_max | Total de jetons de base que la courbe peut émettre. |
base_supply_graduation | Jetons de base qui doivent être vendus pour atteindre la graduation. Généralement 0.8 × base_supply_max ; les 20 % restants deviennent la LP initiale du pool post-graduation. |
quote_reserve_target | Montant de citation qui déclenche la graduation. Dérivé à l’Initialize à partir des paramètres de courbe + base_supply_graduation. |
virtual_base / virtual_quote | Graines de réserve virtuelle pour la courbe constant-product. |
migrate_type | Sélectionne la cible de graduation : AMM v4 vs CPMM. Voir instructions. |
fees.buy_numerator / buy_denominator | Frais du côté achat, par exemple 100 / 10_000 = 1.00%. |
fees.sell_numerator / sell_denominator | Frais du côté vente. Souvent identiques aux frais d’achat. |
fees.protocol_share, fees.creator_share, fees.lp_share | Répartition des frais ci-dessus, s’additionnant au dénominateur. |
PoolState décrits dans accounts ; les unités ci-dessus sont conceptuelles.
Courbe constant-product avec réserves virtuelles (curve_type = 0)
La courbe par défaut et la plus utilisée. Tous les lancements de type Pump utilisent cette forme. La courbe prétend qu’il existe une réserve de citation virtuelle V_q et une réserve de base virtuelle V_b dès le début (stockées sous virtual_quote et virtual_base sur PoolState), donc le pool effectif ressemble à un CPMM avec ces réserves. Les achats suivent les mathématiques x · y = k :
base_out :
s :
x · y = k identique que LaunchLab applique avant la graduation est alors littéralement la courbe CPMM (ou AMM v4) post-graduation, donc la transmission de graduation est mécaniquement transparente : le prix marginal à base_sold = base_supply_graduation égale le prix auquel le pool post-graduation s’ouvre avec (quote_vault, base_vault_remaining) comme réserves.
Courbe à prix fixe (curve_type = 1)
Une courbe à prix plat. Chaque achat/vente se fait à un prix constant, configurable à l’Initialize :
base_supply_graduation a été vendu (la relation de coût linéaire rend quote_reserve_target simple à dériver).
Courbe de prix linéaire (curve_type = 2)
Le prix augmente linéairement avec base_sold :
base_sold — les premiers acheteurs paient presque zéro, les derniers acheteurs paient beaucoup plus, le prix marginal augmentant toujours à une pente fixe. L’implémentation on-chain vit dans curve/linear_price.rs.
Comparaison des formes de courbe
Seuil de graduation
quote_reserve_target est calculé à l’Initialize comme la citation requise pour conduire base_sold de 0 à base_supply_graduation :
quote_vault.balance ≥ quote_reserve_target. Comme les achats arrivent à des tailles discrètes, le solde réel à la graduation peut légèrement dépasser la cible — l’excédent devient de la liquidité supplémentaire du côté citation dans le pool CPMM résultant.
Exemple travaillé — un lancement quadratique
Paramètres :base_supply_max = 1_000_000_000(1 milliard de jetons de base, 6 décimales)base_supply_graduation = 800_000_000(80 % vendus déclenchent la graduation)k = 40(échelle de prix)- Frais : 1 % achat, 1 % vente, répartition
lp:creator:protocol = 60:20:20.
s = 0) : 0 (la quadratique pure commence à zéro).
Prix à 50 % vendu (s = 500_000_000) :
s = 800_000_000) :
10 USDC :
- État virtuel :
s = 0,quote_vault = 0. - Soustraire les frais :
quote_after_fee = 10 × 0.99 = 9.9. - Résoudre
(40 / (3e18)) × s³ = 9.9⇒s ≈ 6.22e6jetons de base achetés. - Frais 1% (
0.1 USDC) répartis : lp0.06, creator0.02, protocol0.02. La part lp reste dansquote_vault; les deux autres routent vers leurs compteurs de cumul respectifs.
s₀ = 750e6 avec quote_in_after_fee = 9.9 donne approximativement ∆s ≈ 0.4e6 — une réduction ~15× de base par USDC comparée au premier achat.
Mécanique des frais pendant la phase de courbe
À chaqueBuy :
lp_shareest laissé dansquote_vault. C’est ce qui rend la courbe effective plus serrée (plus de réserve de citation contre le même approvisionnement en base).protocol_shareincrémenteLaunchState.state_data.protocol_fees_quote.creator_shareincrémenteLaunchState.state_data.creator_fees_quote.
Sell la même répartition s’applique mais les frais sont prélevés sur la quote_out sortante.
Les deux compteurs sont balayés via CollectFees (admin ou creator, chacun sur son propre compteur).
Précision
- Montants du côté base :
u64. - Montants du côté citation :
u64. - Cubes / produits intermédiaires :
u128. - Les résolutions Newton pour « acheter citation exacte » et « vendre citation exacte » itèrent en
u128à point fixe avec un nombre d’itérations max configurable (par défaut 10). Le mode d’échec estNotConverged— rare en dehors des cas limites proches de la graduation.
Transmission au CPMM
QuandGraduate se déclenche :
cpmm_initial_price est mécaniquement price(base_sold) (c’est le prix de courbe marginal au moment de la transmission). Le pool CPMM s’ouvre exactement à ce prix, donc un observateur passant de l’interface de courbe à l’interface CPMM ne voit aucun saut.
Où aller ensuite
products/launchlab/accounts— les champsLaunchStatestockant ces paramètres.products/launchlab/instructions— listes de comptesBuy,Sell,Graduate.algorithms/constant-product— les mathématiques CPMM que le pool post-graduation utilise.
- Raydium SDK v2
LaunchLabmodule - Raydium LaunchLab program source


