Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
O que isto faz. Cria um novo pool CLMM na camada de taxa de sua escolha e depois abre uma posição concentrada inicial. Duas transações, um script. O código foi retirado dos demos oficiais em
raydium-sdk-V2-demo/src/clmm e adaptado para um único arquivo executável no Node.Configuração
Certifique-se de ter lido os pré-requisitos do Quick start e terRPC_URL, KEYPAIR e as dependências instaladas.
A criação de um pool CLMM tem uma taxa única além do aluguel por array de tick para a posição inicial. Você também precisará de ambas as mints de seed em sua carteira — abrir uma posição quando o preço está dentro do intervalo escolhido requer liquidez dos dois lados.
Passo 1 — config.ts
Salve como config.ts. Este é o mesmo formato do src/config.ts.template do repositório de demo — disableFeatureCheck é forçado a true (recomendado para qualquer integração não trivial para que o SDK não bloqueie na chamada de feature-detect na inicialização):
Passo 2 — createPool.ts
Salve ao lado de config.ts. Fonte: src/clmm/createPool.ts.
Passo 3 — createPosition.ts
Fonte: src/clmm/createPosition.ts.
Passo 4 — utils.ts
Fonte: src/clmm/utils.ts.
Execute
O que aconteceu
Transação 1 —raydium.clmm.createPool inicializou:
- o estado do pool no PDA canônico para
(mint1, mint2, ammConfig), token_0_vaultetoken_1_vault(ordenados pela ordem de bytes da mint),- o buffer do ring de observação,
- o bitmap inline de tick-array,
sqrt_price_x64 inicial a partir do seu initialPrice.
Transação 2 — raydium.clmm.openPositionFromBase abriu uma posição concentrada:
- cunhou um NFT de posição para sua carteira (o NFT é a posição; transferi-lo transfere a posição),
- alocou arrays de tick nos limites inferior e superior (aluguel única vez se primeira posição nessas faixas; arrays de tick nunca são fechados pelo programa, então posições subsequentes nos mesmos arrays não pagam aluguel extra),
- depositou
inputAmountdemint1e o valor par correspondente demint2(computado porPoolUtils.getLiquidityAmountOutFromAmountIn), - creditou a posição com liquidez proporcional à largura do intervalo.
[0.000001, 100000]) é efetivamente full-range; aperte-o para concentrar taxas perto do spot atual.
Escolhendo uma camada de taxa
clmmConfigs[0] é a camada com taxa mais baixa. O conjunto completo é publicado em GET https://api-v3.raydium.io/main/clmm-config:
| Índice | tradeFeeRate | Espaçamento de tick | Use quando |
|---|---|---|---|
| 0 | 100 (1bp) | 1 | Estável / estável, perda impermanente muito baixa esperada |
| 1 | 500 (5bp) | 10 | Ativos altamente correlacionados (ex.: liquid-staked vs subjacente) |
| 2 | 2_500 (25bp) | 60 | Par de token padrão, blue-chip + estável |
| 3 | 10_000 (1.00%) | 120 | Par volátil ou fino onde risco de IL é alto |
user-flows/choosing-a-pool-type para uma matriz de decisão completa.
Erros comuns
Pool already exists for this config— Um pool CLMM já existe para esta tríade(mint1, mint2, ammConfig). Procure o ID do pool existente e pule o Passo 2.Insufficient funds for amount B— Sua carteira tem a quantia solicitada demintAmas não amintBcorrespondente. Abrir uma posição quando o preço está dentro do intervalo requer liquidez dos dois lados.Tick out of range— SeulowerPriceouupperPricecai fora da faixa de preço representável. Use um intervalo mais razoável relativo ao preço atual.- Preço desatualizado — Uma cotação da API pode estar 5–60 segundos desatualizada. Se
executePositionfalhar em slippage, descomente o blocogetRpcClmmPoolInfoemcreatePosition.tspara recuperar o preço ao vivo logo antes de assinar.
Ressalvas
- O NFT de posição é sua única alça. Perca o NFT ou transfira-o, perca acesso à posição. Trate-o como uma chave.
- Posições fora do intervalo não ganham taxas. Se o preço se mover para fora de
[lowerPrice, upperPrice], sua posição é estacionada inteiramente em um ativo e não ganha nada até você rebalancear. - O aluguel de tick array é unidirecional. A primeira posição a tocar um array de tick nunca inicializado paga seu aluguel; o programa não expõe um caminho para fechar arrays de tick, então esse aluguel é permanente. Posições subsequentes no mesmo array são gratuitas.
Próximo
products/clmm/overview— mecânica completa de CLMM.products/clmm/ticks-and-positions— a matemática por trás dos ticks.algorithms/impermanent-loss— quantificando amplificação de IL em CLMM.user-flows/create-clmm-pool— o mesmo fluxo via interface Raydium.

