Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
PlatformConfig é a sobreposição no nível da plataforma que fica acima de GlobalConfig. Enquanto GlobalConfig define as regras em todo o protocolo (“taxa de negociação é 1%, fornecimento deve ser pelo menos 10M, apenas esta carteira pode se formar”), PlatformConfig é o que cada plataforma de lançamento — pump.fun, a própria interface do Raydium, launchpads de terceiros — usa para adicionar sua taxa, reivindicar sua fatia do LP pós-graduação, restringir quais formas de curva seus lançamentos podem escolher e exibir sua marca (nome, site, imagem) on-chain.O que é
Uma contaPlatformConfig gerencia cinco responsabilidades transversais para uma plataforma:
- Marca — nome, site, link de imagem, todos armazenados inline para que qualquer explorador ou agregador possa exibir a plataforma que lançou um token.
- Taxa de plataforma — uma taxa de negociação extra (
fee_rate) além datrade_fee_ratedo protocolo. Acumula naplatform_fee_walletda plataforma. Limitada a 100 bps porGlobalConfig.max_share_fee_rate. - Divisão de migração de LP — três inteiros armazenados (
platform_scale,creator_scale,burn_scale) que somam1_000_000. Antes da atualização de 2026-08-17, a escala do criador produzia uma Fee Key separada do criador. Migrações executadas após a atualização combinam as duas primeiras em uma compartilhamento de LP bloqueado de propriedade da plataforma; o restante é queimado. - Lista de permissões de parâmetros de curva — um
Vec<PlatformCurveParam>listando exatamente quais combinações de(supply, total_base_sell, total_quote_fund_raising, migrate_type, migrate_cpmm_fee_on, vesting_params...)são permitidas nesta plataforma. Se o vetor estiver vazio ou todas as entradas forem inválidas, qualquer combinação é permitida; caso contrário, os lançamentos devem corresponder exatamente a uma das entradas. - Lista de permissões de configuração global — uma restrição opt-in que requer um
PlatformAllowConfigcriado pela plataforma para aGlobalConfigselecionada.
create_platform_config no código-fonte para a lista de seeds canônica.)
Layout
platform_scale + creator_scale + burn_scale deve ser igual a 1_000_000. Antes da atualização de 2026-08-17, creator_scale era bloqueado separadamente e sua Fee Key ia para o criador do token. Para migrações executadas após a atualização, é adicionado a platform_scale e seus direitos de LP bloqueado vão para a plataforma. Exemplos de resultados sob a lógica atualizada:
(0, 100_000, 900_000)— 90% LP queimado, 10% bloqueado para a plataforma.(50_000, 100_000, 850_000)— 85% queimado, 15% bloqueado para a plataforma.(0, 0, 1_000_000)— queima total, sem cunhagem de NFT. Lançamentos estritos “sem insiders”.
Campos de marca
name, web e img são arrays de bytes inline preenchidos com zeros até suas constantes de tamanho. Para lê-los como strings, fatia até o primeiro \0:
name: 64, web: 256, img: 256) para que as plataformas possam incluir metadados suficientes para exploradores e agregadores sem acessar armazenamento off-chain. Qualquer coisa que exceda esses tamanhos reverte em CreatePlatformConfig com InvalidInput.
Mecânica de taxas
Um swap em uma curva vinculada a umPlatformConfig cobra três taxas em camadas:
trade_feeacumula noprotocol_fee_ownerdo protocolo (reivindicado viaCollectFee).platform_feeacumula em um cofre por plataforma (reivindicado viaClaimPlatformFeeouClaimPlatformFeeFromVault; vejainstructions).creator_feeacumula em um cofre por criador com chave do pubkey do criador + quote mint (reivindicado viaClaimCreatorFee).
creator_fee_rate é limitado por MAX_CREATOR_FEE_RATE = 5000 (50 bps). fee_rate (a taxa de plataforma) é limitado a 10000 (100 bps) por GlobalConfig.max_share_fee_rate.
Divisão de migração de NFT (apenas CPMM)
Quando um lançamento se forma para CPMM, a instrução de migração divide os tokens LP cunhados porCPMM::InitializeWithPermission de duas maneiras:
lp_to_platform for diferente de zero, o programa LP-Lock o envolve em uma Fee Key NFT de propriedade de platform_nft_wallet. Isso substitui o comportamento pré-atualização que criava Fee Keys separadas de plataforma e criador. Fee Keys criadas por migrações concluídas antes da atualização permanecem inalteradas. Este direito de taxa de LP é separado das taxas de criador CPMM controladas por platform_cp_creator.
A fatia de queima é queimada diretamente, portanto nenhuma conta pode sacá-la ou reivindicar as taxas de LP representadas por essa fatia.
Lançamentos existentes com migrate_type = 0 armazenado ainda podem usar o caminho AMM v4 legado. A nova inicialização rejeita esse tipo de migração.
Lista de permissões de parâmetros de curva
curve_params: Vec<PlatformCurveParam> é o mecanismo da plataforma para restringir quais formas de curva seus lançamentos podem escolher. Se o vetor não estiver vazio e pelo menos uma entrada for válida, o programa força em Initialize que os parâmetros do lançamento correspondam exatamente a pelo menos uma entrada.
u64::MAX para os campos u64, u8::MAX para os campos u8, 0 para os campos de fornecimento / venda / arrecadação de fundos. Um BondingCurveParam com todos os sentinelas é “permitir qualquer coisa” — equivalente ao comportamento de lista vazia.
O algoritmo de correspondência em Initialize:
- Filtra
curve_paramspara entradas cujaglobal_configcorresponde àGlobalConfigescolhida do lançamento. - Se a lista filtrada estiver vazia, permite qualquer parâmetro (a plataforma não colocou na lista de permissões nada para esta
GlobalConfig). - Se cada entrada na lista filtrada tiver
all_is_invalid()(cada campo é o wildcard), permite qualquer parâmetro. - Caso contrário, itera entradas; para cada entrada, verifica os parâmetros do lançamento contra cada campo não-wildcard. Se todos os campos não-wildcard corresponderem, aceita e retorna.
- Se nenhuma entrada correspondeu, reverte com
InvalidInput.
MAX_CURVE_PARAMS = 10 limita o tamanho da lista de permissões.
PlatformAllowConfig — restringindo uma plataforma
Cada plataforma decide se restringe quais contas GlobalConfig seus lançamentos podem usar. Defina restrict_global_config com UpdatePlatformConfig::RestrictGlobalConfig(0 | 1).
[b"platform_allow_config", platform_config, global_config].
O administrador da plataforma cria ou fecha uma conta por par permitido via CreatePlatformAllowConfig e ClosePlatformAllowConfig. Quando a restrição é 1, a inicialização procura em remaining_accounts pelo PDA esperado e rejeita uma conta ausente com NotEnoughRemainingAccounts. Quando a restrição é 0, nenhuma conta de permissão é necessária.
A conta PlatformGlobalAccess gerenciada anteriormente pelo administrador do protocolo e suas instruções de criar/fechar são descontinuadas. Os tamanhos existentes de PlatformConfig e GlobalConfig não mudam, mas os decodificadores devem substituir o sinalizador global antigo pelo novo sinalizador de plataforma. PDAs de acesso antigos não são consumidos pela nova verificação.
Caminho de leitura
PoolState.platform_config aponta diretamente para o PlatformConfig originário — busque uma vez e coloque em cache a marca.
Caminho de atualização
Rotações de carteira (
platform_fee_wallet, platform_nft_wallet, platform_vesting_wallet, platform_cp_creator, transfer_fee_extension_auth, cpswap_config) todas passam por UpdatePlatformConfig. Leia a tabela de despacho update_platform_config do código-fonte para os códigos param exatos.
Armadilhas comuns
- Sentinelas de lista de permissões mal definidas. Um
BondingCurveParamcomtotal_locked_amount = 0não é um wildcard — corresponde a lançamentos que explicitamente optam por não usar vesting. O wildcard para esse campo éu64::MAX. A mesma armadilha existe paracliff_periodeunlock_period. Useclear()(que o programa expõe) para definir sentinelas corretamente. - Arredondamento de divisão de NFT. As três escalas devem somar exatamente
1_000_000. Erros de um emCreatePlatformConfigrevertam; erros de um em tempo de execução cunhariam ou queimariam uma unidade LP extra, que é o que a verificação de igualdade estrita está lá para prevenir. - Dupla alocação de vesting de plataforma. Se
platform_vesting_scale > 0, a plataforma deve chamarCreatePlatformVestingAccountuma vez após o término da arrecadação de fundos do lançamento; se esquecer, essa fatia permanece não alocada e dormente para sempre (o orçamentototal_locked_amountdo lançamento é consumido mas a plataforma nunca reclama). - Ambiguidade de
platform_cp_creator. Quando definido comoPubkey::default(), o criador do lançamento é registrado comopool_creatordo pool CPMM pós-graduação; quando definido como uma chave real, essa chave é registrada. Isso determina o beneficiário das taxas de criador CPMM pós-graduação e quem pode assinar o caminho originalCPMM::CollectCreatorFee. O caminho de coleta sem permissão ainda paga as ATAs canônicas dessa chave registrada. Decida no momento da criação da configuração da plataforma qual modelo você quer. - Restrição sem uma conta de permissão. Habilitar
restrict_global_configantes de criar oPlatformAllowConfignecessário bloqueia novos lançamentos que selecionam essa configuração.
Referências
products/launchlab/global-config— regras do lado do protocolo que um lançamento deve satisfazer.products/launchlab/vesting— mecânica deplatform_vesting_scale.products/launchlab/creator-fees— taxas de criador versus direitos de Fee Key de plataforma.products/launchlab/platforms— guia de como fazer para integradores de plataforma.
raydium-launch/programs/launchpad/src/states/platform_config.rs—PlatformConfig,PlatformParams,MigrateNftInfo,PlatformCurveParam,BondingCurveParam,is_valid_curve_param.raydium-launch/programs/launchpad/src/states/platform_allow_config.rs—PlatformAllowConfig.raydium-launch/programs/launchpad/src/lib.rs— pontos de entrada de configuração de plataforma e configuração de permissão.

