跳转到主要内容

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.

本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →

一句话总结

稳定 AMM 是 Raydium AMM 的一种变体,用预加载的查找表替代曲线公式。与其他 AMM 不同,该池不使用 x·y=k,而是存储一个稀疏的 (x, y, price) 数据点数组,通过二分查找加线性插值报价。这种设计对稳定币对和其他价格关系已知的资产特别有效:1:1 挂钩代币之间的交易滑点接近零。与 AMM v4 类似,稳定 AMM 也连接 OpenBook 市场并在其上挂单。当前流动性较少;大多数集成商通过 AMM 路由程序 访问稳定池。

为什么用查找表而不是 xy=k

恒定乘积 AMM 在价格浮动范围紧凑的交易对上产生较高滑点。USDC-USDT 交换本应几乎不收费,但在恒定乘积池上,k=x·y 的约束即使对微小交易量也会产生价格变动。查找表让池管理员可以直接编码实际的价格关系:
  • 稳定币:在 1:1 附近密集分布表数据,使微型交易的滑点接近零。
  • 抵押资产对:编码目标比率,让网格决定费用/激励曲面。
表在 UpdateModelData 调用间保持静态(管理员在关系变化时发起调用),因此链上成本仅为插值查找——远低于重新计算公式。

工作原理:模型数据账户

池持有一个 ModelDataInfo 账户——包含 50,000 个元素的数组,每个元素是 DataElement 结构体:
DataElement {
  x: u64,           // 表的 X 坐标
  y: u64,           // 表的 Y 坐标
  price: u64,       // (x, y) 处的价格
}
只有前 valid_data_count 个元素被填充;其余为零。交换时,程序执行:
  1. 计算比率:从当前池储备量计算比率,使用二分查找确定两个表元素的位置,使该比率位于它们之间。
  2. 线性插值:在两个相邻点间插值得出报价。
  3. 应用费用:采用与 AMM v4 相同的 0.25% 费率,返回结果给用户。
表上的 multiplier 字段处理 x 和 y 存储时可能的缩放(例如,使用 6 位小数而非 18 位)。价格发现会相应重新缩放。

比较:稳定 AMM vs. AMM v4 vs. CPMM

维度稳定 AMMAMM v4CPMM
曲线查找表加插值恒定乘积 (xy=k)恒定乘积
主要用例稳定币、挂钩交易对通用交易对、既有深流动性通用交易对、新部署
OpenBook 依赖
Token-2022
滑点特征1:1 处极小价格紧密时较高全范围中等
管理员可调曲线是(UpdateModelData否(仅 SetParams
表大小~50k 元素 × 24 字节不适用不适用
每次交换计算量~5k–15k CU(二分查找加插值)~150k–200k CU~60k–100k CU
每次交换账户数~17(AMM + OpenBook)~18(AMM + OpenBook)~11

心智模型

稳定 AMM 池是一个插值查找表 AMM,其金库同时托管 OpenBook 限价单,与 AMM v4 相同。关键差异在于价格发现曲线不是硬编码的——而是一个稀疏数组,管理员可以填充和更新。操作方式与 AMM v4 相似:直接交换(用户 ↔ 池)、存取流动性(LP 操作)、操作步进MonitorStep)和管理员维护UpdateModelDataSetParams)。

何时选择稳定 AMM

  • 你运营稳定币或其他关联资产交易对,需要紧密且可预测的定价。
  • 你深度理解交易对的价格关系,想直接将其编码为曲线。
  • 你已有 AMM v4 集成,只需不同的曲线方案。
如果需要新的通用流动性池,且无紧密关联要求,CPMM 是更简洁且流动性更好的默认选择。

后续步骤

  • 账户AmmInfoModelDataInfoDataElement 字段参考。
  • 数学 — 二分查找、插值和费用应用。
  • 指令InitModelDataUpdateModelData、交换及 LP 指令。
  • 费用 — 0.25% 分配(与 AMM v4 相同)。
  • 代码示例 — 路由和直接集成。
参考资源: