> ## 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.

# Taxas do Stable AMM

> Idêntico ao AMM v4: taxa de negociação de 0,25%, divisão LP/protocolo de 0,22%/0,03%. Sem taxa de fundo, sem taxa de criador.

<Info>
  **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**

  [Ver versão em inglês →](/products/stable/fees)
</Info>

## 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.

| Campo                                               | Padrão        | Significado                                                                                                                  |
| --------------------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `swap_fee_numerator / swap_fee_denominator`         | `25 / 10_000` | **Taxa bruta de negociação: 0,25%** do volume de entrada.                                                                    |
| `trade_fee_numerator / trade_fee_denominator`       | `25 / 10_000` | Mesmos 0,25%; campo legado anteriormente usado para precificação de ordens OpenBook, mantido para compatibilidade de layout. |
| `pnl_numerator / pnl_denominator`                   | `12 / 100`    | **Participação do protocolo na taxa: 12%** — ou seja, `0,25% × 12% = 0,03%` do volume.                                       |
| `min_separate_numerator / min_separate_denominator` | `4 / 10_000`  | Piso 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](/pt/reference/changelog) 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.

<Warning>
  `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`](/pt/products/stable/instructions#withdrawpnl).
</Warning>

## 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 AMM | AMM v4 | CPMM `index=0` |
| ------------------ | ---------- | ------ | -------------- |
| Taxa de negociação | 0,25%      | 0,25%  | 0,25%          |
| LP                 | 0,22%      | 0,22%  | 0,21%          |
| Protocolo          | 0,03%      | 0,03%  | 0,03%          |
| Fundo              | Nenhum     | Nenhum | 0,01%          |
| Criador            | Nenhum     | Nenhum | 0 por padrão   |

Matriz completa: [`reference/fee-comparison`](/pt/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

* [`products/stable/math`](/pt/products/stable/math) — aplicação de taxa na matemática de swap.
* [`products/stable/instructions`](/pt/products/stable/instructions) — lista de contas `WithdrawPnl`.
* [`products/amm-v4/fees`](/pt/products/amm-v4/fees) — derivação de taxa mais profunda para caminho OpenBook.
* [`reference/fee-comparison`](/pt/reference/fee-comparison) — lado a lado todos os produtos.

Fontes:

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