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 nessas páginas desde o lançamento do projeto. Para o cronograma histórico do próprio protocolo, veja
introduction/history-and-milestones. Cada entrada aqui contém uma data, uma lista de capítulos afetados, o motivo da alteração e uma data de verificação que indica quando o estado da chain e o código-fonte do programa foram verificados pela última vez em relação ao conteúdo escrito.2026-05-18 — CLMM: limit orders, single-sided fee, dynamic fee
O próximo lançamento do CLMM adiciona três funcionalidades no nível do pool. Elas são opcionais no momento da criação do pool e compatíveis com versões anteriores com pools e posições existentes.TL;DR para integradores
- Limit orders agora são primitivos CLMM de primeira classe. LPs podem abrir uma ordem de tick único em um pool que as suporte; a ordem é preenchida FIFO quando um swap cruza o tick, e um keeper off-chain (
limit_order_admin) pode liquidar o resultado preenchido sem o proprietário estar online. Sete novos métodos de SDK (openLimitOrder,increaseLimitOrder,decreaseLimitOrder,settleLimitOrder,closeLimitOrder,closeAllLimitOrder,settleAllLimitOrder) e três novos endpoints da Temp API sob/limit-order/(ordens ativas, histórico por usuário, log de eventos por PDA) cobrem o fluxo completo. - Single-sided fee (
CollectFeeOn) permite que um pool colha taxas de swap do lado de entrada (legado, modo0), sempre detoken_0(modo1), ou sempre detoken_1(modo2). Útil quando um lado do par é o token contábil canônico. - Dynamic fee permite que um pool opte por uma sobretaxa de rastreamento de volatilidade que aumenta com o movimento rápido de tick e decai ao longo do tempo, calibrada por um
DynamicFeeConfigpor tier e umDynamicFeeInfopor pool. O novo endpoint/main/clmm-dynamic-configapresenta a lista de tiers. - Uma nova instrução,
CreateCustomizablePool, expõe todos os três controles no momento da criação do pool. O clássicoCreatePoolcontinua funcionando para pools sem limite de ordem e com taxa padrão. - Breaking change no indexador: os contadores de volume por direção (
swap_in_amount_token_{0,1},swap_out_amount_token_{0,1}) e os contadores de taxa vitalícia (total_fees_token_{0,1},total_fees_claimed_token_{0,1}) emPoolStateforam retirados para o preenchimento a fim de abrir espaço parafee_onedynamic_fee_info. Indexadores que leem esses campos diretamente devem migrar para o ringObservationon-chain ou para a API.
Por que isso importa (para traders, LPs e integradores)
- Traders obtêm cotações mais apertadas em pares de cauda longa e orientados por eventos: dynamic fee permite que o pool absorva sobrecargas de volatilidade do taker sem que LPs tenham que ampliar ativamente intervalos, e escadas de limite de ordem aprofundam a liquidez on-chain a preços específicos sem comprometer capital em toda a amplitude.
- LPs obtêm uma terceira estratégia além de intervalos concentrados e posições de amplitude total: estacionem ordens a preço exato, sejam preenchidas quando o preço visita, liquidem no token de cotação. Nenhum rebalanceamento ativo necessário para a porção preenchida.
- Integradores podem modelar pools de dynamic fee determinísticamente — o algoritmo e os parâmetros estão totalmente on-chain, os tiers de calibração são consultáveis e o caminho de swap é inalterado em forma (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 dynamic fee está habilitado.LimitOrderState— conta por ordem (seeds de PDA:[owner, limit_order_nonce, order_nonce]) contendo o pool, tick, lado, quantidade de entrada, razão de não preenchimento, fase de coorte FIFO e snapshots de escrituração. O ciclo de vida é implícito (filled_amountvstotal_amount, mais existência de conta):Open → Filled → Settled → Closed.LimitOrderNonce— contador monotonicamente crescente por-(owner, nonce_index) que obtém as seeds de PDA limit-order. Ononce_index: u8permite que o mesmo proprietário particione ordens em até 256 fluxos de nonce independentes.
Reformulação de PoolState
| Grupo de campo | 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 taxa vitalícia | total_fees_token_0, total_fees_claimed_token_0, total_fees_token_1, total_fees_claimed_token_1 | Incorporados em padding6: [u64; 4] |
| Single-sided fee | — | fee_on: u8 (0 = FromInput, 1 = Token0Only, 2 = Token1Only) |
| Dynamic fee | — | dynamic_fee_info: DynamicFeeInfo (incorporado) |
PoolState para o ring Observation ou para a API. Os contadores retirados não são zerados em pools existentes (eles contêm o que quer que tenham carregado por último), portanto, relê-los após a atualização retornará dados obsoletos.
Adições a TickState (nenhuma breaking change)
Quatro novos campos são adicionados no final de TickState, substituindo um pouco de seu preenchimento final:
order_phase: u64— contador que desambigua coortes limit-order neste tick.orders_amount: u64— total de entrada comprometido por todas as ordens abertas neste tick (nem todas estão completamente não preenchidas).part_filled_orders_remaining: u64— entrada ainda não preenchida na coorte sendo consumida atualmente por swaps.unfilled_ratio_x64: u128— razão Q64.64 usada para calcular a parcela de preenchimento de cada ordem.
Novas instruções
CreateDynamicFeeConfig(admin) — criar um tierDynamicFeeConfigcalibrado. Autoridade: mesma multisig de tesouro queCreateAmmConfig.UpdateDynamicFeeConfig(admin) — atualizar os parâmetros de um tier existente.CreateCustomizablePool— ponto de entrada de criação de pool que expõecollect_fee_on,enable_dynamic_feeedynamic_fee_config. Coexiste comCreatePool; recomendamosCreateCustomizablePoolpara qualquer novo pool que precise dos novos controles.OpenLimitOrder— abrir uma ordem limit de tick único. IncrementaLimitOrderNonce, alocaLimitOrderState, encaixa a ordem na coorte FIFO do tick.IncreaseLimitOrder/DecreaseLimitOrder— ajustar a porção não preenchida de uma ordem. Reverte em uma ordem completamente preenchida comInvalidOrderPhase.SettleLimitOrder— varrer saída preenchida para o ATA do proprietário. O chamador pode ser o proprietário ou o keeperlimit_order_admindo pool.CloseLimitOrder— fechar uma ordem completamente liquidada para recuperar aluguel.
Mudanças de comportamento de SwapV2
O caminho de swap em si é inalterado em forma, mas três coisas agora acontecem ao longo do caminho:
- Dynamic fee (quando habilitado): o
DynamicFeeInfodo pool é atualizado a cada etapa (decay → accumulate → cap), e a sobretaxa resultante é adicionada no topo da taxa base para essa etapa. - Limit-order matching (quando a etapa cruza um tick inicializado que tem ordens abertas): parte da entrada de swap é consumida FIFO para preencher a coorte do tick, com
unfilled_ratio_x64atualizado atomicamente. - Single-sided fee routing (quando
fee_on != 0): a taxa é retirada detoken_0outoken_1independentemente da direção do swap, em vez de sempre do lado de entrada.
Novos códigos de erro
A enumeraçãoErrorCode foi renumerada neste lançamento: cinco variantes legadas (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) foram removidas e onze novas variantes foram anexadas. Como o Anchor numera erros por ordem de enum a partir de 6000, todo código de erro nas posições removidas ou depois delas foi alterado — clientes que codificaram numericamente códigos precisam remapear.
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 auxiliares REST em
raydium.api:getClmmDynamicConfigs,getClmmLimitOrderConfigs. - Novos tipos: enumeração
CollectFeeOn,DynamicFeeConfig,DynamicFeeInfo,LimitOrderState,LimitOrderConfig. - Reorganização interna:
utils/movido paralibraries/. O barrel do pacote é inalterado; apenas importações profundas sob@raydium-io/raydium-sdk-v2/utils/...precisam ser atualizadas 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 limit-order por pool.
temp-api-v1— três novos endpoints sob/limit-order/:GET /limit-order/order/list?wallet=…— ordens atualmente estacionadas de uma carteira (abertas e parcialmente preenchidas, servidas a partir do cache Redis do indexador; o mesmo payload cobre ambas as fases viatotalAmount/filledAmount/pendingSettle).GET /limit-order/history/order/list-by-user?wallet=…— ordens limit históricas de uma carteira. Filtros opcionais:poolId,mint1,mint2,hideCancel. Paginação 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 limit-order separados por vírgula. Paginação por cursor vianextPageId/size(máx 100).
Superfície de autoridade
Olimit_order_admin é um keeper operacional off-chain, não uma multisig. Ele pode apenas chamar SettleLimitOrder e CloseLimitOrder em ordens existentes, e o resultado de um settlement sempre chega ao ATA do proprietário. Ele não pode mutar campos de pool, abrir ou modificar ordens, ou assinar qualquer outra coisa. Veja Admin keys and multisig → CLMM.
Páginas atualizadas
products/clmm/overview— nova seção “What’s new” e ponteiros de próximas etapas atualizados.products/clmm/accounts— três novas contas, reformulação dePoolStatecom aviso de migração, adições deTickState, novos auxiliares de PDA.products/clmm/instructions— sete novas instruções, adendum de comportamento deSwapV2, matriz de mudança de estado atualizada.products/clmm/fees— seção single-sided fee, seção dynamic-fee com tabela de parâmetros.products/clmm/math— pseudo-código limit-order matching, derivação dynamic-fee.products/clmm/code-demos— demonstração decreateCustomizablePool, passo a passo completo limit-order, novas armadilhas.algorithms/clmm-math— referência cruzada para limit-order matching e dynamic fee no loop de swap multi-tick.sdk-api/typescript-sdk— seção de adições de módulo CLMM, nota de migraçãoutils/→libraries/.api-reference/openapi/api-v3.yaml— dois novos endpoints com esquemas de resposta.api-reference/openapi/temp-api-v1.yaml— três novos endpoints limit-order (/limit-order/order/list,/limit-order/history/order/list-by-user,/limit-order/history/event/list-by-pda) com seus esquemas de solicitação e resposta.api-reference/api-v3/overview— nota sobre os novos endpoints CLMM config.api-reference/temp-api-v1/overview— nota sobre os novos endpoints de ordens ativas, histórico por usuário e evento por PDA.reference/error-codes— onze novos códigos de erro CLMM (6040–6050) mais cinco códigos legados removidos; códigos numéricos após os pontos de remoção foram alterados.security/admin-and-multisig— nova linha adminDynamicFeeConfige linha keeperlimit_order_admin, com explicador 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 contra:- Implantações de programas ao vivo na Solana mainnet-beta.
@raydium-io/raydium-sdk-v2@0.2.42-alpha.- Referências de docs e on-chain públicas do Raydium até abril de 2026.
Convenções de documentação
- Versionamento: esta documentação usa versionamento baseado em calendário (YYYY-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 verificado pela última vez contra o estado on-chain / API e o código-fonte do programa. Se não estiver indicado, assuma a data principal da entrada.
- Breaking changes: destacadas em um aviso em caixa nas páginas afetadas e marcadas na entrada abaixo.
- Cobertura: este changelog cobre o próprio conjunto de documentação. O cronograma histórico do protocolo fica 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 um issue ou pull request no repositório de documentação. As correções são registradas neste changelog.Ponteiros
introduction/history-and-milestones— o cronograma do protocolo.security/audits— histórico de auditorias.ray/protocol-fees— divisões de taxa de protocolo.reference/program-addresses— fonte de verdade do ID do programa.


