Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском →
Перейти к основному содержимому

Ликвидация

Ликвидация защищает систему от аккаунтов, которые больше не могут выполнять свои маржинальные обязательства. Когда капитал аккаунта опускается ниже требования по поддерживающей марже, Hypercall сначала пытается восстановить аккаунт, закрывая короткие опционы. Если это не помогает вовремя, аккаунт переходит к полной ликвидации.

Условия запуска​

Ликвидация запускается, когда аккаунт оказывается в минусе по марже (underwater):

Портфельная маржа:

Капитал<Требуемая поддерживающая маржа\text{Капитал} < \text{Требуемая поддерживающая маржа}

Стандартная маржа:

Денежные средства<Требуемая MM\text{Денежные средства} < \text{Требуемая MM}

Ликвидацию в стандартной марже (SM) определяет запас денежных средств над поддерживающей маржой (cash - mm_required), а не капитал. Поэтому рост оценки длинных опционов, увеличивающий NAV, не спасает от дефицита денежных средств. Поле API maintenance_margin = equity - mm_required по-прежнему возвращается, но триггером ликвидации в SM не является. Подробнее в разделе Стандартная маржа.

Для аккаунта с портфельной маржой капитал считается за вычетом задолженности перед пулом кредитования PM, а требование по поддерживающей марже также учитывает собственную ликвидацию ваших перпов на HyperCore со стороны Hyperliquid. Hyperliquid может ликвидировать эти перпы по своим правилам независимо от Hypercall. Подробнее в разделе Портфельная маржа.

Hypercall проверяет состояние каждого аккаунта с открытыми позициями раз в 5 секунд.

Состояния​

СостояниеЧто происходитЗаявки
HealthyPM: капитал не ниже требуемой MM. SM: денежные средства не ниже требуемой MM.Разрешены все заявки
PreLiquidationЧастичная ликвидация: Hypercall выставляет закрывающие заявки по коротким опционам аккаунтаТолько заявки, сокращающие существующую позицию
InLiquidationПолная ликвидация. Стандартная маржа: книга аккаунта предлагается ликвидаторуТолько заявки, сокращающие существующую позицию
LiquidatedЛиквидатор принял книгу аккаунтаТолько заявки, сокращающие существующую позицию

В состояниях PreLiquidation и InLiquidation вывод средств и перевод денежных средств PM (cash sweep) отключены. Когда аккаунт PM разгружается в рамках полной ликвидации, все его заявки блокируются.

Переходы между состояниями​

  1. Healthy в PreLiquidation: аккаунт опускается ниже порога MM.
  2. PreLiquidation в Healthy: аккаунт достигает целевого уровня с буфером, требуемая MM × 1.05, и ни одна из его ликвидационных заявок не остаётся открытой. Граница включительная.
  3. PreLiquidation в InLiquidation: аккаунт по-прежнему ниже целевого уровня, и выполнено одно из условий эскалации, описанных ниже.
  4. InLiquidation в Healthy: аккаунт восстанавливается до того, как его принял ликвидатор, и полная ликвидация прекращается.
  5. InLiquidation в Liquidated: ликвидатор принимает аккаунт.

Частичная ликвидация​

Когда аккаунт переходит в PreLiquidation:

  1. Заявки, увеличивающие риск, сразу отклоняются. Заявки, сокращающие существующую позицию, по-прежнему принимаются.
  2. Hypercall отменяет ваши открытые заявки, увеличивающие риск, и выставляет заявки на покупку только на сокращение (reduce-only) по вашим коротким опционам в объёме, достаточном для возврата аккаунта к уровню требуемая MM × 1.05. В первую очередь закрываются шорты, освобождающие больше всего маржи на контракт.
  3. Каждая заявка выставляется по лучшему аску (или по середине спреда либо по биду, если аска нет) плюс ликвидационный бонус. Бонус начинается с 0.5% и линейно растёт до 10% за 5 минут. Заявки переоцениваются каждые 5 секунд.
  4. Как только аккаунт возвращается на целевой уровень или выше и ликвидационных заявок не остаётся, он снова переходит в Healthy.

