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 →

O único nível publicado

Diferentemente do CPMM e CLMM, o AMM v4 não possui uma conta AmmConfig. As taxas são armazenadas diretamente na struct AmmInfo.fees de cada pool e são fixas na criação do pool. Os padrões que cobrem essencialmente todos os pools AMM v4 ativos: Note que pnl_numerator / pnl_denominator é uma fração da taxa de swap, não do volume de negociação — uma leitura comum incorreta. A participação do LP é o complemento (88% da taxa = 0,22% do volume) e é implícita; não há um numerador separado de “participação do LP”. Um pequeno número de pools iniciais foi criado com numeradores diferentes; sempre leia AmmInfo.fees antes de citar. Não há taxa de fundo e taxa de criador: estas são invenções do CPMM/CLMM que não existiam no modelo de taxa original do AMM v4.

Como a divisão é calculada

Em cada swap, o pool cobra a taxa bruta de negociação do valor de entrada e depois aloca:
  • lp_portion permanece no vault e contribui para o próximo k. Os LPs a capturam resgatando tokens LP posteriormente.
  • pnl_portion incrementa AmmInfo.state_data.need_take_pnl_coin ou need_take_pnl_pc dependendo de qual lado é a entrada do swap.
O mesmo truque de preservação de invariante do CPMM: o valor de PnL fica fisicamente no vault, mas é subtraído das reservas usadas na curva, então TakePnl move tokens sem deslocar o preço.

PnL do OpenBook (histórico)

Removido. A integração do OpenBook foi removida do programa, portanto o segundo fluxo de PnL descrito nesta seção não é mais gerado. Os contadores total_pnl_{coin,pc} agora são campos descontinuados — carregam valores históricos congelados e nunca são atualizados. O caminho de taxa de protocolo de 0,03% (acima) não é afetado e ainda está ativo.
Historicamente, o AMM v4 tinha um segundo fluxo de receita semelhante a taxa: quando suas ordens limitadas no OpenBook eram preenchidas, o pool podia estar no lado tomador do preenchimento e ganhar ou pagar o spread maker/taker do mercado. Esses eventos de PnL eram liquidados nos vaults do pool durante MonitorStep e o programa os creditava em state_data.total_pnl_{coin,pc} como contadores informativos.
  • Quando a grade postada do pool era calibrada corretamente em torno do preço da curva, os preenchimentos do OpenBook tendiam a ser positivos em taxa para o pool — o AMM estava efetivamente fazendo market-making no OpenBook e ganhando rebates de maker.
  • Quando o OpenBook pausava ou a fila de eventos se enchia, o pool podia ficar com ordens obsoletas que eram preenchidas a preços desfavoráveis, produzindo PnL negativo. Esse acoplamento operacional foi uma das motivações para se afastar do design híbrido.
Esse PnL do OpenBook não era o mesmo que a taxa de protocolo de 0,03%. O PnL do OpenBook inflava as reservas do pool diretamente (beneficiando LPs + protocolo proporcionalmente à divisão de taxa), enquanto a taxa de protocolo de 0,03% era marcada especificamente para coleta pelo admin. Com o lado do OpenBook desativado, a única acumulação de taxa hoje é a de 0,25% em swaps AMM e sua divisão de 22/3.

Coleta

O admin (multisig Raydium) chama WithdrawPnl para coletar need_take_pnl_* nas contas “proprietário de PnL” no nível do pool configuradas no AmmConfig do programa (um config diferente, com escopo de programa — não o AmmConfig estilo CPMM por pool). A coleta:
  1. Transfere need_take_pnl_coin / need_take_pnl_pc dos vaults do pool para o destino de PnL.
  2. Zera os contadores.
Não há mais uma etapa de liquidação do OpenBook. Se o saldo do vault for insuficiente para cobrir o PnL acumulado, a instrução agora retorna TakePnlError diretamente. A operação não move a curva — os LPs não devem ver nenhuma mudança de preço em uma chamada WithdrawPnl. Note que o layout da conta WithdrawPnl mudou na atualização de 2026-07 (veja instruções).

Resgate de taxa de LP

Não há instrução dedicada “coletar taxas de LP”. As taxas de LP acumulam nos vaults e inflam k ao longo do tempo; os LPs as realizam queimando tokens LP via Withdraw. O valor de um token LP cresce monotonicamente conforme (coin_reserve_effective, pc_reserve_effective) crescem.

Visualização: para onde vai 1.000 USDC de volume

Em um swap pesado em USDC de $1.000 contra um pool com parâmetros padrão:
Compare com CPMM AmmConfig[0] (nível de 0,25%, sem taxa de criador): LP recebe $2,10, protocolo $0,30, fundo $0,10. O CPMM introduz a linha de fundo ao cortá-la do que seria a participação do LP no nível equivalente do AMM v4.

Tabela de comparação

Matriz completa em reference/fee-comparison.

Notas para integradores

  • Cotação. Busque AmmInfo via SDK ou api-v3.raydium.io/pools/info/ids. As reservas agora são apenas vault, então você pode cotar diretamente contra os saldos do vault — apenas lembre-se de subtrair need_take_pnl_* (PnL acumulado é mantido no vault mas excluído da curva).
  • Parâmetros de taxa obsoletos. Em princípio SetParams poderia mudar swap_fee_numerator, mas na prática o multisig Raydium não mudou os padrões para nenhum pool ativo. Ainda assim, sempre leia do estado on-chain em vez de codificar.
  • Sem recompensas. O AMM v4 não suporta emissões de recompensas no pool. Farms do ecossistema legado (Farm v3 / v5 / v6) são o equivalente da camada de staking — veja products/farm-staking.

Próximos passos

Fontes: