Skip to content

Rewards for Borrowers

Borrowers on Morpho Markets can often earn additional rewards on top of their borrowing activities. These incentives are designed to attract liquidity, encourage borrowing, and bootstrap new markets. Understanding and integrating these reward mechanisms is key to providing a full-featured borrow product.

Rewards Overview

Rewards are defined through different programs, which are strategies to incentivize specific user actions on Morpho. As a borrower, you might be eligible for rewards for two main activities:

  • Borrowing an asset.
  • Supplying collateral to a market.

These rewards are distributed through two primary systems: a third-party distributor called Merkl, and Morpho's native Universal Rewards Distributor (URD). You can view all active programs via the Rewards API.

Borrowers can be eligible for two main types of programs:

  1. Market Programs
  2. Uniform Rate Programs

Market Programs

A market program directly incentivizes activity within a specific Morpho Market over a set period. For a borrower, this means you can earn rewards on:

  • Your outstanding borrow position (borrow_rate_per_year).
  • Your supplied collateral (collateral_rate_per_year).

Here is an example of a MarketProgram object from the API:

{
  "id": "0x2923a47dfacb9296e95586241349f77cbd7b48b992597011901080320cfe5957",
  "creator": "0x0C2553e4B9dFA9f83b1A6D3EAB96c4bAaB42d430",
  "start": "1714525200",
  "end": "1717030800",
  "created_at": "1713968975",
  "type": "market-reward",
  "distributor": {
    "id": "0x330eefa8a787552DC5cAd3C3cA644844B1E61Ddb-1",
    "address": "0x330eefa8a787552DC5cAd3C3cA644844B1E61Ddb",
    "chain_id": 1
  },
  "asset": {
    "id": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0-1",
    "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
    "chain_id": 1
  },
  "market_id": "0x423cb007534ac88febb8ce39f544ab303e8b757f8415ed891fc76550f8f4c965",
  "supply_rate_per_year": "0",
  "borrow_rate_per_year": "37758620689655172413", 
  "collateral_rate_per_year": "18879310344827586206", 
  "chain_id": 1
}
  • market_id: The unique identifier for the incentivized market.
  • borrow_rate_per_year: The annualized rate at which rewards are distributed to borrowers in this market.
  • collateral_rate_per_year: The annualized rate for users supplying collateral.

To convert these rates into a user-facing APR, you can use the following formula:

APR=rate_per_year×reward_pricetotal_position_value×100\text{APR} = \frac{\text{rate\_per\_year} \times \text{reward\_price}}{\text{total\_position\_value}} \times 100
  • total_position_value: The total USD value of all borrows or all collateral in the market.

Uniform Rate Programs

The Morpho DAO often uses a uniform rate program to distribute MORPHO tokens. This type of program applies a consistent reward rate for each dollar of value across a curated list of eligible markets.

  • For borrowers, this typically applies to the borrow amount they have borrowed.
  • The formula ensures that each new dollar of borrow amount is rewarded at a consistent rate up to a specific limit for the entire ecosystem.
uniform-rate

The specific rates (r_0) and supply limits (S_limit) are set by governance and can be monitored on the Morpho governance forum.

How Rewards are Calculated and Claimed

  • Computation: User rewards are calculated offchain by indexing onchain activity. You can see the final computed rewards for a user at the following endpoint:

  • Distribution: Rewards are made available to claim via a distributor contract (either Merkl's or Morpho's URD). The claim process uses a Merkle tree to ensure data integrity. To get the necessary data for a claim (including the Merkle proof), you query this endpoint:

  • Claiming: Once the data is fetched, a user can sign a transaction to claim their rewards. See the Integrate Reward Claims tutorial for implementation details.

Universal Rewards Distributor (URD)

For rewards distributed through Morpho's native stack, the Universal Rewards Distributor (URD) is the core smart contract. It's a permissionless system for distributing multiple ERC20 tokens from an offchain computed Merkle tree.

  • Merkle Proofs: Ensure that only valid claims can be executed onchain.
  • Timelocks: URDs can be configured with a timelock, which creates a delay between when a new reward distribution (Merkle root) is proposed and when it becomes active. This gives observers time to verify the new distribution.
  • Owner and Updaters: The URD is managed by an owner who can set parameters and one or more updaters who are authorized to submit new Merkle roots.

For a deep dive into the technical design of the URD, you can explore the full repository here.

Next Steps

Now that you understand the types of rewards available to borrowers, the next step is to integrate the claiming process into your application.

Proceed to the Integrate Reward Claims Tutorial