Saltar para o conteúdo principal
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Esta página documenta o grafo de contas por lançamento: o PoolState (a conta de estado raiz para um lançamento), seus dois vaults, o PDA de autoridade e as referências pós-graduação que ele ganha quando o lançamento é liquidado.Para a configuração em nível de protocolo que limita todos os lançamentos, veja products/launchlab/global-config. Para a camada por plataforma, veja products/launchlab/platform-config. Para contas de vesting (VestingSchedule em PoolState, VestingRecord por beneficiário), veja products/launchlab/vesting.

Inventário de contas

O raydium.launchpad.getLaunchById do SDK retorna PoolState mais uma flag indicando se o lançamento foi graduado; se foi, o ID do pool pós-migração está incluído.

PoolState

O estado raiz por lançamento. Os nomes de campo abaixo correspondem à struct Rust on-chain (states/pool.rs); alguns valores são simplificados para legibilidade — consulte a fonte para o layout exato de memória.
Valores de PoolStatus (do IDL Anchor):
Campos voltados para integradores:
  • status — três valores, monotone (Funding → Migrate → Migrated). Leituras sempre seguras; escritas controladas.
  • real_base, real_quote — estado de curva atual. Combinados com virtual_base / virtual_quote são suficientes para calcular o preço spot sem tocar nos vaults. Veja bonding-curve.
  • total_base_sell vs real_base — razão de “progresso em direção à graduação” para UIs.
  • migrate_type — seleciona se MigrateToAmm ou MigrateToCpswap é o caminho de graduação válido. Lançamentos Token-2022 devem usar CPMM.
  • amm_creator_fee_on — apenas significativo ao graduar para CPMM. Escolhe creator_fee_on = OnlyQuoteToken (0) ou BothToken (1) no pool CPMM pós-graduação. Apesar do nome, este enum efetivamente também direciona o alvo de migração — BothToken é pareado com MigrateToAmm na prática operacional atual; QuoteToken com MigrateToCpswap. Veja creator-fees.
  • quote_protocol_fee / platform_fee / migrate_fee — três contadores de taxa independentes. Cada um tem sua própria instrução de claim; veja instructions.
  • vesting_schedule — presente em todo PoolState mas inativo quando total_locked_amount == 0. Veja vesting para o ciclo de vida completo.

O PDA de autoridade

LaunchLab usa um único PDA de autoridade em todos os lançamentos, derivado sem seed por lançamento:
Esse PDA único é:
  • A autoridade em cada base_vault e quote_vault de lançamento.
  • A mint_authority em cada base_mint do lançamento (pré-graduação).
  • O signatário no CPI pós-graduação para AMM v4 / CPMM (MigrateTo*).
  • O signatário nas transferências ClaimVestedToken fora do base vault.
A mint_authority é revogada imediatamente após MigrateToAmm / MigrateToCpswap para que o suprimento seja permanentemente fixo. Dois PDAs adicionais controlam os vaults de taxa:
Estes assinam a transferência para fora do vault de taxa correspondente durante ClaimCreatorFee e ClaimPlatformFeeFromVault.

Base mint

Criado inline por Initialize com:
  • mint_authority = authority (revogada na graduação).
  • freeze_authority = None.
  • supply = supply, inteiramente cunhada em base_vault.
  • decimals escolhido pelo criador em Initialize (comumente 6).
Como o suprimento total é pré-cunhado, base_mint.supply é constante para a vida útil do lançamento. Compras de curva movem tokens de base_vault para o comprador, mas não chamam mint_to. Initialize / InitializeV2 criam lançamentos SPL Token. A instrução dedicada InitializeWithToken2022 permite que o base mint seja um mint Token-2022 (com TransferFeeConfig opcional); o quote mint ainda é SPL Token. Lançamentos Token-2022 devem graduar para um pool CPMM porque AMM v4 suporta apenas vaults SPL Token.

Vaults

Tanto base_vault quanto quote_vault são contas SPL Token padrão possuídas pelo PDA LaunchLab authority. Os endereços são armazenados em PoolState e também podem ser derivados:
(Verifique os prefixos exatos de seed da struct de contas Initialize da fonte antes de confiar em uma derivação em produção.)

Vaults de taxa

Dois PDAs agregam taxas em lançamentos:
  • Vault de taxa do criador — PDA nas seeds [creator, quote_mint]. Todo lançamento que arrecada as mesmas taxas de criador no mesmo quote mint despeja no mesmo vault. O criador o limpa via ClaimCreatorFee.
  • Vault de taxa de plataforma — PDA nas seeds [platform_config, quote_mint]. Todo lançamento roteado através da mesma plataforma que usa o mesmo quote mint despeja no mesmo vault. A platform_fee_wallet da plataforma o limpa via ClaimPlatformFeeFromVault. Há também uma variante de limpeza por lançamento (ClaimPlatformFee) que extrai do quote_vault do lançamento diretamente sem passar pelo vault agregado.
O padrão de vault agregado é o que permite que um criador ou plataforma de alto volume amortize o custo de aluguel da acumulação de taxas em muitos lançamentos.

Quote vault ↔ real_quote

quote_vault.balance e PoolState.real_quote devem permanecer em sincronização. Podem divergir no máximo pela soma dos três contadores de taxa pendentes (quote_protocol_fee, platform_fee, migrate_fee), que ficam no vault mas pertencem aos contadores de taxa e não à reserva de curva. A matemática da curva sempre usa real_quote, nunca o saldo bruto do vault. Invariante pré-graduação:

Transições de contas do ciclo de vida

Próximos passos

Fontes:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — constantes de seed de PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Módulo launchpad do Raydium SDK v2.