本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
Stable AMM 是独立的程序;其池端账户结构类似于 AMM v4(AmmInfo、金库、权限),并额外包含一个存储查找表的
ModelDataInfo 账户。本页涵盖两者。清单
纯 AMM。 Stable AMM 在自己的金库中持有所有流动性,不依赖 OpenBook。它在早期生命周期中曾有 OpenBook 做市路径,但该路径已多年处于休眠状态,2026-06-22 升级移除了遗留代码。因此下面的
serum_* 市场账户和 amm_open_orders 是遗留的:它们可能仍会出现在旧布局交易中以保持向后兼容性,但程序不验证或读取它们,新布局指令完全省略它们。AmmInfo
根状态账户。布局几乎与 AMM v4 相同——池参数、小数位、费用、金库/铸币引用——加上一个新增项:指向查找表的 model_data_key 字段。
model_data_key— 查找表的地址。必须传递给每条指令。fees— 与 AMM v4 相同的结构。默认为 0.25% 交易费,0.22% LP / 0.03% 协议分割。coin_vault、pc_vault— 池的金库。status— 位掩码,控制 swap/deposit/withdraw/crank 是否启用。out_put.need_take_pnl_*— 由WithdrawPnl清扫。
ModelDataInfo
查找表。价格/数量点的大型稀疏数组。
InitModelData(创建账户)和 UpdateModelData(填充元素,设置 valid_data_count)——在 2026-06-22 升级中被移除。现有池上的表现在是固定的。在运行时,剩余的可调用指令仍然使用它们:
- Swap / deposit / withdraw 调用查找函数,在
elements[0..valid_data_count]内进行二分搜索和插值。
DataElement
表中的原子条目。必须排序(x 升序,y 降序,price 升序)以使二分搜索正常工作。
权限和金库
与 AMM v4 相同:amm_authority是使用种子["amm authority"]派生的单个程序范围 PDA。它拥有所有池金库并签署它们的操作。- 金库是 SPL Token 账户,其所有者是
amm_authority,而不是 ATA。
状态位掩码
与 AMM v4 相同。控制 swap/deposit/withdraw/crank 是否启用。费用和 PnL 跟踪
out_put 结构跟踪:
need_take_pnl_coin、need_take_pnl_pc— 已累积但尚未清扫的协议费。WithdrawPnl将这些移出。swap_coin_in_amount、swap_pc_in_amount等 — 分析计数器。
账户大小
ModelDataInfo 很大(约 1.2 MB,因为 50,000 个元素 × 每个元素 24 字节)。这就是为什么创建 Stable 池需要显式租金和账户预分配。Raydium SDK 和工具透明地处理这个问题;集成方很少需要手动分配。
从头派生账户
与 AMM v4 一样,Stable AMM 使用有种子的密钥(不是纯 PDA)。规范池身份通过以下方式派生:在哪里阅读什么
- 指令账户列表:
products/stable/instructions。 - 插值如何使用表:
products/stable/math。 - 费用结构和 WithdrawPnl:
products/stable/fees。 - 2026-06-22 OpenBook 解耦:
reference/changelog。

