Protocol parameters

Description of protocol parameters

Hub

liquidationFee

  • Protocol cut from the liquidation (a fraction of LiquidationInput.assetReceiptAmounts)

liquidationCalculator

  • The ILiquidationCalculator smart contract is responsible for providing helpers and calculations for the Hub when handling liquidations

priceUtilities

  • The HubPriceUtilities smart contract contains helper functions for assets' prices

assetRegistry

  • The AssetRegistry smart contract contains the list of assets supported by the protocol and their parameters in AssetInfo structs.

HubPriceUtilities

priceStandardDeviations

  • The number of standard deviations of the Laplacian distribution that is used to create a spread between the deposit price of an asset and the debt price of an asset. e.g. if the true price of an asset is $1000 per unit, the standard deviation returned from the price oracle is $5 and priceStandardDeviations is 4.0 then the asset will be priced at $980 per unit when used as deposit and at $1020 when used as debt. This is to further ensure that the protocol always has enough collateral.

priceOracle

  • The SynonymPriceOracle smart contract is an abstraction layer allowing the protocol to switch between Chainlink and Pyth oracles.

SynonymPriceOracle

maxPriceAge

  • In seconds

  • If we get the price from Pyth / Chainlink, which is older than that, we'll revert

LiquidationCalculator

maxHealthFactor

  • A global parameter

  • Is >= 1

  • By health we understand collateralization ratio = deposited/borrowed

    • by deposited we understand a sum of the $ values of deposits divided by their corresponding collateralizationRatioDeposit. The collateralizationRatioDeposit value decreases the effective value of the deposits.

    • by borrowed we understand a sum of the $ values of deposits multiplied by their corresponding collateralizationRatioBorrow. The collateralizationRatioBorrow increases the effective value of the loans.

  • When collateralization ratio is < 1, some of the debt can be liquidated

  • When liquidating debt, a liquidator can bring the collateralization ratio up to maxHealthFactor value

  • It's up to the liquidator what debt they want to liquidate

  • It's up to the liquidator what collateral they want in return

    • their bonus depennds on what collateral they choose

AssetInfo

collateralizationRatioDeposit

  • Must be > 1

  • Precision: assetRegistry.getCollateralizationRatioPrecision()

  • It decreases the effective value of your collateral

collateralizationRatioBorrow

  • Must be > 1

  • Precision: assetRegistry.getCollateralizationRatioPrecision()

  • It increases the weight of your loans on your effective collateral

borrowLimit

  • Maximum total amount of token units which can be borrowed by all users combined

supplyLimit

  • Maximum total amount of token units which can be deposited by all users combined

maxLiquidationPortion

  • The maximym portion of a loan which can be liquidated in a single transaction, set per asset

  • Precision: assetRegistry.getMaxLiquidationPortionPrecision()

maxLiquidationBonus

  • 130e4 = 130% = 1.3

  • 1.3 means the liquidator gets 30% over what he repays

  • The liquidation bonus is paid form the collateral and it's value is derived from the chosen collateral asset

interestRateCalculator

LinearInterestRate > InterestRateModel

rateIntercept - linear function "b" intercept

rateCoefficient - linear function "a" coefficient

reserveFactor - the protocol cut (% of the borrow interest)

PiecewiseInterestRate > PiecewiseInterestRateModel

kinks, rates:

  • generally:

    • rate[0] applies when borrowed/deposited <= kink[0]

    • rate[1] applies when borrowed/deposited <= kink[1]

    • etc. until we run out of kinks and use the last rate

  • actually we use a linear functions between kinks

reserveFactor - the protocol cut (% of the deposit interest paid to the protocol)

Last updated