Discovery Engine

The loan discovery engine is built to run on on-chain data to help users discover the most optimal leverage positions based on their risk appetite.

The engine runs on real-time on-chain data to relatively score available markets in a range of [0,1]. This is to note that the engine's scores are relative based on the parameters chosen by the user, and NOT an absolute measure of risk. The users are advised to do their own research before deploying assets into any of the integrated protocols.


The first set of inputs to the engine required from the user:

  • Supply asset (in case of lending)

  • Collateral asset and Debt asset (in case of borrowing)

The second set of inputs is the parameters users wish to optimise for. The parameters vary based on whether the user wishes to lend or borrow. The parameters are presented as toggles that users can opt to enable.



Users have the option to select which parameters the engine should optimise for. Based on the user’s requirements and parameter selection, the engine uses a simple weighted sum model to score each lending pool.



  • Parameter values across available marekts are generally spread across different ranges

  • These values are captured at a given timestamp through the Data engine

  • Model then identifies max & min values for the parameter’s range at the given timestamp

  • normalizedValue = (rawValue βˆ’ minValue) / (maxValue βˆ’ minValue)

  • This way, each parameter range is normalised within [0,1]

Scoring (when lending)

If optimising only one parameter

  • Score = selected normParameter

If optimising both parameters chosen

  • Score = (normSupplyAPY + normSupplyLiq) / 2

  • Both parameters are given equal weight

Scoring (when borrowing)

If optimising only parameter

  • Score = selected normParameter

If optimising two parameters

  • Including Available Liquidity (ex: Available Liquidity, Net APY)

    • BoReqReward + UthReward + normNetAPY/2

  • Excluding Available Liquidity (ex: Net APY, LTV)

    • (normNetAPY + normLTV)/2

If optimising three parameters

  • Including Available Liquidity (ex: Available Liquidity, Net APY, LTV)

    • BoReqReward + UthReward + (normNetAPY + normLTV)/4

  • Excluding Available Liquidity (ie, Net APY, LTV, LT)

    • (normNetAPY + normLTV normLT)/3

  • If optimising all parameters:

    • Score = BoReqReward + UthReward + (normNetAPY + normLTV + normLT)/6

Based on the above model, the engine scores each available market for the selected supply/borrow asset(s) within the range [0,1].

Note: The purpose of the discovery engine is to allow users to easily evaluate the available leverage sources relative to each other. Hence the each market is scored relative to other available markets for the selected asset(s). The score is not an absolute measure of risk, and and the users are expected to do their own research while deploying assets into any protocol.

Future Scope

The current discovery engine is a statistical model running on real-time cross-sectional data.

This design will evolve into a machine learning algorithm to support leverage discovery through three fundamental risk frameworks:

  • Protocol risk

  • Asset risk

  • Borrower risk

We’re actively researching these verticals, and would welcome all collaborations!

Last updated