Saltar para o conteúdo principal
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →

O modelo de taxas

O Stable AMM usa a mesma estrutura de taxas do AMM v4. Existe apenas um nível de taxa por pool (definido na inicialização); pools não podem ser reconfigurados para níveis mais altos.
CampoPadrãoSignificado
swap_fee_numerator / swap_fee_denominator25 / 10_000Taxa bruta de negociação: 0,25% do volume de entrada.
trade_fee_numerator / trade_fee_denominator25 / 10_000Mesmos 0,25%; campo legado anteriormente usado para precificação de ordens OpenBook, mantido para compatibilidade de layout.
pnl_numerator / pnl_denominator12 / 100Participação do protocolo na taxa: 12% — ou seja, 0,25% × 12% = 0,03% do volume.
min_separate_numerator / min_separate_denominator4 / 10_000Piso de arredondamento interno.
Não há taxa de fundo e taxa de criador — estas são invenções pós-AMM v4 (CPMM/CLMM). O Stable AMM é anterior a essa convenção.

Como a divisão é calculada

Em cada swap:
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // ex: 0,25% de amount_in
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // 12% de gross_fee
lp_portion = gross_fee − pnl_portion                                          // 88% de gross_fee
  • lp_portion permanece no vault, infla k e beneficia LPs no resgate.
  • pnl_portion incrementa AmmInfo.out_put.need_take_pnl_coin ou need_take_pnl_pc (dependendo do token de entrada) e é coletada por WithdrawPnl.
Mesmo truque de preservação de invariante do CPMM: o valor de PnL fica fisicamente no vault, mas é subtraído das “reservas efetivas” usadas na matemática da curva, então removê-lo não desloca o preço.

PnL do OpenBook (descontinuado)

No início de sua vida, o pool também postava ordens limitadas no OpenBook; quando preenchidas, ganhava ou perdia o spread de market-maker/taker, liquidado durante MonitorStep, e rastreava o resultado nos contadores out_put.total_pnl_{coin,pc}. Esse caminho está inativo há anos — o pool não mantém ordens abertas, então a única acumulação de taxa é a participação de protocolo de 0,03% descrita acima. Os contadores total_pnl_* permanecem no layout, mas não incrementam mais. A atualização de 2026-06-22 removeu o código OpenBook restante (incluindo MonitorStep). O CPMM tornou-se o padrão para novos pools em parte por causa desse acoplamento anterior ao OpenBook; o Stable AMM é independente de livro de ordens.

Coleta

O multisig Raydium (ou quem controla amm_admin) chama WithdrawPnl para coletar:
  1. Transfere need_take_pnl_coin e need_take_pnl_pc dos vaults para contas designadas pelo admin.
  2. Zera os contadores.
A operação não move a curva. LPs não veem mudança de preço.
WithdrawPnl foi alterado na atualização de 2026-06-22: agora usa um layout fixo de 10 contas, apenas para admin, sem caminho de compatibilidade (layouts antigos falham com erros como InvalidTokenCoin), e quando os fundos disponíveis do pool são insuficientes para cobrir o PnL, retorna TakePnlError diretamente em vez de desabilitar o pool. Veja products/stable/instructions.

Resgate de taxa de LP

Nenhuma instrução dedicada “coletar taxas”. As taxas de LP acumulam em vaults, inflando as reservas. LPs as realizam queimando LP via Withdraw. O valor de um token LP cresce conforme as reservas crescem.

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

Em um Swap pesado em USDC de $1.000 contra um pool Stable com parâmetros padrão:
Taxa bruta de negociação (0,25%):     $2,50
  Participação de LP   (0,22%):         $2,20  → permanece no pool, aumenta k
  Participação de PnL  (0,03%):         $0,30  → need_take_pnl_pc, coletado por WithdrawPnl
Usuário recebe (menos curva):  $997,50
Compare com AMM v4 (idêntico) e CPMM (nível 0,25%, sem taxa de criador): CPMM dá aos LPs $2,10, protocolo $0,30, fundo $0,10.

Tabela de comparação

Stable AMMAMM v4CPMM index=0
Taxa de negociação0,25%0,25%0,25%
LP0,22%0,22%0,21%
Protocolo0,03%0,03%0,03%
FundoNenhumNenhum0,01%
CriadorNenhumNenhum0 por padrão
Matriz completa: reference/fee-comparison.

Notas para integradores

  • Cotação: Sempre leia AmmInfo da chain; não codifique as taxas. Com SetParams agora removido, os parâmetros de taxa em pools existentes são efetivamente fixos.
  • Curva vs. taxas: A taxa de 0,25% é independente de se a curva é uma fórmula (x·y=k no AMM v4) ou uma tabela de consulta (Stable). Ambas aplicam os mesmos 0,25% ao valor de entrada.
  • Sem recompensas: Pools Stable não suportam emissões de recompensas no pool. Farms do ecossistema (Farm v3/v5/v6) lidam com staking em outro lugar.

Próximos passos

Fontes:
  • raydium-stable/program/src/state.rs (struct Fees)
  • Campos AmmInfo.fees na chain em pools mainnet ao vivo