Бонус оплачиваете вы: это надбавка к рыночной цене за быстрое закрытие ваших шортов.

Используйте это время, чтобы исправить ситуацию самостоятельно:

  • Внесите обеспечение
  • Закройте позиции, в первую очередь короткие опционы
  • Отмените заявки, увеличивающие риск

Переход к полной ликвидации​

Аккаунт в PreLiquidation, который по-прежнему ниже целевого уровня, переходит к полной ликвидации при выполнении любого из условий:

  • Капитал отрицательный.
  • Не осталось коротких опционов, которые могла бы закрыть частичная ликвидация.
  • Истёк срок эскалации. Срок составляет 20 минут с момента перехода аккаунта в PreLiquidation.

Благодаря 20-минутному окну кратковременная некорректная оценка не переводит аккаунт сразу в полную ликвидацию.

Полная ликвидация​

Для аккаунта со стандартной маржой полная ликвидация означает передачу книги аккаунта ликвидатору внутри движка Hypercall. Сначала Hypercall отменяет все открытые заявки аккаунта, затем выставляет аккаунт на передачу.

  • Ликвидатор обязан вернуть аккаунт к уровню требуемая MM × 1.05, то есть внести недостающую маржу.
  • Если у аккаунта остаётся положительный капитал, ликвидатор выплачивает его вам.
  • Ликвидатор забирает все позиции и денежные средства аккаунта.

Если аккаунт восстанавливается до того, как его принял ликвидатор, полная ликвидация прекращается и аккаунт возвращается в Healthy.

Для аккаунта с портфельной маржой ключевой этап, на который стоит ориентироваться, это описанная выше частичная ликвидация. После эскалации аккаунта PM его открытые заявки отменяются, а новые блокируются на время обработки. Остальная часть этого этапа будет описана здесь после окончательного утверждения.

Убытки сверх капитала​

Убыток сверх капитала аккаунта никогда не покрывается закрытием позиций других трейдеров: автоматического сокращения позиций (auto-deleveraging) на Hypercall нет. Кто несёт убыток, зависит от режима маржи.

Стандартная маржа. Ликвидатор забирает позиции и денежный баланс аккаунта как есть, включая дефицит. Недостача при отрицательном капитале остаётся на ликвидаторе.

Портфельная маржа. То, что аккаунт всё ещё должен после ликвидации (займы пула и неоплаченные расчёты по экспирации), проходит через фиксированный каскад:

  1. Обеспечение заёмщика. Hypercall взыскивает долг из обеспечения аккаунта на HyperCore. См. взыскание. Заём списывается только после того, как взыскание исчерпано.
  2. Резерв первого убытка. Сначала он платит аккаунтам, которым заёмщик всё ещё должен по расчётам, начиная с самого старого пакета, затем покрывает списанный заём.
  3. Кредиторы пула. Всё, что резерв не покрывает, снижает цену доли пула.

Долг не списывается. Всё, что позже удаётся взыскать с заёмщика, сначала идёт контрагентам по settlement, которым он ещё должен, начиная с самого старого пакета, затем на погашение непогашенного займа пула; только остаток возвращается резерву и кредиторам пропорционально их потерям. Резерв первого убытка покрывает только займы PM; общего страхового фонда площадки нет.

Эндпоинты API​

Получить статус ликвидации​

GET /liquidation/status?wallet=0x...

Для аккаунта, который никогда не выходил из состояния Healthy, data равно null.

Ответ:

{
"success": true,
"data": {
"wallet": "0x...",
"state": "pre_liquidation",
"liquidation_mode": "partial",
"margin_mode": "portfolio",
"equity": "4500.00",
"mm_required": "5000.00",
"maintenance_margin": "-500.00",
"shortfall": "500.00",
"partial_liquidation": {
"entered_at": 1737312000000,
"target_equity": "5250.00",
"mm_shortfall": "500.00",
"escalation_deadline": 1737313200000,
"bonus_bps": 50
},
"full_liquidation": null
}
}

