本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
Stable AMM 是独立的程序;其池端账户结构类似于 AMM v4(AmmInfo、金库、权限),并额外包含一个存储查找表的
ModelDataInfo 账户。本页涵盖两者。清单
纯 AMM。 Stable AMM 在自己的金库中持有所有流动性,不依赖 OpenBook。它在早期生命周期中曾有 OpenBook 做市路径,但该路径已多年处于休眠状态,2026-06-22 升级移除了遗留代码。因此下面的
serum_* 市场账户和 amm_open_orders 是遗留的:它们可能仍会出现在旧布局交易中以保持向后兼容性,但程序不验证或读取它们,新布局指令完全省略它们。| 类别 | 账户 | 所有者 | 角色 |
|---|---|---|---|
| 池 | AmmInfo | Stable 程序 | 池状态,对金库和模型数据账户的引用。 |
| 池 | amm_authority | Stable 程序 | 程序拥有的 PDA,签署金库操作。在所有 Stable AMM 池中共享。 |
| 池 | amm_target_orders | Stable 程序 | 池端网格账户(保留在布局中;不再驱动 OpenBook 订单)。 |
| 池 | pool_coin_token_account | SPL Token | 池的币端金库。 |
| 池 | pool_pc_token_account | SPL Token | 池的 pc 端金库。 |
| 池 | lp_mint | SPL Token | 可互换的 LP 铸币。 |
| 模型 | model_data_account | Stable 程序 | 查找表:50,000 × DataElement。 |
| 遗留 | amm_open_orders | OpenBook | 池的旧 OpenBook OpenOrders 账户。未使用。 |
| 遗留 | serum_market | OpenBook | OpenBook 市场。未使用。 |
| 遗留 | serum_bids、serum_asks | OpenBook | 买价/卖价队列。未使用。 |
| 遗留 | serum_event_queue | OpenBook | 事件队列。未使用。 |
| 遗留 | serum_coin_vault、serum_pc_vault | SPL Token | OpenBook 市场级金库。未使用。 |
| 遗留 | serum_vault_signer | OpenBook | 市场级金库签署者。未使用。 |
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。

