Skip to main content
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Banner de versão.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Cluster: Solana mainnet-beta
  • Program ID: veja reference/program-addresses
  • Última verificação: 2026-04
Fixe a versão do SDK no seu package.json. A interface da curva de ligação evoluiu entre versões menores.

Configuração

As demonstrações aqui espelham arquivos em raydium-sdk-V2-demo/src/launchpad. O bootstrap segue o config.ts.template do repositório de demonstração:

Criar um lançamento

Fonte: src/launchpad/createMint.ts (e createBonkMintApi.ts para a variante Bonk orientada por API)
Notas:
  • initialK é o fator de escala para a curva quadrática. Ajuste-o para atingir um preço CPMM de abertura específico na formação. Veja products/launchlab/bonding-curve para a derivação.
  • O SDK lida com a criação do mint base, o PDA de metadados e ambos os vaults em uma única transação. Pode exceder 1232 bytes se o URI de metadados for longo; nesse caso, o SDK se divide em duas transações.
  • Após Initialize, o lançamento não é negociável até openTime. Defina openTime um ou dois minutos à frente para dar aos front-runners menos chance de pegar a primeira compra.

Buscar estado do lançamento

getLaunchById retorna o LaunchState decodificado mais a fração “progresso em direção à formação” calculada como um Decimal.

Comprar — entrada de quote exata

Fonte: src/launchpad/buy.ts
computeBuyBase espelha o solver Newton on-chain (curva quadrática) ou o inverso CPMM de forma fechada (curve_type 1). Use-o para preencher o campo “Você recebe” da UI.

Comprar — saída de base exata

Útil para UIs “compre exatamente X tokens”. Rejeita com ExceededSlippage se a curva se moveu o suficiente para que o requisito de quote agora exceda maximumQuoteIn.

Vender

Fonte: src/launchpad/sell.ts
O caminho de venda da curva é simétrico ao caminho de compra: reduzir base_sold por baseIn retorna quote_out igual à área integrada sob a curva entre base_sold − baseIn e base_sold, menos a taxa de venda.

Formação automática na compra de cruzamento de limite

O SDK encadeia uma instrução Graduate dentro da transação buy* quando detecta que o estado pós-compra cruzará o limite:
Como Graduate é sem permissão, qualquer pessoa (incluindo um bot MEV) pode correr para colocar o primeiro Graduate após o limite ser cruzado — normalmente segundos depois, não minutos. O primeiro a chegar apenas paga o aluguel das contas do pool CPMM; não recebe nenhum outro benefício.

Graduate manual

Se autoGraduate estava desativado ou a transação de cruzamento de limite falhou, você pode disparar a formação separadamente:
Reverte com NotAtThreshold se quote_reserve_real < quote_reserve_target no momento do envio. Seguro para retry — uma segunda tentativa de Graduate após o sucesso reverte com NotActive.

Coletar taxas do criador

Fonte: src/launchpad/claimCreatorFee.ts (mint único) e collectAllCreatorFees.ts (em lote)
Transfere o valor do contador de taxa do criador acumulado para o ATA do criador no mint de quote. Pode ser chamado pré ou pós-formação; use-o periodicamente em vez de esperar um saldo enorme se acumular.

Rastrear um lançamento através de seu ciclo de vida

Juntando tudo, um script de monitoramento pode parecer:

Assistir configurações e pools sobre gRPC

Fonte: src/grpc/launchpadPoolInfo.ts Se inscreve no programa LaunchLab sobre Yellowstone gRPC e registra cada atualização de GlobalConfig e PoolState com o programa de token de cada mint. Dois filtros datasize em uma assinatura accounts separam os dois tipos de conta, então um único stream cobre ambos. A demonstração é a referência mais curta e correta para classificar os mints de um lançamento, o que a versão de quote-mint do Token-2022 torna necessário:
  • Pools são classificados diretamente de PoolState.token_program_flag, decodificando bit0 para o mint base e bit1 para o mint de quote sem nenhuma busca de mint. Testar todo o byte contra 0 — que era suficiente enquanto os mints de quote eram apenas legados — interpreta mal um mint base legado como Token-2022 sempre que o mint de quote é Token-2022.
  • Configs não podem ser classificados dessa forma: um GlobalConfig armazena o endereço do mint de quote e nenhuma flag de programa, então a demonstração lê o proprietário da conta de mint uma vez e o armazena em cache por mint.
Também faz verificação cruzada dos dois um contra o outro, o que é uma asserção útil para manter em seu próprio indexador. Observe que create versus update é inferido dos próprios caches da demonstração, inicializados na inicialização a partir de getProgramAccounts; com essa inicialização desativada, leia “create” como “primeiro visto neste stream”. O acesso gRPC não faz parte da superfície RPC pública — veja src/grpc/README.md do repositório de demonstração.

Rust CPI

Chamar LaunchLab a partir de seu próprio programa Anchor é raro (a maioria das integrações de lançamento são apenas do lado TS). Se você fizer isso, o programa fornece um crate Anchor raydium_launchlab com cpi::accounts::Buy, cpi::accounts::Sell, etc. — o padrão espelha os exemplos de CPI CPMM / CLMM. Veja sdk-api/rust-cpi para um modelo generalizado quando este site for preenchido.

Armadilhas

  • Arredondamento de divisão de taxa desligado por um. Se total_share não for exatamente lp_share + creator_share + protocol_share, Initialize reverte com InvalidFeeShares. Defina totalShare igual à soma.
  • Usando um mint de quote não permitido. launch_config.allowed_quote_mints é uma lista fixa; passar qualquer outro mint reverte. Verifique com raydium.launchpad.getConfig() primeiro.
  • Tamanho de metadados. Strings uri longas empurram o CPI do Metaplex além do orçamento. Mantenha uri com menos de ~200 caracteres — a maioria dos metadados JSON hospedados em CDN se encaixa facilmente.
  • Corrida de formação. Bots automatizados monitoram quote_reserve_real e front-run Graduate dentro de um ou dois slots do cruzamento de limite. Isso é inócuo — apenas custa aluguel — mas significa que sua UI deve tratar transições de status como eventos rápidos.

Para onde ir a seguir

Fontes: