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

# Stable AMM 费用

> 与 AMM v4 相同：0.25% 交易费，0.22% LP / 0.03% 协议分成。无基金费，无创建者费。

<Info>
  **本页内容由 AI 自动翻译，所有内容以英文版本为准。**

  [查看英文版 →](/products/stable/fees)
</Info>

## 费用模型

Stable AMM 使用**与 AMM v4 相同的费用结构**。每个池只有一个费用等级（在初始化时设置）；池无法重新配置为更高的等级。

| 字段                                                  | 默认值           | 含义                                              |
| --------------------------------------------------- | ------------- | ----------------------------------------------- |
| `swap_fee_numerator / swap_fee_denominator`         | `25 / 10_000` | **总交易费：0.25%** 的输入量。                            |
| `trade_fee_numerator / trade_fee_denominator`       | `25 / 10_000` | 相同的 0.25%；旧版字段，曾用于 OpenBook 订单定价，为保持布局兼容性而保留。   |
| `pnl_numerator / pnl_denominator`                   | `12 / 100`    | **协议的费用分成：12%** — 即 `0.25% × 12% = 0.03%` 的交易量。 |
| `min_separate_numerator / min_separate_denominator` | `4 / 10_000`  | 内部舍入下限。                                         |

**没有基金费**和**没有创建者费** — 这些是 AMM v4 之后的发明（CPMM/CLMM）。Stable AMM 早于这一惯例。

## 分成如何计算

每次交换时：

```
gross_fee = ceil(amount_in * (swap_fee_numerator / swap_fee_denominator))    // 例如，amount_in 的 0.25%
pnl_portion = gross_fee * (pnl_numerator / pnl_denominator)                  // gross_fee 的 12%
lp_portion = gross_fee − pnl_portion                                          // gross_fee 的 88%
```

* **`lp_portion`** 留在金库中，增加 `k`，并在赎回时使 LP 受益。
* **`pnl_portion`** 增加 `AmmInfo.out_put.need_take_pnl_coin` 或 `need_take_pnl_pc`（取决于输入代币），并由 `WithdrawPnl` 清扫。

与 CPMM 相同的**不变量保留技巧**：PnL 金额物理上位于金库中，但从曲线数学中使用的"有效储备"中减去，因此移除它不会改变价格。

## OpenBook PnL（已停用）

在其早期，该池还在 OpenBook 上发布限价订单；当这些订单成交时，它赚取或损失做市商/接单者价差，在 `MonitorStep` 期间结算，并在 `out_put.total_pnl_{coin,pc}` 计数器中跟踪结果。**该路径已休眠多年** — 该池没有未平仓订单，因此唯一的费用累积是上述 0.03% 的协议分成。`total_pnl_*` 计数器仍在布局中，但不再增加。[2026-06-22 升级](/zh/reference/changelog)移除了剩余的 OpenBook 代码（包括 `MonitorStep`）。CPMM 成为新池的默认选择，部分原因是这种与 OpenBook 的耦合；Stable AMM 与订单簿无关。

## 收集

Raydium 多签（或控制 `amm_admin` 的任何人）调用 `WithdrawPnl` 来清扫：

1. 将 `need_take_pnl_coin` 和 `need_take_pnl_pc` 从金库转移到管理员指定的账户。
2. 将计数器清零。

该操作不会移动曲线。LP 看不到价格变化。

<Warning>
  `WithdrawPnl` 在 2026-06-22 升级中进行了更改：它现在使用**固定的 10 账户、仅限管理员的布局，没有兼容性路径**（旧布局失败并出现 `InvalidTokenCoin` 等错误），当池的可用资金不足以覆盖 PnL 时，它直接返回 `TakePnlError` 而不是禁用池。请参阅 [`products/stable/instructions`](/zh/products/stable/instructions#withdrawpnl)。
</Warning>

## LP 费用赎回

没有专门的"收集费用"指令。LP 费用在金库中累积，增加储备。LP 通过 `Withdraw` 销毁 LP 来实现这些费用。LP 代币的价值随着储备增长而增长。

## 可视化：\$1,000 交易量的去向

在针对默认参数 Stable 池的 USDC 为主的 `Swap`（\$1,000）上：

```
总交易费 (0.25%):     $2.50
  LP 分成   (0.22%):         $2.20  → 留在池中，提高 k
  PnL 分成  (0.03%):         $0.30  → need_take_pnl_pc，由 WithdrawPnl 清扫
用户收到 (减去曲线):  $997.50
```

与 AMM v4（相同）和 CPMM（0.25% 等级，无创建者费）比较：CPMM 给 LP \$2.10，协议 \$0.30，基金 \$0.10。

## 对比表

|     | Stable AMM | AMM v4 | CPMM `index=0` |
| --- | ---------- | ------ | -------------- |
| 交易费 | 0.25%      | 0.25%  | 0.25%          |
| LP  | 0.22%      | 0.22%  | 0.21%          |
| 协议  | 0.03%      | 0.03%  | 0.03%          |
| 基金  | 无          | 无      | 0.01%          |
| 创建者 | 无          | 无      | 默认为 0          |

完整矩阵：[`reference/fee-comparison`](/zh/reference/fee-comparison)。

## 集成商注意事项

* **报价：** 始终从链上读取 `AmmInfo`；不要硬编码费用。由于 `SetParams` 现已移除，现有池上的费用参数实际上是固定的。
* **曲线与费用：** 0.25% 的费用与曲线是公式（AMM v4 中的 x·y=k）还是查找表（Stable）无关。两者都对输入金额应用相同的 0.25%。
* **无奖励：** Stable 池不支持池上奖励发放。生态系统农场（Farm v3/v5/v6）在其他地方处理质押。

## 后续步骤

* [`products/stable/math`](/zh/products/stable/math) — 交换数学中的费用应用。
* [`products/stable/instructions`](/zh/products/stable/instructions) — `WithdrawPnl` 账户列表。
* [`products/amm-v4/fees`](/zh/products/amm-v4/fees) — OpenBook 路径的更深入费用推导。
* [`reference/fee-comparison`](/zh/reference/fee-comparison) — 所有产品的并排比较。

来源：

* `raydium-stable/program/src/state.rs`（`Fees` 结构体）
* 实时主网池上的链上 `AmmInfo.fees` 字段
