Перейти к основному содержанию

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 от Raydium, которая вместо формулы кривой использует предзаполненную таблицу поиска. Вместо уравнения x·y=k пул хранит разреженный массив точек (x, y, price) и применяет двоичный поиск + линейную интерполяцию для расчета цен. Такой подход идеален для пар стейблкойнов и других активов с известными соотношениями цен: обмены между токенами с привязкой 1:1 имеют практически нулевое скольжение. Как и AMM v4, Stable AMM привязана к рынку OpenBook и выставляет там лимитные ордера. Ликвидность в данный момент ограничена; большинство интеграторов получают доступ к пулам Stable через программу AMM Routing.

Почему таблица поиска вместо xy=k

Постоянные AMM с произведением активов несут высокое скольжение для пар с узким диапазоном цен. Обмен USDC на USDT практически не должен стоить ничего; однако в обычном AMM уравнение k=x·y вынуждает цену двигаться даже при микроскопическом объеме. Таблица поиска позволяет администратору пула явно задать фактическое соотношение цен:
  • Для стейблкойнов: разместить точки таблицы вокруг соотношения 1:1, чтобы микросвопы имели ~0 скольжения.
  • Для обеспеченных пар: закодировать целевой коэффициент и позволить сетке определить поверхность комиссий/стимулов.
Таблица статична между вызовами UpdateModelData (которые администратор отправляет, когда соотношение меняется), поэтому затраты на цепи — это просто интерполированный поиск, что намного дешевле, чем пересчет формулы.

Как это работает: аккаунт model-data

Пул содержит аккаунт ModelDataInfoмассив из 50 000 элементов структур DataElement. Каждый элемент содержит:
DataElement {
  x: u64,           // координата X в таблице
  y: u64,           // координата Y в таблице
  price: u64,       // цена в точке (x, y)
}
Заполнены только первые valid_data_count элементов; остальные обнулены. При свопе программа:
  1. Вычисляет соотношение из текущих резервов пула и использует двоичный поиск, чтобы найти два элемента таблицы, которые заключают это соотношение.
  2. Интерполирует линейно между двумя граничными точками, чтобы получить цену котировки.
  3. Применяет комиссии (те же 0,25%, что и в AMM v4) и возвращает результат пользователю.
Поле multiplier в таблице учитывает возможность того, что x и y хранятся в уменьшенном масштабе (например, с 6 десятичными знаками вместо 18). Обнаружение цены масштабируется соответственно.

Сравнение: Stable AMM vs. AMM v4 vs. CPMM

АспектStable AMMAMM v4CPMM
КриваяТаблица поиска + интерполяцияПостоянное произведение (xy=k)Постоянное произведение
Основной случай использованияСтейблкойны, привязанные парыОбщие пары, глубокая историческая ликвидностьОбщие пары, новые развертывания
Зависимость от OpenBookДаДаНет
Token-2022НетНетДа
Профиль скольженияМинимальное при 1:1Высокое при узких соотношенияхУмеренное в диапазоне
Настраиваемая администратором криваяДа (UpdateModelData)Нет (только SetParams)Нет
Размер таблицы~50k элементов × 24 байтаN/AN/A
Вычисления на свопе~5k–15k CU (двоичный поиск + интерполяция)~150k–200k CU~60k–100k CU
Количество аккаунтов на свопе~17 (AMM + OpenBook)~18 (AMM + OpenBook)~11

Концептуальная модель

Пул Stable AMM — это интерполированный AMM с таблицей поиска, чьи хранилища также экранируют лимитные ордера OpenBook, так же как в AMM v4. Ключевое отличие в том, что кривая обнаружения цены не жестко закодирована — это разреженный массив, который администратор может заполнять и обновлять. Операции аналогичны AMM v4: прямой своп (пользователь ↔ пул), депозит / вывод (операции LP), cranking (MonitorStep) и админское обслуживание (UpdateModelData, SetParams).

Когда Stable AMM — правильный выбор

  • Вы управляете стейблкойном или другой парой коррелированных активов и хотите плотное, предсказуемое ценообразование.
  • Вы хорошо знаете соотношение цен вашей пары и хотите закодировать его непосредственно в кривую.
  • У вас уже есть интеграции для AMM v4 и вам просто нужна другая разновидность кривой.
Для нового пула общего назначения без требования к плотной корреляции CPMM — более простой и ликвидный выбор по умолчанию.

Что дальше

  • Аккаунты — справочник полей AmmInfo, ModelDataInfo, DataElement.
  • Математика — двоичный поиск, интерполяция и применение комиссий.
  • ИнструкцииInitModelData, UpdateModelData, инструкции для свопов и операций LP.
  • Комиссии — разделение 0,25% (идентично AMM v4).
  • Примеры кода — routing и прямая интеграция.
Источники: