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 →
Este é o changelog da documentação — o registro de atualizações nestas páginas desde o lançamento do projeto. Para a linha do tempo histórica do próprio protocolo, consulte
introduction/history-and-milestones. Cada entrada contém uma data, a lista de capítulos afetados, o motivo da alteração e uma data de verificação indicando quando o estado on-chain e o código-fonte do programa foram confrontados com o conteúdo escrito pela última vez.Não lançado — CLMM: limit orders, taxa unilateral, taxa dinâmica
A próxima versão do CLMM adiciona três capacidades no nível de pool. São opcionais no momento da criação do pool e retrocompatíveis com pools e posições existentes.Resumo para integradores
- Limit orders são agora primitivas CLMM de primeira classe. LPs podem abrir uma ordem de tick único em um pool que as suporte; a ordem é preenchida em modo FIFO quando um swap cruza o tick, e um keeper off-chain (
limit_order_admin) pode liquidar o resultado preenchido sem que o proprietário esteja online. Sete novos métodos no SDK (openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,closeLimitOrder,closeAllLimitOrder,settleAllLimitOrder) e três novos endpoints na API temporária sob/limit-order/(ordens ativas, histórico por usuário, log de eventos por PDA) cobrem o fluxo completo. - Taxa unilateral (
CollectFeeOn) permite que um pool colete taxas de swap do lado de entrada (legado, modo0), sempre detoken_0(modo1), ou sempre detoken_1(modo2). Útil quando um dos lados do par é o token de contabilidade canônico. - Taxa dinâmica permite que um pool opte por um adicional de volatilidade que sobe com o movimento rápido de ticks e decai ao longo do tempo, calibrado por um
DynamicFeeConfigpor tier e umDynamicFeeInfopor pool. O novo endpoint/main/clmm-dynamic-configdisponibiliza a lista de tiers. - Uma nova instrução,
CreateCustomizablePool, expõe os três controles no momento da criação do pool. OCreatePoolclássico continua funcionando para pools com taxa padrão e sem limit orders. - Mudança crítica para indexadores: os contadores de volume por direção (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) e os contadores de taxas acumuladas (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) emPoolStateforam substituídos por padding para dar espaço afee_onedynamic_fee_info. Indexadores que leem esses campos diretamente devem migrar para o anel deObservationon-chain ou para a API.
Por que isso importa (para traders, LPs e integradores)
- Traders obtêm cotações mais precisas em pares de cauda longa e orientados a eventos: a taxa dinâmica permite que o pool absorva sobrepreços de volatilidade do taker sem que os LPs precisem ampliar ativamente os ranges, e as ladeiras de limit orders aprofundam a liquidez on-chain em preços específicos sem comprometer capital em todo o range.
- LPs ganham uma terceira estratégia ao lado de ranges concentrados e posições de range completo: posicionar ordens em preço exato, ser preenchido quando o preço chega, e liquidar para o token de cotação. Sem necessidade de rebalanceamento ativo para a parte preenchida.
- Integradores podem modelar pools de taxa dinâmica de forma determinística — o algoritmo e os parâmetros estão totalmente on-chain, os tiers de calibração são consultáveis, e o caminho do swap permanece com a mesma estrutura (apenas a taxa por etapa varia).
O que mudou no programa
Novas contas
DynamicFeeConfig— registro de calibração por tier (período de filtro, período de decaimento, fator de redução, controle de taxa dinâmica, acumulador máximo de volatilidade). Criado porCreateDynamicFeeConfig(admin), referenciado porCreateCustomizablePoolquando a taxa dinâmica está habilitada.LimitOrderState— conta por ordem (seeds do PDA:[owner, limit_order_nonce, order_nonce]) contendo o pool, o tick, o lado, o valor de entrada, a proporção não preenchida, a fase de cohort FIFO e snapshots de controle. O ciclo de vida é implícito (filled_amountvstotal_amount, mais a existência da conta):Open → Filled → Settled → Closed.LimitOrderNonce— contador monotonicamente crescente por (owner, nonce_index) que obtém as seeds do PDA de limit order. Ononce_index: u8permite que o mesmo proprietário particione ordens em até 256 fluxos de nonce independentes.
Reestruturação do PoolState
| Grupo de campos | Layout antigo | Novo layout |
|---|---|---|
| Contadores de volume por direção | swap_in_amount_token_0, swap_out_amount_token_0, swap_in_amount_token_1, swap_out_amount_token_1 | Incorporados em padding5: [u128; 4] |
| Contadores de taxas acumuladas | total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1 | Incorporados em padding6: [u64; 4] |
| Taxa unilateral | — | fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only) |
| Taxa dinâmica | — | dynamic_fee_info: DynamicFeeInfo (embutido) |
PoolState para o anel de Observation ou para a API. Os contadores desativados não são zerados nos pools existentes (eles retêm os últimos valores que tinham), portanto relê-los após a atualização retornará dados desatualizados.
Adições ao TickState (sem quebra de compatibilidade)
Quatro novos campos são adicionados ao final de TickState, substituindo parte do seu padding de cauda:
order_phase: u64— contador que diferencia cohorts de limit orders neste tick.orders_amount: u64— total de entrada comprometido por todas as ordens abertas neste tick (nem todas necessariamente totalmente não preenchidas).part_filled_orders_remaining: u64— entrada ainda não preenchida no cohort sendo consumido atualmente pelos swaps.unfilled_ratio_x64: u128— proporção Q64.64 usada para calcular a parcela de preenchimento de cada ordem.
Novas instruções
CreateDynamicFeeConfig(admin) — cria um tierDynamicFeeConfigcalibrado. Autoridade: mesmo multisig de tesouraria queCreateAmmConfig.UpdateDynamicFeeConfig(admin) — atualiza os parâmetros de um tier existente.CreateCustomizablePool— ponto de entrada para criação de pools que expõecollect_fee_on,enable_dynamic_feeedynamic_fee_config. Coexiste comCreatePool; recomendamosCreateCustomizablePoolpara qualquer novo pool que precise dos novos controles.OpenLimitOrder— abre uma limit order de tick único. IncrementaLimitOrderNonce, alocaLimitOrderStatee insere a ordem no cohort FIFO do tick.IncreaseLimitOrder/DecreaseLimitOrder— ajusta a porção não preenchida de uma ordem. Reverte em uma ordem totalmente preenchida comInvalidOrderPhase.SettleLimitOrder— transfere o resultado preenchido para a ATA do proprietário. O chamador pode ser o proprietário ou o keeperlimit_order_admindo pool.CloseLimitOrder— fecha uma ordem totalmente liquidada para recuperar o rent.
Mudanças de comportamento do SwapV2
O caminho do swap permanece com a mesma estrutura, mas três coisas ocorrem ao longo do processo:
- Taxa dinâmica (quando habilitada): o
DynamicFeeInfodo pool é atualizado a cada etapa (decaimento → acumulação → limite), e o adicional resultante é somado à taxa base dessa etapa. - Correspondência de limit orders (quando a etapa cruza um tick inicializado que possui ordens abertas): parte da entrada do swap é consumida em modo FIFO para preencher o cohort naquele tick, com
unfilled_ratio_x64atualizado atomicamente. - Roteamento de taxa unilateral (quando
fee_on != 0): a taxa é cobrada detoken_0outoken_1independentemente da direção do swap, em vez de sempre do lado de entrada.
Novos códigos de erro
O enumErrorCode foi renumerado nesta versão: cinco variantes legadas (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) foram removidas e onze novas variantes foram adicionadas ao final. Como o Anchor numera os erros por ordem do enum a partir de 6000, todo código de erro na posição dos removidos em diante foi deslocado — clientes que fixaram códigos numéricos em código precisam remapeá-los.
Os novos códigos são:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
O que mudou no SDK (@raydium-io/raydium-sdk-v2)
- Novos métodos em
raydium.clmm:createCustomizablePool,openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,settleAllLimitOrder,closeLimitOrder,closeAllLimitOrder. - Novos helpers REST em
raydium.api:getClmmDynamicConfigs,getClmmLimitOrderConfigs. - Novos tipos: enum
CollectFeeOn,DynamicFeeConfig,DynamicFeeInfo,LimitOrderState,LimitOrderConfig. - Reorganização interna:
utils/foi movido paralibraries/. O barrel do pacote permanece inalterado; apenas imports diretos sob@raydium-io/raydium-sdk-v2/utils/...precisam ser atualizados para…/libraries/....
products/clmm/code-demos.
O que mudou nas APIs
api-v3— dois novos endpoints sob/main/:GET /main/clmm-dynamic-config— lista de tiersDynamicFeeConfig.GET /main/clmm-limit-order-config— configuração de limit order por pool.
temp-api-v1— três novos endpoints sob/limit-order/:GET /limit-order/order/list?wallet=…— ordens atualmente abertas de uma carteira (abertas e parcialmente preenchidas, servidas do cache Redis do indexador; o mesmo payload cobre ambas as fases viatotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— histórico de limit orders de uma carteira. Filtros opcionais:poolId,mint1,mint2,hideCancel. Paginado por cursor vianextPageId/size(máx. 100).GET /limit-order/history/event/list-by-pda?pda=…— log de eventos por PDA (open/increase/decrease/settle/close) para um ou mais PDAs de limit order separados por vírgula. Paginado por cursor vianextPageId/size(máx. 100).
Superfície de autoridade
Olimit_order_admin é um keeper operacional off-chain, não um multisig. Ele só pode chamar SettleLimitOrder e CloseLimitOrder em ordens existentes, e o resultado de uma liquidação sempre vai para a ATA do proprietário. Ele não pode modificar campos do pool, abrir ou alterar ordens, nem assinar qualquer outra coisa. Consulte Chaves admin e multisig → CLMM.
Páginas atualizadas
products/clmm/overview— nova seção “O que há de novo” e ponteiros para próximos passos atualizados.products/clmm/accounts— três novas contas, reestruturação doPoolStatecom aviso de migração, adições aoTickState, novos helpers de PDA.products/clmm/instructions— sete novas instruções, adendo de comportamento doSwapV2, matriz de mudanças de estado atualizada.products/clmm/fees— seção de taxa unilateral, seção de taxa dinâmica com tabela de parâmetros.products/clmm/math— pseudocódigo de correspondência de limit orders, derivação de taxa dinâmica.products/clmm/code-demos— demo decreateCustomizablePool, guia completo de limit orders, novas armadilhas.algorithms/clmm-math— referência cruzada para correspondência de limit orders e taxa dinâmica no loop de swap multi-tick.sdk-api/typescript-sdk— seção de adições ao módulo CLMM, nota de migraçãoutils/→libraries/.api-reference/openapi/api-v3.yaml— dois novos endpoints com schemas de resposta.api-reference/openapi/temp-api-v1.yaml— três novos endpoints de limit order (/limit-order/order/list,/limit-order/history/order/list-by-user,/limit-order/history/event/list-by-pda) com seus schemas de requisição e resposta.api-reference/api-v3/overview— nota sobre os novos endpoints de configuração do CLMM.api-reference/temp-api-v1/overview— nota sobre os novos endpoints de ordens ativas, histórico por usuário e eventos por PDA.reference/error-codes— onze novos códigos de erro do CLMM (6040–6050) mais cinco códigos legados removidos; os códigos numéricos após os pontos de remoção foram deslocados.security/admin-and-multisig— nova linha de admin paraDynamicFeeConfige linha de keeper paralimit_order_admin, com explicação de autoridade limitada.
- Código-fonte de
raydium-clmm. - Código-fonte de
@raydium-io/raydium-sdk-v2. - Código-fonte de
api-v3etemp-api-v1.
2026-04-26 — Publicação inicial
Primeiro lançamento público do conjunto de documentação do Raydium. Verificado em relação a:- Implantações de programas ativos no Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- Documentação pública do Raydium e referências on-chain até abril de 2026.
Convenções da documentação
- Versionamento: esta documentação usa versionamento baseado em calendário (AAAA-MM-DD). Cada atualização cria uma nova entrada no topo do arquivo.
- Data de verificação: cada entrada registra quando o conteúdo foi confrontado pela última vez com o estado on-chain/API e o código-fonte do programa. Se não indicada, considere a data principal da entrada.
- Mudanças críticas: destacadas em um aviso em caixa nas páginas afetadas e sinalizadas na entrada abaixo.
- Cobertura: este changelog cobre o próprio conjunto de documentação. A linha do tempo histórica do protocolo está em
introduction/history-and-milestonese é a fonte de verdade para “quando X aconteceu no Raydium”.
Correções
Se você encontrar um erro nesta documentação, abra uma issue ou pull request no repositório da documentação. As correções são registradas neste changelog.Referências rápidas
introduction/history-and-milestones— linha do tempo do protocolo.security/audits— histórico de auditorias.ray/protocol-fees— divisão de taxas do protocolo.reference/program-addresses— fonte de verdade dos IDs de programa.


