Обзор
Модуль Lending & Borrowing позволяет пользователям депонировать RWT или стейблкоины (USDC, USDY) для получения процентов, а также занимать стейблкоины под залог RWT. Работает как самостоятельный кредитный рынок на нативной инфраструктуре AREAL. Основной сценарий: пользователь держит RWT и хочет получить ликвидность в USDC не продавая свой RWT. Он депонирует RWT как залог, занимает USDC и продолжает получать выгоду от роста NAV Book Value, используя заёмные стейблкоины.Этот модуль сфокусирован только на парах RWT ↔ стейблкоин. Кредитование Ownership Tokens может быть добавлено в будущем как отдельный рынок с другими параметрами риска.
Как это работает
Для депозиторов (зарабатывать проценты)
Депонируйте USDC или USDY в кредитный рынок. Ваши токены становятся доступными для заёмщиков. Взамен вы получаете посекундные проценты — начисляются непрерывно через MagicBlock Ephemeral Rollup и автокомпаундятся в вашу позицию.- Без lock-up — вывод в любое время (при наличии доступной ликвидности)
- Процентная ставка корректируется динамически на основе утилизации рынка
- Выше утилизация = выше APY для депозиторов
Для заёмщиков (получить стейблкоины без продажи RWT)
Депонируйте RWT как залог и займите USDC или USDY. Ваш RWT остаётся в протоколе и продолжает расти в цене от роста NAV Book Value — вы не теряете экспозицию к доходности.- Займ до настроенного LTV от стоимости залога
- Проценты начисляются посекундно — возврат в любое время, без дедлайнов
- Если Health Factor падает ниже 1.0, позиция может быть ликвидирована
On-Chain аккаунты
LendingMarket
Основной PDA рынка. Хранит общие депозиты, общие займы, текущую процентную ставку, коэффициент утилизации и резервный фактор. Один рынок на стейблкоин (рынок USDC, рынок USDY). Seeds:
["lending_market", stablecoin_mint].DepositPosition
PDA депозитора. Отслеживает депонированную сумму стейблкоина и начисленные проценты. Проценты автокомпаундятся — стоимость позиции растёт каждую секунду. Seeds:
["deposit", market, depositor].BorrowPosition
PDA заёмщика. Хранит сумму залога в RWT, заёмную сумму стейблкоина, начисленные проценты, timestamp входа и снапшот Health Factor. Seeds:
["borrow", market, borrower].LendingConfig
Глобальная конфигурация, управляемая AREAL DAO: LTV, порог ликвидации, штраф за ликвидацию, параметры модели процентной ставки, резервный фактор и ссылки на оракулы. Seeds:
["lending_config"].Основные инструкции
initialize_market
initialize_market
Создаёт новый кредитный рынок для конкретного стейблкоина (USDC или USDY). Задаёт модель процентной ставки, LTV, порог ликвидации и другие параметры. Только AREAL DAO может создавать рынки.Authority: Engine Authority (AREAL DAO)
deposit
deposit
Депонирует стейблкоины (USDC или USDY) в кредитный рынок для получения процентов. Создаёт или обновляет PDA
DepositPosition. Проценты начисляются посекундно и автокомпаундятся — ручной claim не нужен.Authority: Permissionlesswithdraw
withdraw
Выводит депонированные стейблкоины плюс начисленные проценты. Может быть частично ограничен при очень высокой утилизации (большая часть стейблкоинов выдана заёмщикам).Authority: Депозитор (должен подписать)
borrow
borrow
Депонирует RWT как залог и занимает стейблкоины. Максимальная сумма займа определяется:
max_borrow = rwt_collateral_value_usd × LTVСтоимость RWT определяется по текущей рыночной цене из master pool RWT/USDY на native DEX. Это реальная цена, по которой ликвидаторы могут продать — что делает оценку залога точной и актуальной.Authority: Permissionless
repay
repay
Возвращает заёмные стейблкоины плюс начисленные проценты. После полного возврата залог RWT высвобождается обратно заёмщику. Частичный возврат улучшает Health Factor.Authority: Заёмщик (должен подписать)
add_collateral
add_collateral
Добавляет дополнительный залог RWT к существующей позиции займа без увеличения займа. Улучшает Health Factor.Authority: Заёмщик (должен подписать)
liquidate
liquidate
Ликвидирует недостаточно обеспеченную позицию займа (Health Factor < 1.0). Ликвидатор погашает часть долга и получает залог RWT заёмщика со скидкой (штраф за ликвидацию).
- HF между 0.95 и 1.0 → можно ликвидировать до 50% позиции
- HF ниже 0.95 → можно ликвидировать до 100%
accrue_interest
accrue_interest
Начисляет проценты на все позиции в рынке. Выполняется каждую секунду внутри MagicBlock Ephemeral Rollup. Обновляет стоимость депозитных позиций (автокомпаунд) и суммы долга по займам.Authority: Permissionless (crank, работает в ER)
update_lending_config
update_lending_config
Обновляет параметры рынка: LTV, порог ликвидации, модель процентной ставки, резервный фактор. Изменения применяются только к новым позициям — существующие сохраняют параметры на момент входа.Authority: Engine Authority (AREAL DAO)
Health Factor
Health Factor определяет, насколько позиция займа близка к ликвидации:Health Factor = (стоимость залога RWT × порог ликвидации) / общий долгГде:
- Стоимость залога RWT =
rwt_amount × рыночная цена RWT(из master pool RWT/USDY на native DEX, обновляется каждую секунду в ER) - Общий долг = заёмная сумма + начисленные проценты
| Health Factor | Статус |
|---|---|
| > 1.5 | Безопасно — хорошо обеспечена |
| 1.0 – 1.5 | Осторожно — стоит добавить залог или частично вернуть |
| < 1.0 | Ликвидируема — любой может ликвидировать позицию |
Рыночная цена RWT считывается из master pool RWT/USDY на native DEX — это реальная цена, по которой ликвидаторы могут продать изъятый залог. Использование рыночной цены (не NAV) гарантирует, что оценка залога отражает реальные условия ликвидности.
Хотя NAV Book Value растёт детерминированно от доходности, рыночная цена может временно торговаться ниже или выше NAV. Health Factor следует за рыночной реальностью, а не только теоретической справедливой стоимостью — защищая протокол от сценариев, где NAV высок, но реальная рыночная ликвидность ограничена.
Модель процентной ставки
Модель на основе утилизации, балансирующая доходность депозиторов и стоимость для заёмщиков:Низкая утилизация (0-70%)
Процентная ставка растёт постепенно. Депозиторы получают умеренный APY, заёмщики платят низкие ставки. Стимулирует заимствование.
Оптимальный диапазон (70-80%)
Целевая зона утилизации. Сбалансированные ставки — депозиторы получают конкурентный APY, заёмщики платят справедливые ставки.
| Параметр | Описание | По умолчанию |
|---|---|---|
| Оптимальная утилизация | Целевой уровень заимствования | 75% |
| Базовая ставка | Минимальная процентная ставка | 2% APR |
| Slope 1 | Рост ставки ниже оптимума | 4% APR на 100% утилизации |
| Slope 2 | Рост ставки выше оптимума (крутой) | 300% APR на 100% утилизации |
| Резервный фактор | Доля протокола от процентов → AREAL DAO | 10% |
RWT как залог — почему это работает
RWT уникально подходит как залоговый актив, потому что его стоимость детерминирована и растёт:Рыночная цена из native DEX
Залог RWT оценивается по реальной рыночной цене из master pool RWT/USDY на native DEX — цена, по которой ликвидаторы реально могут продать. Обновляется каждую секунду в MagicBlock ER.
NAV как ценовой пол
NAV Book Value растёт каждую секунду от доходности OT, создавая растущий ценовой пол. Рыночная цена стремится следовать за NAV со временем, что означает естественный рост стоимости залога и постепенное улучшение Health Factor.
Глубокая ликвидность
RWT торгуется на native DEX в concentrated master pools (RWT/USDY, RWT/USDC). Ликвидаторы могут эффективно продать изъятый залог без чрезмерного проскальзывания.
Интеграция с MagicBlock
| Операция | Где выполняется | Частота |
|---|---|---|
accrue_interest | Ephemeral Rollup | Каждую секунду |
| Чтение рыночной цены RWT | Ephemeral Rollup | Каждую секунду (из пула RWT/USDY) |
deposit / withdraw | Solana L1 | По запросу |
borrow / repay | Solana L1 | По запросу |
liquidate | Solana L1 | По запросу |
Безопасность
Оценка по рыночной цене
Залог RWT оценивается по реальной рыночной цене из master pool RWT/USDY — цена, по которой ликвидаторы реально могут продать. Обновляется каждую секунду в MagicBlock ER. Нет зависимости от внешних оракулов.
Переменная ликвидация
Переменный close factor: 50% при HF 0.95-1.0, 100% при HF < 0.95. Предотвращает ситуации, когда частичная ликвидация оставляет underwater-позиции.
NAV как растущий пол
Health Factor использует рыночную цену, но NAV Book Value растёт каждую секунду от доходности — создавая растущий ценовой пол. Рыночная цена стремится к NAV, снижая долгосрочный риск ликвидации.
Изоляция рынков
Рынки USDC и USDY полностью изолированы. Плохой долг в одном рынке не затрагивает другой.
DAO-управляемые параметры
LTV, порог ликвидации, модель ставок и резервный фактор управляются AREAL DAO. Изменения применяются только к новым позициям — существующие заёмщики защищены.
Посекундное начисление
Проценты начисляются каждую секунду в MagicBlock ER. Нет устаревших процентов — позиции всегда отражают актуальное состояние.