partial_liquidation также содержит идентификаторы открытых ликвидационных заявок. full_liquidation содержит параметры передачи аккаунта, включая margin_needed, winner и текущую требуемую ставку.

Получить историю ликвидаций​

GET /liquidation/history?wallet=0x...&limit=20

Возвращает историю переходов между состояниями для аккаунта.

Получить публичную историю ликвидаций​

GET /liquidations?limit=50

Возвращает историю переходов ликвидации по всем кошелькам, от новых к старым. Эндпоинт публичный и использует курсорную пагинацию для ботов-ликвидаторов и инструментов мониторинга.

Параметры запроса

  • cursor: непрозрачный курсор, полученный на предыдущей странице.
  • limit: размер страницы, по умолчанию 50, максимум 100.
  • wallet: необязательный фильтр по кошельку.
  • status или state: необязательный фильтр по состоянию перехода ликвидации. Допустимые значения: healthy, pre_liquidation, in_liquidation и liquidated.
  • margin_mode: необязательный фильтр по режиму маржи. Допустимые значения: standard и portfolio.
  • liquidation_mode: необязательный фильтр по режиму ликвидации. Допустимые значения: partial и full.

Ответ: PublicLiquidationsResponse с записями о переходах ликвидации и page.next_cursor для следующего запроса.

Получить детали аукциона​

GET /liquidation/auction/{auction_id}

Возвращает статус полной ликвидации, позиции и детали расчёта.

Уведомления WebSocket​

Изменения состояния ликвидации транслируются в канал liquidation:

{
"type": "LiquidationStateChange",
"wallet_address": "0x...",
"previous_state": "healthy",
"new_state": "pre_liquidation",
"liquidation_mode": "partial",
"margin_mode": "portfolio",
"equity": "4500.00",
"mm_required": "5000.00",
"maintenance_margin": "-500.00",
"shortfall": "500.00",
"partial_liquidation": { "escalation_deadline": 1737313200000, "bonus_bps": 50 },
"full_liquidation": null,
"timestamp": 1737312000000
}

partial_liquidation и full_liquidation содержат те же поля, что и в эндпоинте статуса. Подпишитесь, чтобы получать обновления по своему кошельку в реальном времени.

Параметры​

ПараметрЗначениеОписание
Интервал проверки состояния5 секундКак часто проверяется состояние аккаунта
Целевой уровень восстановленияТребуемая MM × 1.05Капитал (PM) или денежные средства (SM), необходимые для возврата в Healthy, а также уровень, который восстанавливает полная ликвидация
Минимальный дефицит0Любой дефицит запускает частичную ликвидацию
Ликвидационный бонусОт 0.5% до 10% за 5 минутНадбавка к опорной цене в заявках частичной ликвидации
Интервал переоценки5 секундКак часто переоцениваются заявки частичной ликвидации
Срок эскалации20 минутВремя в PreLiquidation до начала полной ликвидации

Рекомендации​

Для трейдеров​

  1. Следите за уровнем маржи: держите капитал с запасом над MM (рекомендуем двукратный буфер)
  2. Настройте оповещения: используйте WebSocket, чтобы заранее увидеть переход в PreLiquidation
  3. Держите резерв: имейте свободное обеспечение, готовое к внесению
  4. Закрывайте шорты сами: по собственным заявкам вы не платите ликвидационный бонус

Проверка состояния​

Регулярно проверяйте состояние маржи:

curl "https://api.hypercall.xyz/portfolio?wallet=0x..."

# Look for:
# - span_margin.equity vs span_margin.maintenance_margin_required (portfolio)
# - margin_summary.standard_margin.maintenance_margin_headroom (standard)

См. также: