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.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
O LaunchLab suporta três formas de curva selecionadas em
Initialize: constant-product (a mais comum, forma de reserva virtual da curva padrão x · y = k), linear-price e fixed-price. A fórmula do limiar de graduação é compartilhada entre as três. Esta página detalha a matemática constant-product; as formas linear e fixa são resumidas ao final.Parâmetros armazenados em LaunchState
| Campo | Significado |
|---|---|
curve_type | 0 = constant-product (reservas virtuais), 1 = fixed-price, 2 = linear-price. |
base_supply_max | Total de tokens base que a curva pode cunhar. |
base_supply_graduation | Tokens base que devem ser vendidos para atingir a graduação. Geralmente 0.8 × base_supply_max; os 20% restantes se tornam o LP inicial do pool pós-graduação. |
quote_reserve_target | Quantidade de quote que dispara a graduação. Derivada em Initialize a partir dos parâmetros da curva + base_supply_graduation. |
virtual_base / virtual_quote | Sementes de reserva virtual para a curva constant-product. |
migrate_type | Seleciona o alvo de graduação: AMM v4 vs CPMM. Veja instructions. |
fees.buy_numerator / buy_denominator | Taxa buy, p.ex. 100 / 10_000 = 1.00%. |
fees.sell_numerator / sell_denominator | Taxa sell. Frequentemente igual à buy. |
fees.protocol_share, fees.creator_share, fees.lp_share | Divisão da acima, somando ao denominador. |
PoolState descritos em accounts; as unidades acima são conceituais.
Curva constant-product com reservas virtuais (curve_type = 0)
A curva padrão e mais usada. Todos os lançamentos estilo Pump usam esta forma. A curva finge que há uma reserva virtual de quote V_q e uma reserva virtual de base V_b desde o início (armazenadas como virtual_quote e virtual_base em PoolState), então o pool efetivo se parece com um CPMM com essas reservas. As compras seguem a matemática x · y = k:
base_out:
s:
x · y = k que o LaunchLab aplica pré-graduação é então literalmente a curva CPMM (ou AMM v4) pós-graduação, então a transição de graduação é mecanicamente perfeita: o preço marginal em base_sold = base_supply_graduation é igual ao preço que o pool pós-graduação abre com (quote_vault, base_vault_remaining) como suas reservas.
Curva de preço fixo (curve_type = 1)
Uma curva de preço plano. Toda compra/venda acontece a um preço constante, configurável em Initialize:
base_supply_graduation foi vendido (a relação de custo linear torna quote_reserve_target simples de derivar).
Curva de preço linear (curve_type = 2)
O preço aumenta linearmente com base_sold:
base_sold — compradores iniciais pagam próximo de zero, compradores tardios pagam substancialmente mais, com o preço marginal sempre crescendo em uma inclinação fixa. A implementação on-chain vive em curve/linear_price.rs.
Comparação de formas de curva
Limiar de graduação
quote_reserve_target é calculado em Initialize como o quote necessário para levar base_sold de 0 a base_supply_graduation:
quote_vault.balance ≥ quote_reserve_target. Como as compras vêm em tamanhos discretos, o saldo real na graduação pode exceder ligeiramente o alvo — o excedente se torna liquidez adicional do lado quote no pool CPMM resultante.
Exemplo prático — um lançamento quadrático
Parâmetros:base_supply_max = 1_000_000_000(1 bilhão de tokens base, 6 decimais)base_supply_graduation = 800_000_000(80% vendidos dispara graduação)k = 40(escala de preço)- Taxas: 1% buy, 1% sell, divididas
lp:creator:protocol = 60:20:20.
s = 0): 0 (quadrático puro começa em zero).
Preço em 50% vendido (s = 500_000_000):
s = 800_000_000):
10 USDC:
- Estado virtual:
s = 0,quote_vault = 0. - Subtrair taxa:
quote_after_fee = 10 × 0.99 = 9.9. - Resolver
(40 / (3e18)) × s³ = 9.9⇒s ≈ 6.22e6tokens base comprados. - Taxa de 1% (
0.1 USDC) dividida: lp0.06, creator0.02, protocol0.02. A participação lp fica emquote_vault; as outras duas são roteadas para seus respectivos contadores.
s₀ = 750e6 com quote_in_after_fee = 9.9 fornece aproximadamente ∆s ≈ 0.4e6 — uma redução de ~15× em base por USDC comparado à primeira compra.
Mecânica de taxas durante a fase de curva
A cadaBuy:
lp_shareé deixado emquote_vault. Isto é o que torna a curva efetiva mais apertada (mais reserva de quote contra o mesmo suprimento de base).protocol_shareincrementaLaunchState.state_data.protocol_fees_quote.creator_shareincrementaLaunchState.state_data.creator_fees_quote.
Sell a mesma divisão se aplica mas a taxa é retirada do quote_out de saída.
Ambos os contadores são limpos via CollectFees (admin ou creator, cada um ao seu contador).
Precisão
- Quantidades lado base:
u64. - Quantidades lado quote:
u64. - Cubos / produtos intermediários:
u128. - Soluções Newton para “comprar quote exato” e “vender quote exato” iteram em
u128ponto fixo com contagem máxima de iterações configurável (padrão 10). O modo de falha éNotConverged— raro fora de casos extremos perto da graduação.
Transição para CPMM
QuandoGraduate dispara:
cpmm_initial_price é mecanicamente price(base_sold) (é o preço marginal da curva no momento da transição). O pool CPMM abre exatamente a esse preço, então um observador que muda da UI da curva para a UI do CPMM não vê um salto.
Próximos passos
products/launchlab/accounts— os camposLaunchStatearmazenando estes parâmetros.products/launchlab/instructions— listas de contasBuy,Sell,Graduate.algorithms/constant-product— a matemática CPMM que o pool pós-graduação usa.
- Raydium SDK v2 módulo
LaunchLab - Fonte do programa Raydium LaunchLab


