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

Создание Кредитных Рынков

Создание Пула (Creating a Pool)

Перед тем как приступить к созданию кредитного рынка, должен существовать пул Curve для АКТИВА (ASSET), парного с crvUSD, который реализует нечувствительный к манипуляциям оракул цен. Пулы с нечувствительными к манипуляциям оракулами включают следующие:

  • twocrypto-ng — для 2 не привязанных активов, например, crvUSD/CRV
  • tricrypto-ng — для 3 не привязанных активов, например, crvUSD/WETH/CRV
  • stableswap-ng — для 2 привязанных активов, например, crvUSD/USDC

Пользовательские Оракулы Цен

Если пул ASSET/WETH более предпочтителен, чем пул ASSET/crvUSD, можно связать цену ASSET/WETH с ценой WETH/crvUSD, используя пользовательский оракул цен. Это затем можно использовать для создания кредитного рынка. Пожалуйста, свяжитесь с командой в Telegram, если это необходимо.

Самый простой способ создать пул — через официальный интерфейс создания пула Create Pool UI.

Доступны руководства по созданию stableswap-ng пула, twocrypto-ng пула и tricrypto-ng пула.


Создание Кредитного Рынка (Creating a Lending Market)

Для создания кредитного рынка используйте методы create или create_from_pool в смарт-контракте OneWay Lending Factory, чтобы развернуть все необходимые контракты и установить все параметры. Адреса OneWay Lending Factory для различных сетей можно найти здесь. Для этого шага нет пользовательского интерфейса, его необходимо выполнить через Etherscan или вручную.

Для развертывания кредитного рынка с использованием метода create_from_pool после создания пула используется следующий уникальный параметр:

  • pool: адрес пула, который включает как borrowed_token, так и collateral_token.

Для развертывания кредитного рынка с использованием метода create с пользовательским оракулом используется следующий уникальный параметр:

  • price_oracle: адрес смарт-контракта пользовательского оракула цен

Затем для обоих методов необходимо предоставить следующие дополнительные параметры:

  • borrowed_token: адрес токена, который будет предоставлен и заимствован
  • collateral_token: адрес токена, который будет использоваться как залог
  • A: коэффициент усиления, большинство рынков используют значение между 10-30. Используйте более низкие значения для рискованных активов.
    Вводится как обычное число, например, 10 = 10
  • fee: комиссия AMM за обмен, большинство пулов используют от 0.3-1.5%.
    Вводится как число с основанием \(10^{18}\), например, 0.06% = 6000000000000000.
  • loan_discount: процент, используемый для скидки залога при расчете максимального LTV. Обычно выше, чем liquidation_discount на 3-4%.
    Вводится как число с основанием \(10^{18}\), например, 11% = 110000000000000000.
  • liquidation_discount: процент, используемый для скидки залога при расчетах здоровья и жёсткой ликвидации. Обычно ниже, чем loan_discount на 3-4%.
    Вводится как число с основанием \(10^{18}\), например, 8% = 80000000000000000.
  • name: название рынка

Наконец, следующие параметры являются опциональными для обоих методов. Если они не предоставлены, они устанавливаются на значения по умолчанию, заданные CurveDAO:

  • min_borrow_rate: минимальная ставка заимствования, как ставка/сек.
    Вводится как число с основанием \(10^{18}\), например, 1% APR = 317097919
  • max_borrow_rate: максимальная ставка заимствования, как ставка/сек.
    Вводится как число с основанием \(10^{18}\), например, 80% APR = 25367833587

Внимание

Параметры заданы в разных форматах: A задается как есть, например, 30 = 30, но другие, такие как loan_discount, задаются как число с основанием \(10^{18}\), например, 11% = 110000000000000000.

Использование OneWay Lending Factory добавит пул в Curve UI и развернет все необходимые контракты для функционирования рынка.


CRV Вознаграждения и другие Стимулы для Поставщиков Ликвидности

Развертывание Gauge (Счётчика вознаграждений)

Кредитный рынок Curve требует наличие gauge (Счётчика вознаграждений), связанного с хранилищем поставок (supply vault), перед тем как поставщики смогут застейкать свои доли хранилища для получения инцентивов/вознаграждений. Gauge можно легко развернуть через OneWay Lending Factory, вызвав метод deploy_gauge и предоставив адрес нового контракта vault. Любой может развернуть gauge для рынка, у которого его нет.

Получение CRV вознаграждений из еженедельных эмиссий

Перед тем как gauge станет доступным для получения CRV из еженедельных эмиссий, его необходимо добавить в смарт-контракт Gauge Controller, который развернут на Ethereum здесь. Для добавления в Gauge Controller CurveDAO должна проголосовать за добавление gauge кредитного рынка. См. здесь для информации о том, как создать голосование за добавление gauge в Gauge Controller.

Как только кредитный рынок Curve будет добавлен в Gauge Controller и получит некоторый вес gauge, поставщики ликвидности будут получать CRV вознаграждения при стейкинге своих долей хранилища в gauge.

Добавление других Стимулов для Поставщиков Ликвидности

Развертыватель (deployer) кредитного рынка Curve получает роль manager. Manager может добавлять токены вознаграждений в пул через метод add_reward в gauge кредитного рынка. После добавления токена, manager может депонировать токен, используя метод deposit_reward_token. Токены затем распределяются среди застейканных поставщиков в gauge в течение указанного периода.


Параметры Развертывания Кредитного Рынка

Коэффициент Усиления (A) (Amplification Factor A)

Коэффициент усиления A определяет ширину полос (band width), см. формулу ниже и более подробную информацию здесь и апплет здесь. A также является частью расчета максимального LTV рынка, см. секцию loan_discount.

\[\text{band_width} \approx \frac{\text{price}}{\text{A}}\]

Скидка на Займ (Loan Discount)

loan_discount используется для определения максимального LTV (loan-to-value), который пользователь может иметь на кредитном рынке. На момент написания значение варьируется от 7% для WETH до 33% для волатильных и менее ликвидных активов, таких как UwU. Используйте калькулятор здесь, чтобы увидеть максимальные LTV, которые пользователь может иметь на основе loan_discount, коэффициента усиления A и количества полос N. Формула:

\[\text{max_LTV} = 1 - \text{loan_discount} - \frac{N}{2*A}\]

Скидка на Ликвидацию (Liquidation Discount)

liquidation_discount определяет, насколько нужно снизить стоимость залога для целей расчета здоровья займа при жёсткой ликвидации. Обычно это на 3-4% меньше, чем loan_discount. Пользователь подлежит жёсткой ликвидации, когда его здоровье ниже 0%, и liquidation_discount является неотъемлемой частью расчета здоровья займа. См. здесь для дополнительной информации.

Процентные Ставки Заимствования (Borrowing Interest Rates)

При создании рынка создатель должен определить min_borrow_rate и max_borrow_rate рынка. Используйте инструмент ниже, чтобы симулировать, как утилизация влияет на процентные ставки заимствования и кредитования. В смарт-контрактах ставки задаются как процент за секунду, преобразование желаемого APR в borrow_rate в процентах за секунду осуществляется следующим образом:

\[\text{borrow_rate} = \frac{\text{APR}}{\text{seconds_in_year}} = \frac{\text{APR}}{86400 \times 365}\]

Калькулятор Ставок (Rate Calculator)

Вводные Данные:

График Утилизации (Utilization Chart)

Таблица Утилизации (Utilization Table)