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 →
GlobalConfig é a conta de configuração em nível de protocolo. Pode haver muitas delas — indexadas por (curve_type, index) — e todo lançamento escolhe exatamente uma no tempo de Initialize. Os valores no GlobalConfig escolhido então se tornam limites rígidos para os parâmetros daquele lançamento. Para customização em nível de plataforma (taxa de fee por plataforma, formas de curva permitidas, splits de NFT na graduação), veja products/launchlab/platform-config.O que é
UmGlobalConfig é um PDA singleton-por-(curve_type, index) que fixa as regras em nível de protocolo que todo lançamento deve obedecer:
- O tipo de bonding curve permitido (
curve_type). - A taxa de fee de trade que a curva cobra em cada compra e venda.
- A taxa de migração cobrada na graduação.
- Pisos em supply, lock rate, sell rate e migrate rate.
- O quote mint (tipicamente wrapped SOL ou USDC) — o ativo que os usuários compram.
- Três wallets em nível de protocolo: o proprietário de fee de protocolo, o proprietário de fee de migração e as duas wallets de controle de migração que autorizam a graduação para AMM v4 / CPMM.
- Um flag opcional (
requires_platform_auth) que controla quais plataformas podem usar essa configuração.
GlobalConfig são criadas e atualizadas pelo admin do programa LaunchLab (a pubkey de admin hardcoded compartilhada entre programas Raydium baseados em Anchor — veja reference/program-addresses).
Layout
create_config do programa é a fonte de verdade.)
Semântica dos campos
curve_type e index
Juntos, esses campos indexam um GlobalConfig de forma única. Existe um GlobalConfig por par (curve_type, index):
curve_type = 0— Curva de virtual-reserve de produto constante. Padrão e mais usado.curve_type = 1— Curva de preço fixo.curve_type = 2— Curva de preço linear.
index é um u16 que permite ao admin publicar múltiplas configurações por tipo de curva (p.ex., uma com uma taxa mais apertada, uma com um mínimo de quote raise mais alto). No Initialize o lançamento fornece um par (curve_type, index) e o programa carrega o GlobalConfig correspondente.
Taxas
trade_fee_rate— denominado em1/1_000_000do volume de trade. Aplicado a cada compra e venda na curva. Oprotocol_fee_ownerreivindica sua parte viaCollectFee.migrate_fee— uma taxa fixa em lamports (ou unidades de quote, dependendo da configuração) cobrada uma vez na graduação. Reivindicada pormigrate_fee_ownerviaCollectMigrateFee.max_share_fee_rate— inicializado em10_000(100 bps). Limita a taxa de fee de share da plataforma doPlatformConfigvinculante (vejaplatform-config). O programa reforçatrade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.
Pisos de supply e taxa
Esses pisos limitam quais parâmetros de forma de curva um lançamento pode escolher noInitialize. Se o CurveParams do criador violar qualquer um deles, Initialize reverte com InvalidInput.
min_base_supply— o mínimosupply(sem decimais) que a curva pode declarar. Padrão é10_000_000.max_lock_rate— denominado em1/1_000_000; padrão300_000(30%). Limita vesting viatotal_locked_amount <= supply * max_lock_rate / 1_000_000.min_base_sell_rate— denominado em1/1_000_000; padrão200_000(20%). Limitabase_supply_graduation / supplypor baixo.min_base_migrate_rate— denominado em1/1_000_000; padrão200_000(20%). Limita o número de tokens restantes para semear o pool pós-graduação.min_quote_fund_raising— mínimoquote_reserve_targetque um lançamento pode declarar (com decimais). Padrão é30_000_000_000unidades do quote mint.
Quote mint e wallets de protocolo
quote_mint— o ativo que os usuários compram. A maioria dos lançamentos usa wrapped SOL (So111…112) ou USDC (EPjF…Dt1v). UmGlobalConfigestá vinculado a um quote mint; lançamentos que precisam de um target de quote diferente visam um(curve_type, index)diferente.protocol_fee_owner— pubkey que assinaCollectFeee reivindica as taxas de protocolo acumuladas em cada lançamento vinculado a essa configuração. Armazenado on-chain; o admin pode rotacioná-lo viaUpdateConfig.migrate_fee_owner— pubkey que assinaCollectMigrateFee.
Wallets de migração
Os dois caminhos de graduação requerem signers diferentes:migrate_to_amm_wallet— deve assinarMigrateToAmm. Usada para lançamentos cujomigrate_type = 0(formar para AMM v4 + OpenBook).migrate_to_cpswap_wallet— deve assinarMigrateToCpswap. Usada paramigrate_type = 1(formar para CPMM). Lançamentos Token-2022 sempre seguem esse caminho.
requires_platform_auth
Um flag u8 (0 = qualquer um pode usar essa configuração; não-zero = apenas plataformas com um PDA PlatformGlobalAccess válido podem formar contra ele). Quando definido, cada Initialize contra esse GlobalConfig deve incluir uma conta PlatformGlobalAccess correspondente provando que a plataforma foi pré-autorizada via CreatePlatformGlobalAccess (uma instrução apenas de admin). Veja platform-config para a mecânica do lado da plataforma.
Padrões na inicialização
QuandoCreateConfig é chamado, o programa semeia muitos campos com padrões hardcoded:
curve_type, index, migrate_fee, trade_fee_rate, quote_mint e as quatro pubkeys de wallet explicitamente no tempo de criação; valores posteriores podem ser ajustados via UpdateConfig.
Como um lançamento escolhe um GlobalConfig
No Initialize, o criador passa:
(curve_type, index)para selecionar qual PDAGlobalConfigcarregar.CurveParamsdescrevendo a forma da curva (supply,total_base_sell,total_quote_fund_raising,migrate_type).VestingParamsdescrevendo supply bloqueado.MintParamspara o base mint.
curve_typecorresponde aglobal_config.curve_type.supply >= global_config.min_base_supply.total_locked_amount <= supply * max_lock_rate / 1_000_000.total_base_sell >= supply * min_base_sell_rate / 1_000_000.(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000— ou seja, tokens suficientes restantes para semear o pool pós-graduação.total_quote_fund_raising >= min_quote_fund_raising.- Se
requires_platform_auth != 0, um PDAPlatformGlobalAccessválido é incluído.
Initialize, o PoolState do lançamento armazena a pubkey global_config diretamente, então o vínculo é permanente.
Caminho de atualização
UpdateConfig é apenas de admin e recebe um par (param: u8, value: u64). Cada valor param seleciona qual campo mutar:
param | Campo alterado |
|---|---|
| 0 | migrate_fee |
| 1 | trade_fee_rate |
| 2 | max_share_fee_rate |
| 3 | min_base_supply |
| 4 | max_lock_rate |
| 5 | min_base_sell_rate |
| 6 | min_base_migrate_rate |
| 7 | min_quote_fund_raising |
protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) recebem uma forma de argumento Pubkey separada; verifique a fonte de update_config para a tabela de dispatch exata antes de compor uma transação de admin.
requires_platform_auth é acionado via set_requires_platform_auth(bool).
Lendo um GlobalConfig de um cliente
getAllGlobalConfigs do SDK ou consulte o endpoint da API LaunchLab que as espelha; a contagem de contas on-chain é pequena (single digits na prática).
Referências
products/launchlab/platform-config— overlay por plataforma que restringe ainda mais a forma da curva.products/launchlab/accounts— grafo completo de contas para um lançamento.products/launchlab/instructions— instruçõesInitializee update.reference/program-addresses— pubkey de admin, ID do programa, autoridades compartilhadas.
raydium-launch/programs/launchpad/src/states/config.rs— structGlobalConfigeinitialize.raydium-launch/programs/launchpad/src/lib.rs—create_config,update_config.


