Skip to main content

Rates and Incentives

Markets Information appears on the Morpho Interface. As displayed in the following pictures, a market on Morpho has:

  • a supply APY (Annual Percentage Yield),
  • a borrow APY,
  • potential rewards (hover on the Borrow APY number to display the rewards tooltip).
Current Lending Pool vs Morpho Approaches Current Lending Pool vs Morpho Approaches

Let's see how to retrieve those information.

Rates

At the smart contract level, the Interest Rate model (IRM) provides the borrowRate for each market.

The borrowRate is the rate at which borrowers pay interest on the borrowed amount. The supplyRate is the rate at which lenders earn interest on the supplied amount.

As interests are compounded, users are more interested in the Annual Percentage Yield (APY) for both borrowing and supplying. The APY takes into account the compounding interest to provide a standardized measure of yields over a one-year period.

The logic explaining how to go from the borrowRate to the borrowApy (and thus supplyApy) is explained in the calculation section of the Interest Rate Model.

Below are some guides to retrieve those rates.

Smart Contract

To manually retrieve the borrowRate for a market, you can use the borrowRateView function of the IRM contract. This section guides you through the process of obtaining the necessary parameters and executing the function call. Jump into the Addresses section to get the contract addresses.

  1. Querying the Morpho Contract

First, obtain the marketParams by querying the idToMarketParams function. For example, for the wstETH/WETH (94.5%) market, use the following ID: 0xc54d7acf14de29e0e5527cabd7a576506870346a78a11a6762e2cca66322ec41.

Morpho Banner

Next, acquire the market values by querying the market function.

Morpho Banner
  1. Querying the AdaptiveCurveIRM Contract

Use the retrieved marketParams and market in the following format to query the contract:

Input:

  • marketParams (tuple)
["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0","0x2a01EB9496094dA03c4E364Def50f5aD1280AD72","0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC","945000000000000000"]
  • market (tuple)
["10004929554680902814569", "9991371195121664602574716119", "8810921364321507255452", "8796441127786542454899358360","1707318023",0]
Morpho Banner

API

One can get the supply and borrow APYs directly (no need to do the extra computation from borrowRate to borrowAPY as it is already done) for each market by using the Morpho API.

The data from the API are the same as the one displayed in the Morpho Interface.

Incentives

As explained in the incentives section, some Morpho markets might have incentives to attract more liquidity. These incentives are typically in the form of a token reward, transferable, or not.

Below is a guide to track the incentives of a given market.

To get the net APY as displayed in the Morpho Interface, one needs to understand the following.

Native APY+Rewards APR+MORPHO tokens\text{Native APY} + \text{Rewards APR} + \text{MORPHO tokens}

Why Rewards APR?

The distinction between APY and APR is that APY takes into account the effect of compounding interest, while APR does not. In the case of rewards, the APR is the most relevant metric to consider, as rewards are not reinvested in users positions.

Smart Contract

An entire tutorial is available here to track emissions of a specific ERC20 token within a rewards program operated on Morpho.

API

One can jump in this api section to get more information about rewards:

  • Query Morpho markets rewards including the supplyApr and borrowApr for each market.

    The supplyApr and borrowApr are the Annual Percentage Rates (APR) for supplying and borrowing respectively. This is extra incentives that one should add alongside the native rates supplyApy and borrowApy to get the total incentives.

    1. For suppliers: netMarketApy of a market = supplyApy of a market + supplyApr of incentives.
    2. For Borrowers: netMarketApy of a market = borrowApy of a market - borrowApr of incentives.
  • Get All Rewards for a User

  • Get All Distributions for a User

  • Get All Programs