# HyperLend

HyperLend is a high-performance lending protocol on [Hyperliquid](https://x.com/HyperliquidX), built for capital efficiency. It offers real-time leverage, dynamic rates, and deep liquidity access. **Built for traders, quants, and market makers in need of efficient lending.**

**Our goal:**

* To become the equivalent of modern banking infrastructure, with better transparency and stronger foundations.

**Our mission:**

* To define the financial core of the Hyperliquid ecosystem by becoming its primary credit and liquidity layer, the money market that is core to capital movement on-chain.

**Our values:**

* Security and Risk Awareness: Growth must be safe, transparent, and controlled. We prioritize user trust through robust risk frameworks and conservative progression.
* Alignment: We exist solely to strengthen Hyperliquid. Every decision is made with long-term ecosystem alignment in mind.
* Persistence: Progress is continuous, execution is consistent, and the focus is on building enduring financial infrastructure.
* Focus: Concentration on one vertical, the credit and liquidity layer, to deliver precision and depth rather than surface-level expansion.


# Key Features and Benefits

Short Description

HyperLend is a decentralized finance (DeFi) platform designed to simplify and secure the process of lending and borrowing cryptocurrencies.

**Key Features:**

* **Decentralized Protocol:** Operates transparently using secure, audited, and open-source smart contracts.
* **Flexible Lending & Borrowing:** Users can generate interest by supplying assets or obtain loans using deposited collateral.
* **Flash Loans:** Enables instant and secure loans for efficient execution of financial strategies.
* **Robust Security:** Employs **audited** and **battle-tested** smart contracts, ensuring maximum protection of user assets. Learn more [here](https://hyperlend.finance/security).
* **Referral Rewards:** Promotes community expansion by incentivising users who refer others to the platform.
* **Incentive Programs:** Offers diverse engagement programs to increase user activity and optimize returns.

***

**User Benefits:**

* **Earn Passive Income:** Supply assets to liquidity pools to earn competitive interest.
* **Stay Liquid**: Borrow against your assets to access working capital without triggering a taxable event or losing your long-term market position. Stay liquid while your portfolio grows.
* **Versatile Choices:** Customize your investment strategy by selecting assets and pools aligned with your objectives and risk tolerance.
* **Complete Transparency:** Regularly audited, fully transparent, open-source codebase.


# Partners

Our valued partners play a crucial role in supporting and advancing our mission. We are proud to collaborate with industry leaders and innovators who share our vision for the future, such as:&#x20;

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td>Aave</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FbXqV2tItMzYPHvKRh00g%2Faave-docs.jpg?alt=media&amp;token=6a5e065a-d884-43f7-b6e6-cde0b6c3ba8d">aave-docs.jpg</a></td></tr><tr><td>Block Analitica</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FWbshe3MilP7HeJF4jCuc%2FHL2-2%20(1).jpg?alt=media&amp;token=9d96bf58-1ce5-4894-b475-2c1a0e61e1b3">HL2-2 (1).jpg</a></td></tr><tr><td>RedStone</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F8VariP78jD8n7mkIRFcb%2FHL2-5.jpg?alt=media&amp;token=818dee02-8b4f-4d54-88c7-6f1e721065c9">HL2-5.jpg</a></td></tr><tr><td>Pyth</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FjLNFi3WRmkZ7OqEvOFXZ%2FHL2-6.jpg?alt=media&amp;token=809f526b-7b2e-47d5-84df-d4bfec45ad92">HL2-6.jpg</a></td></tr><tr><td>Kinetiq</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F14A2Nvj6oMCQOWUKvFLu%2Fkinetiq.png?alt=media&amp;token=b0e5b2c5-23df-4f94-a4b0-785cdfca74ef">kinetiq.png</a></td></tr><tr><td>Hypernative</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FWtwBVLojRsQaSf4uo8Qc%2FHL2-3%20(1).jpg?alt=media&amp;token=652404fa-0447-4b5b-bd86-c46d4af46317">HL2-3 (1).jpg</a></td></tr><tr><td>Ackee Blockchain Security</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F2Db5tce4BufdRWjIfYfL%2FHL2-1%20(1).jpg?alt=media&amp;token=563fc6af-923e-4243-bcfe-7ee9aad279c8">HL2-1 (1).jpg</a></td></tr><tr><td>Cantina</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FHNOnJcLESodaLQtRGzDQ%2FHL2%20(1).jpg?alt=media&amp;token=ca3921ee-6d05-4289-bad3-01fcff8c8566">HL2 (1).jpg</a></td></tr><tr><td>Pashov Audit Group</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FD7kGaCz53ZGyTgS570aV%2FHL2-4%20(1).jpg?alt=media&amp;token=7438664e-98a9-4075-82e7-d6baf0e66d5c">HL2-4 (1).jpg</a></td></tr><tr><td>Chainlink</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FARzOzE8uD6vB7VYqfA6V%2FChainlink-partner.png?alt=media&amp;token=ba9c0d41-15f0-4338-bffd-d72e9b987508">Chainlink-partner.png</a></td></tr><tr><td>Circle</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FkdKNcQ2fBr05zcpQu8GW%2FCircle-partner.png?alt=media&amp;token=eeccfbb1-15f0-4d8a-95e5-33e2b69bbd3e">Circle-partner.png</a></td></tr><tr><td>Ethena</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FEuYjpYxZaiZ1PvOhVjET%2FEthena-partner.png?alt=media&amp;token=6495f36c-840a-4887-8bf8-911011d44f3c">Ethena-partner.png</a></td></tr><tr><td>Hyperbeat</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FyXGsE89bsFSm4eLD6NW6%2FHyperbeat-partner.png?alt=media&amp;token=8bb0d2a0-2319-4754-a9ce-9b643873e981">Hyperbeat-partner.png</a></td></tr><tr><td>Looping Collective</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FdjsvPb0vgkdRPn2ahHTh%2FLoopingCollective-partner.png?alt=media&amp;token=59f8babe-6198-4a39-b382-9b3158477234">LoopingCollective-partner.png</a></td></tr><tr><td>Native Markets</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fx7HX0HcQkvk30uyCrnQs%2FNativeMarkets-partner.png?alt=media&amp;token=43e83682-1f9a-44f2-bc99-47dfe667e60d">NativeMarkets-partner.png</a></td></tr><tr><td>Unit</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FTdSQTht2OrVyrYcAkoth%2FUnit-partner.png?alt=media&amp;token=643be1e0-0e7f-41d2-9a7c-661982d87a86">Unit-partner.png</a></td></tr><tr><td>USDT0</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FInc4RwkWe7s9Nsquv2kz%2FUSDT0-partner.png?alt=media&amp;token=61d53d1a-4d40-44ba-92f1-f30cd0ed9ae5">USDT0-partner.png</a></td></tr><tr><td>Valantis</td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FAH1HZgujuStFumC8G2Mh%2FValantis-partner.png?alt=media&amp;token=76f811cc-9416-42f7-8462-a43aa8a458ac">Valantis-partner.png</a></td></tr></tbody></table>


# Audits & Risk

HyperLend maintains a security posture through high-tier audits, risk management, and constant real-time monitoring.

The codebase has been verified by three independent security reviews to ensure the safety of user funds and contract integrity: [Pashov Audit Group](https://x.com/PashovAuditGrp), [Ackee Blockchain](https://x.com/AckeeBlockchain) and a [Cantina Competition](https://x.com/cantinaxyz).

For ongoing economic stability, [Block Analitica](https://x.com/BlockAnalitica) manages active risk and collateral health, while [Blockworks Advisory](https://x.com/BlockworksAdv) provides strategic oversight for the overall health of the project. This is further reinforced by [Hypernative](https://x.com/HypernativeLabs), which provides 24/7 on-chain monitoring to detect and respond to real-time security threats.

{% hint style="info" %}

## All audit reports can be found here: <https://github.com/hyperlendx/audits/tree/master/hyperlend>

{% endhint %}


# Brand Kit

{% file src="/files/FqgrAk8CZxaa5aINieng" %}

{% file src="/files/xDg4OzJ1PjHN9D9Shko1" %}

{% file src="/files/kEjHMV7YpgiTuzc0llRe" %}


# How to HyperLend?

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>LEND</strong></td><td>How to Lend on HyperLend?</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FzBOnYkb0ucAOY3MKwG03%2FLend%20(1).gif?alt=media&amp;token=9e68ea64-a519-4f55-a1aa-296571c75236">Lend (1).gif</a></td><td><a href="/how-to/how-to-hyperlend/how-to-lend-on-hyperlend">↪How to Lend on HyperLend</a></td></tr><tr><td><strong>BORROW</strong></td><td>How to Borrow on HyperLend?</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FvhTz700sD5CrYDh4zxCV%2FBorrow.gif?alt=media&amp;token=49639de8-2d0a-40f2-be70-aea2af7303d5">Borrow.gif</a></td><td><a href="/how-to/how-to-hyperlend/how-to-borrow-from-hyperlend">↪ How to Borrow from HyperLend</a></td></tr><tr><td><strong>LOOPING</strong></td><td>How to Loop on HyperLend?</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fsam5n5umTAYjekErQ4gL%2Floop.gif?alt=media&amp;token=43699509-510e-4377-a8d3-ba62ce81e8f5">loop.gif</a></td><td><a href="/how-to/how-to-hyperlend/how-to-hyperloop">↪ How to HyperLoop</a></td></tr><tr><td><strong>REFER</strong></td><td>How to Refer a Friend?</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F9XBcDXn5kAE8nC2NdGgM%2FRefferal.gif?alt=media&amp;token=0e419074-0ca1-4c11-9e6e-11eb8241b621">Refferal.gif</a></td><td><a href="/how-to/how-to-hyperlend/how-to-refer-on-hyperlend">↪ How to Refer on HyperLend</a></td></tr><tr><td><strong>SHARE</strong></td><td>How to Share your Yield in Style!</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F7a9N937nLa4V6f3T4ovs%2FShare.gif?alt=media&amp;token=ea808c08-ddbc-45d2-95ad-4289aed7bf22">Share.gif</a></td><td><a href="/how-to/how-to-hyperlend/how-to-share-your-yield-in-style">↪ How to Share your Yield in Style</a></td></tr><tr><td><strong>GOVERNANCE</strong></td><td>How to Create a Proposal</td><td></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FOFZlTCQUeLmFXeIQUuqE%2FGovernance.gif?alt=media&amp;token=74345e54-8478-433d-adec-355e761804fb">Governance.gif</a></td><td><a href="broken://pages/bn6Ms0qpHJAX1GsgV916">Broken link</a></td></tr></tbody></table>


# ↪How to Lend on HyperLend

### Steps to Lend on core markets <a href="#steps-to-lend-on-core-markets" id="steps-to-lend-on-core-markets"></a>

1. Navigate to the "Markets- Core Markets" section of the HyperLend platform.
2. Choose the asset you wish to supply and click on "Supply”&#x20;
3. Specify the amount you intend to supply and submit your transaction.
4. If you opt for the Collateral button on- this means that you will be able to borrow against your supplied assets.

{% hint style="info" %}
Note: The initial supply of an asset requires an additional approval transaction.
{% endhint %}

5. Once your transaction is confirmed, your supply is successfully registered, and you begin earning interest immediately.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Feq5vsACvzsmrNrdsDK4F%2Fcore%20markets.png?alt=media&amp;token=ff23a8d6-7f5a-44c3-810a-17355869369a" alt=""><figcaption></figcaption></figure>

***

#### **Collateral Management** <a href="#collateral-management" id="collateral-management"></a>

**↝ Opting Out of Collateral**

After supplying assets, you can opt out of using them as collateral. This option is available in the "Supply" section of your core markets dashboard. Toggle the "use as collateral" button off for the specific asset you wish to exclude from collateral use.

You can withdraw assets without opting out, provided they are not actively used for borrowing and their withdrawal does not trigger a liquidation or Health Factor decrease of your loans.

***

### • Steps to Lend on Isolated markets <a href="#steps-to-lend-on-isolated-markets" id="steps-to-lend-on-isolated-markets"></a>

1. Navigate to the "Markets- Isolated Markets" section of the HyperLend platform.
2. Choose the asset pair you wish to supply and click on it to enter the sub-menu
3. On the right, next to supply specify the amount you intend to supply and submit your transaction.

{% hint style="info" %}
Note: The initial supply of an asset requires an additional approval transaction.
{% endhint %}

1. Once your transaction is confirmed, your supply is successfully registered, and you begin earning interest immediately.

{% hint style="info" %}
Note: If you opt-in the toggle to supply collateral and supply collateral to an isolated pool, you are not earning any interest, but are able to borrow against the collateral supplied to that specific pool.
{% endhint %}

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FytlPRojrRJxCXJ0wJM8m%2FSupply.png?alt=media&amp;token=b06ee2b0-7954-4e49-a16d-e8624a583bcc" alt=""><figcaption></figcaption></figure>

***

#### ↝ Earnings and Interest Rates <a href="#earnings-and-interest-rates" id="earnings-and-interest-rates"></a>

* **Interest Rate Earnings**: Earnings are derived from the interest paid by borrowers. Suppliers receive a share of these payments based on the average borrow rate multiplied by the utilization rate. Higher reserve utilization results in higher yields for suppliers.
* **Flash Loan Fees**: Suppliers also earn a portion of the Flash Loan fees, which are currently set at 0.04% of the Flash Loan volume.

Earnings and interest rate **earnings are accrued in each block, in the form of supplied assets**.

Each asset on HyperLend has its own market dynamics, influencing its Annual Percentage Yield (APY). The average annual rate over the past 1/7/30 days [is available ](https://hyperlend.blockanalitica.com/)for evaluating rate trends, and additional data can be accessed in the reserve overview section of the platform.

#### ↝ Minimum and Maximum Supply <a href="#minimum-and-maximum-supply" id="minimum-and-maximum-supply"></a>

* There is no minimum amount required to supply. However, it is prudent to consider transaction costs, as they may exceed the earnings for very low supply amounts.
* HyperLend employs a supply cap parameter, which is governed by HyperLend Governance. This cap limits the total amount of an asset that can be supplied.

#### ↝Withdrawal Process <a href="#withdrawal-process" id="withdrawal-process"></a>

**Steps to Withdraw**

1. Access the "**Markets -> Click on desired asset**" section and select "**Withdraw**."
2. Choose the **amount you wish to withdraw** and submit the transaction.

*You can use your supplied assets as liquidity without withdrawing. Ensure **sufficient liquidity** is available (i.e., not borrowed by others) to complete a withdrawal. If liquidity is insufficient, you must wait for more supply or borrower repayments.*

***

By following these guidelines, you can effectively manage your supplies, earnings, and collateral on HyperLend, ensuring a **streamlined and efficient experience** on the platform.


# ↪ How to Borrow from HyperLend

### Why Borrow Instead of Selling Your Assets? <a href="#why-borrow-instead-of-selling-your-assets" id="why-borrow-instead-of-selling-your-assets"></a>

#### ↝ Advantages of Borrowing <a href="#advantages-of-borrowing" id="advantages-of-borrowing"></a>

* **Liquidity**: Borrowing provides liquidity (working capital) without selling your assets.
* **Asset Appreciation**: By keeping your assets, you can still benefit from any potential increase in their value.
* **Financial Flexibility**: Users typically borrow for unexpected expenses, leveraging holdings, or pursuing new investment opportunities.

***

### • How to Borrow <a href="#how-to-borrow" id="how-to-borrow"></a>

#### **↝ Steps to Borrow** <a href="#steps-to-borrow" id="steps-to-borrow"></a>

1. Supply any asset to be used as collateral (refer to the "[*How to Lend*](https://docs.google.com/document/d/1iRYNakiJCs4GZfHuze9hJebrFMaKrpX3kYmX_dMTh7o/edit?tab=t.m0ckjwj8j4vn#heading=h.e33kncb6bibh)" section for more information).
2. Navigate to the "**Borrow**" section and select the asset you wish to borrow.
3. Set the **desired amount** based on your available collateral.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FhEEu7s1kMgONiigP1DPI%2FBorrow-Dashboard%20pop%20up.png?alt=media&amp;token=1b40fb7c-e7ba-4967-b16f-b8cfbb762f0a" alt="" width="309"><figcaption></figcaption></figure>

#### **↝ Borrowing Limits** <a href="#borrowing-limits" id="borrowing-limits"></a>

* The maximum borrow amount depends on the **value of your supplied assets** and the **available liquidity**.
* You cannot borrow more than the available liquidity or beyond what your **health factor allows**.
* Check the **risk parameters section** for details on collateral requirements and specific borrowing limits.

#### **↝ Repayment Details** <a href="#repayment-details" id="repayment-details"></a>

* Loans must be repaid in the **same asset** that was borrowed. For example, if you borrow 1 ETH, you repay 1 ETH plus any accrued interest.

You can also **repay your debt using collateral directly.** To do this:

1. Toggle on the “Repay with Collateral” option.
2. Select the collateral asset you wish to use for repayment.
3. Choose the desired amount and proceed with the repayment.

This method allows you to reduce your debt without needing to withdraw or swap assets manually.

#### **↝ Interest Rate** <a href="#interest-rate" id="interest-rate"></a>

* **Variable Rate**: Fluctuates based on **market conditions** and the **supply-demand ratio** for the asset. This rate can change over time.

**Interest Rate Payments**: The borrowing rate for users is variable for each asset. This rate is determined by the asset's supply and demand dynamics, based on the specific Interest Rate Models applied to that asset.

*Interest rate payments are accrued in each block, in the form of borrowed assets.*

**Flash Loan Fees**: Flash Loan takers pay a fee, which is currently set at 0.04% of the Flash Loan volume.

*You can view your current borrowing rate in the Borrowings section of your dashboard.*

#### **↝ Health Factor** <a href="#health-factor" id="health-factor"></a>

* The health factor measures the **safety** of your deposited assets against your borrowed assets.
* A higher health factor indicates a **safer position**.
* If the health factor drops to 1 or below, **liquidation** of your deposits will occur.
* Detailed information on collateral parameters and health factor calculations can be found in the **risk parameters section**.

**Impact of Health Factor Changes**

* Fluctuations in the value of your supplied assets will affect your health factor.
  * An **increased health factor** improves your borrow position, reducing liquidation risk.
  * A **decreased health factor** increases the risk of liquidation.

{% hint style="info" %}
For **safety reasons**, the default UI only allows borrowing or withdrawing up to the point where your health factor remains at or above 1.2
{% endhint %}

#### **↝** Danger Zone Mode <a href="#danger-zone-mode" id="danger-zone-mode"></a>

* Users can manually enable "**Danger Zone Mode**" to override safety threshold and borrow or withdraw more, even if the health factor falls below 1.2.

To activate Danger Zone mode, navigate to your dashboard and select "*Settings*" from the top-right corner. Simply toggle the switch to "*On*" to enable it.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Ff6rdDVZH6YxgDXCxwxn6%2FSettings.png?alt=media&amp;token=f4120827-f74f-4bc8-a8db-c1073e1de4c8" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
Users must **use this with caution**-overextending can drop your health factor below 1 and **lead to self-liquidation.**
{% endhint %}

### Loan Repayment <a href="#loan-repayment" id="loan-repayment"></a>

#### **↝ When to Repay** <a href="#when-to-repay" id="when-to-repay"></a>

* There is no **fixed period** for loan repayment. You can borrow for an indefinite period as long as your position remains safe.
* Over time, accrued interest will reduce your health factor, potentially increasing the risk of liquidation.

**↝How to Repay**

1. Go to the Borrowings section of your dashboard and select the repay option for the borrowed asset.
2. Choose the amount to repay and confirm the transaction.

### • Avoiding Liquidation <a href="#avoiding-liquidation" id="avoiding-liquidation"></a>

#### **↝ Strategies to Prevent Liquidation** <a href="#strategies-to-prevent-liquidation" id="strategies-to-prevent-liquidation"></a>

* **Repay the loan** to improve your health factor.
* **Deposit more assets** to increase your collateral value.

#### **Liquidation guard** <a href="#liquidation-guard" id="liquidation-guard"></a>

Liquidation Guard is an opt-in **safety mechanism** designed to protect your positions from forced liquidation. When your account’s Health Factor drops below a predefined threshold, the system **automatically attempts to repay** a portion of your debt- effectively "**rescuing**" the account before third-party liquidators can intervene.

{% hint style="info" %}
Disclaimer: While Liquidation Guard is built to provide an extra layer of security, execution is not guaranteed. Success remains subject to prevailing market conditions and liquidity.
{% endhint %}

**Configuration Guide**

Click on the guard icon on your dashboard and toggle liquidation guard on.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F0eGAGSSFzZVCniNruTsy%2FLiquidation%20Guard.png?alt=media&amp;token=0a2b13ea-d9c1-458e-9d79-6e369b65f13d" alt="" width="375"><figcaption></figcaption></figure>

To set up your protection, you must configure the following parameters:

**1. Health Factor Threshold**

* Use the slider to determine the point at which the Guard activates.

Recommendation: For a moderate risk profile, it is suggested to set the threshold between 1.1 and 1.3 HF.

**2. Asset Caps (Set the Cap)**

* You can precisely control **which assets are used to repay** your debt and in what quantities.
* **Set the Cap:** Manually enter a specific limit for each asset. This is the maximum amount of that particular token the Guard is authorized to pull from your wallet to cover your debt.

**3. Dynamic Max**

* For more flexible protection, you can enable the Dynamic Max toggle for specific assets.
* Enabling this gives Liquidation Guard **permission to use your entire available wallet** balance for that asset to repay debt. This ensures the maximum possible "rescue" attempt if a fixed cap would otherwise be insufficient.

***

By following these guidelines, you can manage your borrowings effectively on HyperLend, ensuring **liquidity** while maintaining the potential for **asset value appreciation**.


# ↪ How to HyperLoop

**Earn up to 2x your staking yield with stHYPE or kHYPE — automatically.**

Looping is a yield-maximizing strategy compounding your exposure and returns automatically.

**HyperLoop** lets you open a leveraged loop position using any two tokens: one is supplied, one is borrowed.

### **• How it works** <a href="#how-it-works" id="how-it-works"></a>

* **Yield asset**: The token you supply to earn interest or rewards.
* **Debt asset**: The token you borrow in the looped position, which accrues interest.

When you deposit, HyperLoop uses a flashloan to instantly build your leveraged position in a single transaction. It works like this:

1. A flashloan of the **debt asset** is taken.
2. That debt token is **swapped** into the **yield asset**.
3. The resulting **yield asset** is supplied as collateral.
4. The same **debt asset** is then borrowed against the new collateral.
5. The borrowed amount, along with your initial supplied funds, is used to **repay the flashloan** (since the collateral's LTV is less than 100%).

{% hint style="info" %}
Note: Each position is held in an isolated contract. Keep in mind that the HyperLoop position will be shown seperately on "Loop" section on your dashboard.
{% endhint %}

The entire process is completed atomically using flashloans- no manual steps or repeated cycles required- and incurs a **0.04% flashloan** **fee** on the amount used during the transaction.

### **• Steps to Loop** <a href="#steps-to-loop" id="steps-to-loop"></a>

1. **Navigate to the “Loop” section of the HyperLend platform.**
2. **Select your Yield Asset-** Choose stHYPE or kHYPE — both are liquid staking tokens for HYPE and will earn interest.
3. **Select your Debt Asset-** Set wHYPE as the debt asset. This is what you'll borrow to loop back into your yield position.
4. **Adjust Your Leverage-** Use the slider to set your desired leverage. Higher leverage means higher potential returns — and higher risk.
5. **Enter the Amount You Want to Loop-** Choose how much of your stHYPE or kHYPE to deposit into the strategy.
6. **Click “Open Position”-** HyperLend will automatically handle the looping process via Liquid Launch (aggregator).

Once your position is opened, it appears in the **“Your Positions”** section. From there, you can track your performance and make changes.

#### **↝ Managing Your Position** <a href="#managing-your-position" id="managing-your-position"></a>

* **Click “Modify”** next to your active position.
* You can **Add** more collateral or **Remove** some, adjusting your exposure dynamically without closing the loop.

**Big/Small Blocks:**

HyperLend utilizes Hyperliquid’s unique dual-block system, allowing users to choose between near-instant execution and high-capacity, lower-cost processing.

By default, HyperLoop transactions are routed through Small Blocks. To switch:

1. Navigate to HyperLoop section and scroll down.
2. Click on "Enable Big Blocks"> popup pops up> click on "Switch to Big Blocks" and confirm in your wallet
3. Your preferred block type has been successfully updated.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fs33NTF8GpEVMY4TTXEMl%2Fbig%20block2.png?alt=media&amp;token=b97faa40-25ca-4e43-8199-2ee6cd8ce9e4" alt=""><figcaption></figcaption></figure>

* Small blocks have a block time of 2 seconds and a gas limit of 2M gas. The expected gas price is 0.96 gwei.
* Big blocks have a block time of 60 seconds and a gas limit of 30M gas. The expected gas price is 0.1 gwei.

Switching will require 2 signatures (approving and removing an agent address).

#### **↝⚠️ Risk Considerations** <a href="#risk-considerations" id="risk-considerations"></a>

{% hint style="info" %}
Looping with leverage can boost your returns- but it introduces serious risks you must manage.
{% endhint %}

* **Liquidation Risk**: If the price of your collateral drops or your **Health Factor** falls too low, your position may be liquidated.
* **LST Depeg Risk**: Since you're swapping and looping between **HYPE** and its liquid staking derivatives (**stHYPE** or **kHYPE**), any **depeg** from the underlying HYPE value can put your position at risk. If stHYPE or kHYPE trades below its expected redemption value, it can cause unexpected losses and accelerate liquidation risk.
* **Leverage Risk**: Leveraging amplifies both your gains and your downside. A 3x position falls apart 3x faster in volatile markets.
* **Swap Impact**: The protocol performs swaps automatically to rebalance your loop. In thin markets or large positions, this can cause **price impact** and affect your final execution price.
* **Borrow Rate Volatility**: Borrow rates on wHYPE are dynamic and can spike with utilization. That can erode your net yield and flip your position negative.

**Always monitor your Health Factor and price relationships between HYPE and its LSTs.** Stay well within your risk tolerance and adjust your position proactively when needed.


# ↪ How to Refer on HyperLend

### **Steps to Refer** <a href="#steps-to-refer" id="steps-to-refer"></a>

#### Connect Your Wallet <a href="#connect-your-wallet" id="connect-your-wallet"></a>

* Navigate to the **Referrals** section on the dashboard and click **Connect** to link your wallet.

#### Create Your Unique Referral Name <a href="#create-your-unique-referral-name" id="create-your-unique-referral-name"></a>

* Enter a personalized referral name in the provided field.
* Ensure it’s unique and memorable to share easily.
* Click **Save** to finalize your referral name.

#### Share Your Referral Link <a href="#share-your-referral-link" id="share-your-referral-link"></a>

* Share the generated referral link with your network.
* Your link automatically tracks referred users for rewards.

#### Track Your Referrals <a href="#track-your-referrals" id="track-your-referrals"></a>

* Visit the **Referrals** section to monitor the number of referrals and your earned rewards.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F9nqczavxgsIkW3vZEaZH%2FReferrals2.png?alt=media&amp;token=05e2cb19-f094-4075-884b-b69d42d68fde" alt=""><figcaption></figcaption></figure>

***

HyperLend's referral system makes it easy to invite others while earning rewards for growing the community. Start now and make the most of your network!


# ↪ How to Stake HPL

1. You will need HPL in your Spot Balance on HyperEVM (if you hold HPL in HyperCore you can use our bridge to bridge it to HyperEVM).
2. Go to: <https://app.hyperlend.finance/staking>

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FyjPVuEByBZL6r0ZAg6EV%2FStake.png?alt=media&amp;token=1f94e426-f169-46cd-a0f9-786349325dbb" alt="" width="375"><figcaption></figcaption></figure>

1. Choose the amount you'd like to stake.
2. Stake and approve in your wallet

{% hint style="info" %}
Staking thas no lockup period.
{% endhint %}

To unstake, follow the same process in reverse

1. Navigate to the unstake
2. Choose the amount you'd like to ustake.
3. Unstake and approve in your wallet

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FpOsigXeWXCiTHF8jiL8G%2Funstake.png?alt=media&amp;token=7cb22e9d-ec7f-4b9b-a2be-c33c579e02a2" alt="" width="375"><figcaption></figcaption></figure>

For further information about borrowing discounts and staking you can refer to the [Staking](https://hyperlendnotstaging.gitbook.io/notstaging/DDsbEDiCKODk1pFG9mPe/protocol-architecture/staking) section.


# ↪ How to Share your Yield in Style

**Why Share Your Yield?**

↝ **Advantages of Sharing**

* **Showcase Your Success**: Display your earnings and APY to inspire others.
* **Earn Referrals**: Boost your rewards by sharing your personalized referral link embedded in the graphic.
* **Community Engagement**: Join the HyperLend community by sharing your unique designs.

***

**How to Share Your Yield**

↝ **Steps to Create and Share Graphics**

#### Access the Share Feature <a href="#access-the-share-feature" id="access-the-share-feature"></a>

* Go to the **Markets** section, select your supplied asset, and click the **Share** button in the bottom right.

<figure><img src="https://hyperlendnotstaging.gitbook.io/notstaging/DDsbEDiCKODk1pFG9mPe/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FmUCJaqeE7OrRjdsphXwY%2Fblobs%2FfEyeN4oMsOojWfqDONNB%2Fimage&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=d4bde7cf&#x26;sv=2" alt=""><figcaption></figcaption></figure>

#### Customize Your Graphic <a href="#customize-your-graphic" id="customize-your-graphic"></a>

1. **Choose a Design**: Select from four stylish graphics to match your vibe.
2. **Add Your Twitter Username**: Enter your handle to personalize the design.
3. **Profile Picture Option**: Toggle on/off to include your Twitter profile picture.

#### Preview Your Design <a href="#preview-your-design" id="preview-your-design"></a>

* Verify your earnings, APY, and personalization are displayed correctly.

#### Share or Download <a href="#share-or-download" id="share-or-download"></a>

* **Share**: Instantly post on social media platforms.
* **Download Image**: Save the graphic for manual sharing.

Start sharing your yield today and join the vibrant HyperLend community!

<figure><img src="https://hyperlendnotstaging.gitbook.io/notstaging/DDsbEDiCKODk1pFG9mPe/~gitbook/image?url=https%3A%2F%2Fcontent.gitbook.com%2Fcontent%2FmUCJaqeE7OrRjdsphXwY%2Fblobs%2FRdCbJOompsw10YG7skAR%2Fimage&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=3503ff75&#x26;sv=2" alt=""><figcaption></figcaption></figure>


# Add to Home Screen (Mobile App)

Track your positions on the go — no app store needed.

This feature was built so you can **see your personal wallet positions anytime**, directly from your phone.

**How to set it up:**

1. Click the mobile app button in the bottom-right corner
2. Scan the QR code with your phone
3. Tap “Add to Home Screen” when prompted

You can view a simple video guide [here](https://x.com/hyperlendx/status/1914016238163870088).

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fwvtpxr57xOD8nD0yjch0%2Fimage_2026-03-20_12-14-08.png?alt=media&amp;token=dc1e534b-78ba-45fe-8365-95928c3ce278" alt=""><figcaption></figcaption></figure>


# Architecture

HyperLend's design centers around a **lending pool** where users can **deposit and borrow cryptocurrency**. The platform employs an **algorithm** to set **interest rates** based on **supply and demand**, ensuring **competitive rates**. It also offers **flash loans**, allowing users to borrow funds **without collateral** for **short-term needs**. **Security** is a top priority, with all **smart contracts audited by third parties** to **protect user funds**.

HyperLend is a [friendly fork](https://governance.aave.com/t/arfc-recognize-hyperlend-as-a-friendly-fork/21129) of [Aave v3.6](https://github.com/hyperlendx/hyperlend-core/tree/v3.6.0).

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FCxjRxmYR5s9RIZzQxea7%2FHyperLend%20User%20(1500%20x%201500%20px)-3.png?alt=media&amp;token=399f98f3-aa3c-44e6-b4fe-8aaacda6f903" alt=""><figcaption></figcaption></figure>

### Core Components <a href="#core-components" id="core-components"></a>

**• Core Pools**

Core Pools are the lending pools that allow the supplying or borrowing of multiple tokens in a single pool. This increases the capital efficiency, but also the risk, since if one of the assets in the pool fails (e.g. market manipulation, infinite mint exploits...), the entire pool is at risk.

***

**• E-mode (Efficiency Mode):**

E-mode allows users to borrow with higher LTV when both the collateral and borrowed assets are from the same correlated category, such as stablecoins or staking derivatives. It increases capital efficiency while keeping risk isolated. When enabled, borrowing and supplying are restricted to assets within that category.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FcUCusrs0hxEIJWCxd1NS%2Fe-mode.png?alt=media&amp;token=ba06a7f0-c2b6-44f8-b659-8ad01e87e702" alt=""><figcaption></figcaption></figure>

***

**• Isolated Pools**

Isolated Pools isolate the risk since each market only consists of 2 tokens, one that can be used as collateral and one that can be borrowed.


# Risks

As with all DeFi platforms, there are certain risks associated with using HyperLend, and users should be aware of them before engaging with our platform. We strive to protect user assets to the best of our abilities, but no system is completely safe.

***

**• Smart Contract Risk**

Our smart contracts have undergone **rigorous auditing processes** conducted by reputable auditors, including Cantina, Ackee Blockchain and Pashov Audit Group (Everything can be seen [here](https://hyperlend.finance/security)). We will also provide a **bug-bounty program**, available at [Github](https://github.com/hyperlendx/bug-bounty). While these audits significantly mitigate risks, residual vulnerabilities may persist despite our best efforts to eliminate them entirely. Additionally, our smart contract will undergo extensive **"battle-testing"** through prolonged periods of both **test-net and real-world deployment** and a high volume of transactions. This phase aims to mature the code by exposing it to various scenarios and interactions, thereby refining its **reliability and security**.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FgRm3bq4N2dHxQ3yktYnl%2Fphoto_2024-11-09%2016.15.20.jpeg?alt=media&amp;token=64335a85-4db4-4dac-a721-cba66ac44b7a" alt=""><figcaption></figcaption></figure>

***

### • **Market and Volatility Risk**

Since HyperLend allows the **borrowing and lending of volatile tokens**, there is always a market risk. The most common risk is a **rapid devaluation of an asset** used as collateral. If the protocol is unable to liquidate unhealthy loans, it will result in **bad debt** (a situation where the market value of total debt is greater than the value of collateral, making the protocol insolvent).

To mitigate this risk, we carefully consider which assets to list, considering both **on-chain (DEX)** and **off-chain (CEX, OTC) liquidity**.

We are working with [Block Analitica](https://blockanalitica.com/) to provide comprehensive risk assessments, collateral onboarding, dynamic parameter management, and continuous market monitoring.

We are also working with [Hypernative](https://www.hypernative.io/) to provide real-time monitoring and incident response, mitigating threats before they happen with automated detection and onchain actions.


# Liquidations

**• Overview**

Each account's health on HyperLend is determined by a single value known as the **health factor**. This figure summarizes how well your portfolio is collateralized, effectively measuring its overall health.

$$
H\_f = \frac{\sum \text{Collateral}\_i \text{ in ETH} \times \text{Liquidation Threshold}\_i}{\text{Total Borrows in ETH}}
$$

***

### • **Liquidation**

**Liquidation** occurs when a borrower's health factor falls below 1, indicating that their **collateral value** no longer sufficiently covers their **loan/debt value**. This situation can arise if the collateral decreases in value or the borrowed debt increases in value relative to each other. During a liquidation, a portion or entirety of the borrower's debt is repaid, and this amount plus a **liquidation fee** is deducted from the available collateral. Consequently, the liquidated debt portion is repaid.

For debt positions under 2000 USD or when HF is under 0.95, the entire debt can be liquidated, while for positions above 2000 USD with HF between 0.95 and 1, only 50% can be liquidated. This is intended to prevent accumulation of small dust positions where liquidation bonus wouldn't cover gas costs, making liquidation unprofitable (which could lead to bad debt for the protocol).

***

**• Liquidation Penalty**

The **liquidation penalty**, or bonus for liquidators, varies based on the collateral asset. You can find the liquidation fee for each asset in the risk parameters section. For example, Joe deposits 5 ETH (when ETH is worth 1000 USDC) and borrows 4000 USDC. The next day, ETH value falls to $810, at which point Joe's health factor falls below 1. Since it's now below the liquidation threshold, a liquidator can repay the 4000 USDC loan and claim the 5 ETH (worth 4050 USDC, which they can immediately sell for a profit).

***

**• Avoiding Liquidation**

To **prevent liquidation**, you can improve your health factor by depositing more collateral assets or repaying part of your loan. Generally, **repayments** boost your health factor more significantly than deposits. It's crucial to monitor your health factor and maintain it at a high level to avoid liquidation. For instance, keeping your health factor above 2 provides a greater margin of safety.

***

**• Becoming a Liquidator**

Liquidations on HyperLend are open to anyone. If you spot an under-collateralized position, you can repay part of the borrower’s debt and claim a portion of their collateral at a discount — no whitelisting, no permissions. Whether you're running a custom keeper or just getting started, it's all composable.

* **Example Bot**: [github.com/hyperlendx/liquidator](https://github.com/hyperlendx/liquidator) – a reference Rust bot that monitors positions and executes profitable liquidations.
* **Developer Docs**: The core entry point for liquidations is the [`liquidationCall()`](https://docs.hyperlend.finance/developer-documentation/core-pools/pool) function. Review the ABI, required parameters, and operational flow here.
* HyperLend uses RedStone OEV price feeds: <https://docs.redstone.finance/docs/oev/integration/>

***

#### Liquidation Strategies & Cross-Chain Execution <a href="#liquidation-strategies-and-cross-chain-execution" id="liquidation-strategies-and-cross-chain-execution"></a>

**1. Onchain Flash Loan + DEX Liquidation (HyperEVM-native)**

* Execute full liquidation atomically in one EVM transaction.
* Ideal for low-latency trades with sufficient onchain liquidity.
* Uses a flash loan to repay the borrow, sells collateral via DEX, and captures the bonus.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FOdCThAJHf1GWAagc3wU1%2F1%20strat.png?alt=media&amp;token=7d6bc3d2-cf3b-40e6-9004-bc02821e09a5" alt=""><figcaption></figcaption></figure>

A traditional DEX liquidity based liquidation

**2. Upfront Capital + Orderbook Exit (Cross-Chain)**

* Liquidator uses own capital to repay debt on HyperEVM.
* Collateral is bridged to HyperCore and sold via the deeper L1 orderbook.
* Favored for assets like uBTC or uETH where orderbook liquidity is superior.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FMJ75WV7dbcqWGwzObtU0%2F2%20strat.png?alt=media&amp;token=91bd02c0-4f75-4526-998b-41b8d58d0483" alt=""><figcaption></figcaption></figure>

Liquidation based on paying debt token upfront without bridging

**3. Debt Bridging + Orderbook Liquidation**

* Liquidator bridges debt token from Core → EVM, repays loan, acquires collateral.
* Collateral is bridged back to Core and sold on the orderbook.
* This is the **default strategy** assumed for protocol parameter tuning.
* Higher latency and price risk but aligns with real-world liquidator setups.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fw7ki6a6EFDnI2dbvllmn%2F3strat.png?alt=media&amp;token=dee9261d-fd3f-4b0f-ba22-2b51c9ec6e6b" alt=""><figcaption></figcaption></figure>

Liquidation based on paying debt and selling collateral completely via orderbook

**Guidance for Liquidators:**

Liquidators interacting with Hyperlend should be aware of the multiple viable strategies for executing liquidations, depending on their liquidity profile and desired execution venue. If operating natively on HyperEVM, liquidations can be performed atomically using flash loans, repaying debt and liquidating collateral via DEXs in a single transaction. Alternatively, if capital is concentrated on HyperCore, liquidators may bridge tokens to HyperEVM using the `spotSend` mechanism—ensuring the token is properly linked—then repay debt, obtain collateral, and bridge assets back to HyperCore for sale on a deeper L1 orderbook. When bridging from EVM to Core, ERC20 transfers should be directed to the system address of the linked token contract. Note that fungibility between Core and EVM spot assets is not always guaranteed; liquidators must refer to system caveats to assess slippage or market divergence risks during cross-chain transfers.


# Oracle

We use *the industry standard* [Chainlink](https://x.com/chainlink) and  [RedStone](https://x.com/redstone_defi) oracles as our primary oracle providers.&#x20;

You can find the list of oracle adapter contracts [here](/developer-documentation/contract-addresses).

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F0gvbgzqk7RSxbvMRVlPj%2FTwitter%20post%20-%2044.png?alt=media&amp;token=2cdcde77-c7d7-4675-a6e8-e556898829d6" alt=""><figcaption></figcaption></figure>


# Fees and Yield

### Fees <a href="#fees-and-yield" id="fees-and-yield"></a>

HyperLend charges **three types of fees**:

* **Reserve factor**: Part of the interest paid by borrowers goes to the **insurance fund and treasury**.
* **Liquidation fees**: When a position is liquidated, a portion of the **liquidation bonus** is paid to the treasury.
* **Flash-loan fees**: A small **0.04% fee** for utilizing flash loans.
* **Deposits & Withdrawals: ZERO FEES**

***

### Yield

HyperLend offers **dynamic and competitive yield rates** for lenders. **Interest rates** are determined by supply and demand within the liquidity pool, with higher demand resulting in higher returns. Additionally, **E-Mode** in Core Pools enhances capital efficiency for assets with correlated prices, maximizing **yield opportunities**.

We also offer fixed private credit through our private line, **Aviya**. We launched this first in partnership with Hyperion; read the announcement [here](https://ir.hyperiondefi.com/news-events/press-releases/detail/304/hyperion-defi-announces-private-lending-pool-built-by-hyperlend).


# Tokenization

**• hToken**

**hToken** represents a **tokenized supply position**, functioning as a **yield-bearing ERC-20 token**. These tokens are minted when assets are deposited into the Pool and are burned when the underlying assets are redeemed.

***

**• DebtToken**

**DebtTokens** are **non-transferrable interest-accruing tokenized debt positions**. These tokens represent the debt incurred by users and accumulate interest over time.


# Staking

Leverage your HPL by staking to earn rebates on your borrowing costs.

### Staking Mechanism: HPL to sHPL <a href="#staking-mechanism-hpl-to-shpl" id="staking-mechanism-hpl-to-shpl"></a>

Users stake their **HPL** tokens and receive **sHPL** (staked HPL) on the HyperEVM. This system is designed for maximum liquidity, meaning there is no rigid lock-up period and users are free to unstake or swap their sHPL back to HPL at any time. Beyond simple possession, holding sHPL provides immediate utility by automatically qualifying the user for the Rebate Program.

Staking Contract: [0x09B2236327D76FCd9E4B72Db70a6608C21A94292](https://hyperevmscan.io/address/0x09b2236327d76fcd9e4b72db70a6608c21a94292)

{% hint style="info" %}
**To participate in the program and begin earning rewards, a minimum stake of 10,000 HPL tokens is required before the borrow portion of the formula comes into effect (if stake is under 10,000,** α **= 0).**
{% endhint %}

### The Rebate Program <a href="#the-rebate-program" id="the-rebate-program"></a>

**How it works:**

* **Accrual:** A percentage of your borrow costs is calculated as a rebate every day.
* **Accumulation:** These rebates stack over time.
* **Claiming:** The **"Claim"** button becomes visible once your accumulated rebate reaches at least **$0.10**.
* **Distribution:** Rebates are claimable once a week.

**Rebate Formula**

The rebate percentage is determined by a combination of your borrowing activity and your staking volume.&#x20;

The actual rebate amount is calculated based on the Reserve Factor (portion of the interest paid to the treasury) for assets you are borrowing (20% of interest paid for most assets; actual data can be viewed on the Markets page).

$$
\text{Rebate %} = \min \left( \text{MAX DISCOUNT}, \alpha \cdot \left( \frac{\text{borrowed amount}}{\text{Bmax}} \right)^{\gamma} + \beta \cdot \left( \frac{S \cdot L\_t}{\text{Smax}} \right)^{\gamma} \right)
$$

|                 |      |                                                           |
| --------------- | ---- | --------------------------------------------------------- |
| α               | 0.6  | Controls borrow weight, concave                           |
| β               | 0.4  | Controls staking weight, concave and additive to borrow   |
| γ               | 0.6  | Controlos diminishing returns on staking and borrow power |
| Bmax            | 100M | Maximum borrow value                                      |
| Smax            | 7.2M | Maximum staking power (0.72% FDV staked)                  |
| Max Rebate      | 80%  | Max discount (%)                                          |
| borrowed amount | /    | Rolling 14-day average borrowed amount in USD             |

#### Staking Tiers <a href="#staking-tiers" id="staking-tiers"></a>

While the rebate formula is continuous (meaning every single HPL staked increases your return), our UI categorizes users into **six tiers** to provide a clear sense of progression.

<table><thead><tr><th>Tier</th><th>Required Staked HPL</th><th data-hidden></th></tr></thead><tbody><tr><td>Unranked</td><td>0</td><td></td></tr><tr><td>Tier One</td><td>75,000</td><td></td></tr><tr><td>Tier Two</td><td>300,000</td><td></td></tr><tr><td>Tier Three</td><td>750,000</td><td></td></tr><tr><td>Tier Four</td><td>1,500,000</td><td></td></tr><tr><td>Tier Five</td><td>3,000,000</td><td></td></tr><tr><td>Tier Six</td><td>7,200,000</td><td></td></tr></tbody></table>

{% hint style="info" %}
You can use our [**Tier Saving Projection**](https://app.hyperlend.finance/staking) tool to see and play with different scenarios to visualize how your staking and borrowing levels impact your total savings.
{% endhint %}


# Cap Automator

Since launch, supply and borrow caps have been managed by our risk team [@BlockAnalitica](https://twitter.com/BlockAnalitica).&#x20;

But as liquidity matured over time, the maximum possible caps were often larger than the on-chain demand (e.g., USDT0, at one point our largest stablecoin market, had a 95M supply cap, with only 10-15M actually supplied). While not inherently problematic, this creates unnecessary risk exposure in long-tail risk scenarios (as seen in cases like rsETH).

To address this, we adopted the on-chain **Cap Automator** contract (originally developed by [SparkLend](https://x.com/BlockAnalitica/status/1765395680833740892)), deployed at [0x01f550365b99aE5B76533241c5BA8255441BA312](https://hyperevmscan.io/address/0x01f550365b99aE5B76533241c5BA8255441BA312).&#x20;

Caps now expand based on demand, within predefined limits and rate controls:

* Under normal conditions, caps adjust automatically in line with usage (with limits and timers visible in the UI).
* During stressed conditions, automation can be paused to limit exposure

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FS7cuT7YOrWR1A87YK0WP%2Fslika.png?alt=media&amp;token=a00a4511-90c4-43e5-9611-08e2479b2f1c" alt=""><figcaption></figcaption></figure>


# Points

The HyperLend points program began with 24.3.2025, points are designed to reward users who actively contribute to the success of the protocol.

Points are distributed on a **weekly basis**, with the distribution formula remaining undisclosed. The calculation methodology is updated on a recurring basis to align with protocol priorities and growth strategies.

**HyperLend reserves the right to modify past point distributions at its sole discretion.**

The official points season ended on Oct 22 2025.

***


# Referrals

You can generate your personal referral code directly within the HyperLend app by opening the "Referrals" pop-up.

Share your referral link to invite other traders to HyperLend. The code matches the username you have set on the dashboard page: `https://app.hyperlend.finance/?ref=CODE`

Referral details and invited users are visible within the referrals pop-up.


# HyperLoop

**HyperLoop** lets you open a leveraged loop position using any two tokens: one is supplied, one is borrowed.

* **Yield asset**: The token you supply to earn interest or rewards.
* **Debt asset**: The token you borrow in the looped position, which accrues interest.

When you deposit, HyperLoop uses a flashloan to instantly build your leveraged position in a single transaction. It works like this:

1. A flashloan of the **debt asset** is taken.
2. That debt token is **swapped** into the **yield asset**.
3. The resulting **yield asset** is supplied as collateral.
4. The same **debt asset** is then borrowed against the new collateral.
5. The borrowed amount, along with your initial supplied funds, is used to **repay the flashloan** (since the collateral's LTV is less than 100%).

Note: Each position is held in an isolated contract, but any points earned still accrue to the user's main address. Please keep in mind that the HyperLoop position won't be shown on your dashboard page.

{% hint style="info" %}
The entire process is completed atomically using flashloans — no manual steps or repeated cycles required — and incurs a **0.04% flashloan** **fee** on the amount used during the transaction.
{% endhint %}


# Liquid Perpetual Positions

Liquid Perpetual Positions will be a financial service enabled by HyperLend.

It will allow you to open a leveraged position on the EVM while being able to use it as collateral in our isolated pools section.

At the begining you will be able to open a position with USDC (eventually other assets as well) which then transfers it to Hyperliquid L1 exchange, where it's used as a margin to open a futures position. Profits (or losses) + funding fees are accrued to the user.

To redeem the underlying USDC, shares are burned, a proportional portion of the position is closed and USDC is transferred back to the vault where it can be claimed.

`sharePrice = (perpPositionMargin + PnL + fundingFees) / totalShares`

If the futures position is losing money, the share price declines (and if the position is profitable, the share price increases).

**Behind the scene;** They are a type of ERC-4626 vaults that allows users to use their Hyperliquid perpetual futures positions as collateral on HyperLend.

***

### Yield-Bearing Perpetuals

**In short;** it means you will be earning yield by using your perpatual position as collateral (+funding fees).

? **How** - you open a position, get token shares in return representing that position and use it in our Isolated pools as collateral and then use that collateral in the ecosystem.

#### **Concrete Example with theoretical numbers:**

* Open a **2x leveraged BTC-perp** (for a total notional size of **2,000,000 USDC** using **1,000,000 USDC of margin**) for **1 month**.
* Over one month, your position generates a **profit of 150,000 USDC** and **40,000 USDC in funding fees** — raising your vault balance to **1,190,000 USDC**.
* **You put the token shares into our Isolated pools and borrow 200,000 USDC** (10% LTV) and **deposit that into a HLP (Hyperliquid Provider Vault)** earning \~20% APR, which yields **\~3,333 USDC** over the same period.
* **Total profit: 193,333 USDC** = 190,000 USDC (trade + funding gains) + 3,333 USDC (vault yield from borrowed capital)

> While holding a leveraged perp position, you used your token shares as collateral to earn an additional **3,333 USDC** without risking extra capital.

***

### **Use Cases:**

1. **Yield-on-Margin:** Profitable positions that users don’t want to touch (to avoid liquidation risk) can be borrowed against. Funds borrowed can earn yield elsewhere without adjusting the margin, capturing *additional yield*.
2. **Basis Trade Leverage:** Basis trades often hit a cap due to rebalancing and risk management, by looping capital from one leg (e.g. taking a loan against the long), you can amplify returns without disturbing hedged structure.
3. **Delta-Neutral Risk Transfer:** Liquidators or hedgers can **atomically buy a short position** to offset directional risk, perp positions as transferable tokens make them tradable in secondary venues—less reliance on on-book execution.
4. **MM Strategy Vaults:** Market makers could tokenise their perp inventory, retail-facing platforms or originators route trades to these tokenised perps instead of public book, vaults can be created to take part in order flow PnL from MMs.


# Borrow Against L1 Spot Positions

This section lets you borrow assets against your Hyperliquid L1 assets such as HYPE, USDT0, uBTC, all from one simple interface. Instead of selling your position, you can deposit your tokens as collateral and borrow directly against them, giving you access to instant liquidity while keeping your core holdings intact. **From depositing to borrowing, its all done in just a few clicks.**

{% hint style="info" %}
When you deposit your L1 collateral, it is bridged to the EVM layer to be used for borrowing. Once you borrow, the stablecoins (borrowed assets) are bridged back from the EVM to L1, making them immediately usable on Hyperliquid Core.
{% endhint %}

&#x20;[Watch the video here](https://x.com/hyperlendx/status/1929626448882463079) to see exactly how the borrowing interface works step-by-step.


# Liquid Hyperliquidity Provider (wHLP)

### Liquid Hyperliquidity Provider (wHLP) <a href="#liquid-hyperliquidity-provider-whlp" id="liquid-hyperliquidity-provider-whlp"></a>

The **Hyperliquid Provider Vault (HLP)** is a decentralized liquidity pool within Hyperliquid that allows users to deposit assets and collectively provide liquidity for trading. Participants earn yield from trading fees and share both profits and losses generated by trading activities.

**Why make it available as collateral?** - it enables capital efficiency by allowing depositors to borrow against their liquidity positions, maximizing their flexibility without needing to withdraw assets from the vault.

***

**How to make it available as collateral?**

<figure><img src="https://docs.hyperlend.finance/~gitbook/image?url=https%3A%2F%2F1293603927-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FtiRDTXWJIPq3DOCs3Vbb%252Fuploads%252FTxomJnN6P8oO5GRsUFym%252Fhlp.png%3Falt%3Dmedia%26token%3Dce6c6ca8-08d7-402f-b109-7d0759d91e1c&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=210c941b&#x26;sv=2" alt=""><figcaption></figcaption></figure>

Users deposit USDC into the vault, which then transfers it to Hyperliquid L1 exchange, where it's deposited into the HLP vault.

Vault shares (represented as ERC20 tokens) can then be used as collateral in Isolated Pools.

To redeem the underlying USDC, shares are burned, a proportional portion of the vault position is withdrawn and USDC is transferred back to the Liquid HLP vault where it can be claimed.

`sharePrice = totalHlpDepositBalance / totalShares`&#x20;

For more information on the *liquid* HLP vault: <https://x.com/hyperlendx/status/1866200186915266716>

***

**Example;**

Imagine you deposit **$10,000 USDC** into the Hyperliquid Provider Vault (HLP). In return, you receive tokenized shares representing your vault position (wHLP tokens). Currently, HLP offers an attractive yield of approximately **1.75% per month (\~23% annually)**, coupled with low volatility (annualized volatility of 17.89%) and strong risk-adjusted returns (Sharpe ratio of 2.89 lifetime, recently as high as 5.2).

**Because HLP shares are collateralizable, you can borrow and loop your position multiple times.**

* **Without loop:** Deposit into HLP → total exposure = **$10,000** *(Earning $175/month or $2,100/year)*
* **First loop:** Borrow $5,000 (50% LTV), deposit back into HLP → total exposure = **$15,000** *(Earning $262.50/month or $3,150/year)*
* **Second loop:** Borrow another $2,500 (50% of the $5,000), deposit again → total exposure = **$17,500** *(Earning $306/month or $3,672/year)*
* **Third loop:** Borrow another $1,250 → total exposure = **$18,750;** *(Earning $328/month or $3,936/year)*
* **Fourth loop:** Borrow another $625 → total exposure = **$19,375** *(Earning $339/month or* *$4,068/year)*
* **Fifth loop:** Borrow another $312.50 → total exposure = **$19,687.50** *(Earning $344/month or $4,128/year)*

These yield estimates are based on the historical performance analysis detailed [here](https://medium.com/@RyskyGeronimo/a-risk-return-analysis-of-hyperliquids-hlp-vault-7c164cd00a0d).

Please be aware that leveraging your position through looping inherently introduces **additional risks**, including increased exposure to liquidation risks if market conditions shift. Always manage your risk carefully and monitor positions closely when employing leveraged strategies.


# UTA // Portfolio-Margin

Through the Unified Trading Account (UTA), users can use their **idle balances as margin** across: HyperCore, HIP-3 markets and all builder-code exchange markets (e.g., Ventuals, pvp.trade, BasedApp) Everything runs through **one account** with shared collateral and unified risk management. Risk parameters (LTVs, caps, rate curves) are governed by [**Block Analitica**](https://blockanalitica.com/).

***

The HyperLend UTA stack provides the foundation for advanced margining across the Hyperliquid ecosystem:

* **Liquidation Guard:** Automatic safety net
* **One-Click Borrow/Repay:** Clean multi-asset flows
* **Collateral Swap:** Adjust collateral without closing positions
* **Read-Only Margin View:** Seamless dApp integrations

HyperLend unifies collateral, risk, and execution so users can trade efficiently across the entire Hyperliquid ecosystem.

***

If you're interested in adding **UTA-style functionality** to your product or integrating any of the features above, feel free to reach out to us directly on:

* **HyperLend Twitter (**[**X**](https://x.com/hyperlendx)**) or Ness' Twitter (**[**X**](https://x.com/0xNessus)**)**

We’ve also prepared a **simplified UI/UX template** that partners can use to understand exactly what needs to be showcased and how the integration flow should look. This makes the onboarding process fast, clear, and consistent.


# HyperTrack

The **HyperLend Alerts Bot** is designed to keep you updated on critical activities within your HyperLend account. With customizable alerts for health factors, borrow rates, and liquidations, you can track specific addresses and receive timely notifications straight to your Telegram. Whether you're monitoring transactions or managing risk thresholds, this bot makes it easy to stay informed and respond quickly to changes that matter most.

{% hint style="info" %}
We value your feedback, and any suggestions will be rewarded—just send us a DM on [Twitter](https://x.com/hyperlendx).
{% endhint %}


# Getting Started

#### 2. Getting Started

**Adding the Bot**

1. **Open Telegram**: Ensure you have Telegram installed on your device and are logged in to your account.
2. **Search for the HyperLend Tracking Bot**: In the search bar, type "@hypertrackbot" and look for the official bot.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FCQLIzjBiwDRKRDpPY8wS%2Fimage.png?alt=media&amp;token=cc0cebd5-f7fe-4a89-859a-68afcc0faf9a" alt=""><figcaption></figcaption></figure>

1. **Start the Bot**: Click on the bot and press the **Start** button at the bottom of the chat to initiate the bot. You’ll see a welcome message with a list of commands and features.
2. **Grant Permissions**: Some alerts may require you to enable notifications in your Telegram settings. Make sure notifications are turned on so you don’t miss any important alerts.

***

**Setting Up Alerts**

1. **Add an Address**: To start tracking an address, use the **Add Address** command from the bot's menu or type `/addaddress [address]` in the chat. This will add the address for transaction and health factor monitoring.
2. **Enable Specific Alerts**: Use the bot’s menu to configure different types of alerts:
   * **Liquidation Alerts**: Go to the **Liquidation Alerts** option to toggle liquidation notifications on or off.
   * **Borrow Rate Alerts**: Select **Borrow Rate** in the menu to set specific thresholds for borrow rate alerts.
   * **Health Factor Alerts**: Use **Health Factor** to receive notifications if the health factor of a tracked address reaches critical levels.
3. **View and Manage Subscriptions**: You can view all active alerts and tracked addresses by selecting the **View My Alerts** option in the menu. From here, you can also adjust or remove any alerts as needed.

***

**Need Help?**

If you run into any problems or have questions, feel free to send us a direct message on [Twitter](https://x.com/hyperlendx). We're here to help and will get back to you as soon as possible.

With these steps, you're ready to monitor your HyperLend activity and receive timely updates on key metrics.


# Bot Functions

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>WATCH ADDRESS</strong></td><td>Monitor wallet activity and stay updated in real-time.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/watch-address">↪ Watch Address</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FzlmCLuapvqu7Aqv0NJKu%2Ftrack%20wallets.gif?alt=media&amp;token=086cbe78-173e-47a0-a6ab-c54bc34d5767">track wallets.gif</a></td></tr><tr><td><strong>REMOVE ADDRESS</strong></td><td>Effortlessly delete tracked wallets from your list.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/remove-address">↪ Remove Address</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FkRmXGfSnFYkMWl0aviFz%2FRemove%20wallet.gif?alt=media&amp;token=0ceaa898-3a48-4406-96fe-dbae97fac032">Remove wallet.gif</a></td></tr><tr><td><strong>LIQUIDATIONS ALERT</strong></td><td>Get notified instantly when liquidation risks emerge.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/liquidations-alert">↪ Liquidations Alert</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FLD1FxUKgzJYgBvjExXMR%2Falerts.gif?alt=media&amp;token=a0bfac4f-bd2c-42ed-a4e0-54fe4191f335">alerts.gif</a></td></tr><tr><td><strong>HEALTH FACTOR</strong></td><td>Track the stability and safety of your collateral.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/health-factor">↪ Health Factor</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FWBy6JZ2Y3DdHu863o4x3%2Fhealth%20factor.gif?alt=media&amp;token=8ba1b9a0-ed84-49fd-95f8-c635e3c3f229">health factor.gif</a></td></tr><tr><td><strong>BORROW RATE</strong></td><td>Keep an eye on interest rates for optimal borrowing.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/borrow-rate">↪ Borrow Rate</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FZ75PWnEyc0JfHQjf4gpQ%2Fborrow%20rate.gif?alt=media&amp;token=78bbc108-8f6d-4195-adf6-3b497675efad">borrow rate.gif</a></td></tr><tr><td><strong>ADVANCED APPROACH</strong></td><td>Customize alerts and track insights tailored to your needs.</td><td></td><td><a href="/advanced-features/hypertrack/bot-functions/advanced-approach">↪ Advanced Approach</a></td><td><a href="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FtQCAyZgBOPHRBByuR5ax%2Fadvanced%20search.gif?alt=media&amp;token=d41df127-c4b5-4617-be0c-daa063d4827c">advanced search.gif</a></td></tr></tbody></table>


# ↪ Watch Address

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FUcQ0KiV8Ucimf05BszHD%2Fimage.png?alt=media&amp;token=810032e9-477e-4d3f-a3e4-cc9714443583" alt=""><figcaption></figcaption></figure>

***

Use this option to add an address for tracking. Once added, you’ll receive alerts for any relevant activities on that address, such as health factor changes and liquidation risks.

Here's the revised step-by-step guide for the "Watch Address" feature:

***

#### How to Use "Watch Address"

1. **Access the Feature**:
   * Click on the **"Watch Address"** button in the bot interface. This will initiate the process to monitor a specific wallet address.
2. **Input Details**:
   * The bot will prompt you to enter the name and address you want to monitor for transactions.
   * You’ll see a helpful message with an example: **JohnDoe 0x123...abc**. Use this format when entering your information.
   * Type in the name you wish to assign to the address and then the wallet address itself. For example, input `testing 0xB6D69449d5EEb5c7a6490d30cE9a71e34EDB933`.
3. **Receive Confirmation**:
   * After you submit the details, the bot will activate transaction monitoring for the address and display a confirmation message.
   * The message will confirm that monitoring has been activated and will include:
     * The name you assigned to the address.
     * The wallet address being monitored.
   * You’ll now receive alerts for all transactions related to this address, ensuring you are promptly informed of any activity.

***


# ↪ Remove Address

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FzbjDDvDMxQ21l7riRnUG%2Fimage.png?alt=media&amp;token=f1e8274f-d3c8-495d-8f93-6c0e88bf123b" alt=""><figcaption></figcaption></figure>

***

Select this option to stop tracking an address. This will remove it from your list, and you’ll no longer receive notifications for it.

***

#### How to Use "Remove Address"

1. **Access the Feature**:
   * Click on the **"Remove Address"** button in the bot interface. This will take you to a list of addresses you are currently monitoring.
2. **Select an Address**:
   * The bot will display a list of names and addresses you have previously added for monitoring.
   * Choose the name or address you wish to stop monitoring. If the address you want is listed, simply click on it. If not, you can manually enter the name or address.
3. **Confirmation**:
   * Once you select or input the address, the bot will confirm that monitoring for the chosen address has been removed.
   * You’ll see a message indicating that monitoring has been successfully stopped, along with the address that was removed.

***


# ↪ Liquidations Alert

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FToHQgIk0FiTpgLmZiYLd%2Fimage.png?alt=media&amp;token=a9db8303-73bd-4cce-80ed-1338f39b4287" alt=""><figcaption></figcaption></figure>

***

Toggle liquidation alerts on or off for tracked addresses. When enabled, you’ll receive notifications if an address you’re tracking is at risk of liquidation.

***

#### How to Use "Liquidation Alert"

1. **Access the Feature**:
   * Click on the **"Liquidation Alert"** button in the bot interface. You’ll be given the option to add a new address for liquidation monitoring or remove an existing one.
2. **Choose an Option**:
   * The bot will present you with buttons:
     * **Add New Address**: Select this to start monitoring a new address.
     * **Remove Address**: Choose this if you wish to stop monitoring an existing address.
   * Click **"Add New Address"** to proceed with setting up a new liquidation alert.
3. **Input Details**:
   * You’ll be prompted to enter the name and wallet address you want to track for liquidation events.
   * An example format, **JohnDoe 0x123...abc**, is displayed to assist you.
   * Enter your information in the correct format, like: `testing 0xB6D69449d5EEb5c7a6490d30cE9a71e34EDB933`.
4. **Confirmation**:
   * Once you input the name and address, the bot will confirm that the address has been added to the liquidation alerts.
   * You will receive a message indicating that monitoring is active for the address you specified.

***


# ↪ Health Factor

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FwpVx6dEPcefYlFzAYnsb%2Fimage.png?alt=media&amp;token=b3e0f609-1045-42a7-a320-976dee7d666c" alt=""><figcaption></figcaption></figure>

***

Configure alerts based on the health factor of tracked addresses. Set a threshold, and the bot will notify you if any address’s health factor reaches that level.

***

#### How to Use "Health Factor Alert"

1. **Access the Feature**:
   * Click on the **"Health Factor Alert"** button in the bot interface. A menu will appear with the options to either add a new alert or manage existing ones.
2. **Choose Your Action**:
   * Select **"Add Health Factor Alert"** to set up a new alert.
   * Alternatively, choose **"Manage Existing Alerts"** if you wish to adjust or remove current health factor alerts.
3. **Input Details**:
   * The bot will prompt you to enter the name, wallet address, and the minimum health factor threshold.
   * An example is provided for clarity: **JohnDoe 0x123...abc 1.5**. Follow this format carefully.
   * Enter the details like this: `testing 0xB6D69449d5EEb5c7a6490d30cE9a71e34EDB933 1.3`.
4. **Confirmation**:
   * Once you submit the details, the bot will confirm that the health factor alert has been added.
   * You’ll receive a message indicating:
     * The name associated with the alert.
     * The wallet address being monitored.
     * The trigger condition, which specifies the health factor threshold.
5. **Alert Functionality**:
   * The bot will now monitor the specified address, and if the health factor drops below your set threshold (e.g., 1.3), you will be notified immediately.

***


# ↪ Borrow Rate

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fz34bm1Qm4M7HEcBVbBfZ%2Fimage.png?alt=media&amp;token=5a4296e4-34df-4138-b0db-d970d9f21dcf" alt=""><figcaption></figcaption></figure>

***

Set up alerts for specific borrow rate thresholds. You’ll be notified if the borrow rate for a tracked address reaches or exceeds the threshold you set.

***

#### How to Use "Borrow Rate Alert"

1. **Access the Feature**:
   * Click on the **"Borrow Rate Alert"** button in the bot interface. A menu will appear, allowing you to set up a new alert or manage existing ones.
2. **Choose Your Action**:
   * Select **"Add Borrow Rate Alert"** if you want to set up a new alert.
   * Choose **"Manage Existing Alert"** if you need to edit or remove an existing one.
3. **Input Details**:
   * The bot will prompt you to enter the name, asset address, and the maximum borrow rate (APY) you want to monitor.
   * An example format will be shown for clarity: **JohnDoe 0x123...abc 15**. Here, the number "15" represents the maximum Annual Percentage Yield (APY) in percentage terms.
   * Enter your details in the correct format, ensuring that the APY threshold reflects your risk tolerance or interest in monitoring specific borrowing conditions.
4. **Confirmation**:
   * After you input the details, the bot will confirm that the borrow rate alert has been added.
   * You will receive notifications if the APY for the specified asset exceeds the set threshold, helping you manage your exposure to changing borrowing costs.
5. **Alert Functionality**:
   * Once configured, the bot will keep an eye on the borrow rate and notify you when it reaches or surpasses your specified limit (e.g., 15% APY), keeping you informed about important interest rate fluctuations.

***


# ↪ Advanced Approach

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F18wJfBiXmzHRcJttKuH3%2Fimage.png?alt=media&amp;token=b3f7396d-04e0-4342-a259-8054a5963a8a" alt=""><figcaption></figcaption></figure>

***

#### Advanced Approach

For those who prefer a more hands-on and customizable tracking experience, HyperTrack offers an "Advanced Search" functionality. This feature allows users to manually input commands for tailored monitoring and alerts. Here's how to leverage these commands:

* **/add `name`** **`address`**: Begin tracking transactions for a specific address. Ideal for monitoring high-priority wallets or contracts.
* **/remove `name` or `address`**: Stop receiving alerts for a given name or address. Use this to declutter your tracking list.
* **/add\_liquidations `name`** **`address`**: Enable alerts for liquidation events at the specified address. A crucial tool for risk management.
* **/remove\_liquidations `name` or `address`**: Disable liquidation alerts when they are no longer needed.
* **/hf\_add `name`** **`address`** **`min-health-factor`**: Monitor and get notified if the health factor of an address drops below a specified threshold.
* **/hf\_remove `name` or `address`**: Stop health factor monitoring for a particular address.
* **/rates\_add `name`** **`asset-address`** **`max-borrow-rate-%`**: Set alerts for when an asset's borrow rate hits a predetermined limit. Useful for optimizing borrowing strategies.
* **/rates\_remove `name` or `asset-address`**: Remove alerts for borrow rate thresholds.
* **/list**: Display all your active alert subscriptions for easy management.

Feel free to experiment and fine-tune your setup to get the most out of HyperTrack's monitoring capabilities!

***


# FAQ

Frequently Asked Questions

<details>

<summary>How do I add an address to track?</summary>

Use the **Add Address** command from the menu or type `/add [address]` in the chat. This will start tracking the specified address for transactions and health factor alerts.

</details>

<details>

<summary>What types of alerts can I receive?</summary>

The bot provides the following alerts:

* **Health Factor Alerts**: Notifies you if the health factor of a tracked address reaches a certain threshold.
* **Borrow Rate Alerts**: Alerts you when the borrow rate of a tracked address hits specified levels.
* **Liquidation Alerts**: Informs you of liquidation events for any tracked address.

</details>

<details>

<summary>How often will I receive alerts?</summary>

Health factor and borrow rate alerts are updated hourly, with one notification per day. Liquidation alerts are sent immediately when an event occurs.

</details>

<details>

<summary>How do I enable or disable liquidation alerts?</summary>

Use the **Liquidation Alerts** option in the menu to toggle liquidation notifications on or off for tracked addresses.

</details>

<details>

<summary>What should I do if I'm not receiving notifications?</summary>

Try the following troubleshooting steps:

* Ensure notifications are enabled in your Telegram settings.
* Use the **Refresh Data** option in the menu to reload your settings.
* Make sure you have correctly added addresses for tracking.
* Check if the alert frequency settings are set as desired.

</details>

<details>

<summary>How do I update my notification settings?</summary>

Go to **Settings** in the menu to adjust your notification preferences, including sound, frequency, and type of alerts.

</details>

<details>

<summary>Can I track multiple addresses at once?</summary>

Yes, you can add multiple addresses for tracking. Each address will have its name and a own set of alerts that you can customize.

</details>

<details>

<summary>Is my data secure with this bot?</summary>

Yes, your data privacy is a priority. The bot only tracks the addresses you add and does not store personal information beyond the tracking requirements.

</details>

<details>

<summary>Who should I contact for support?</summary>

Use the **Help & Support** option in the menu for assistance or visit the [**Official Twitter**](https://x.com/hyperlendx) or [**Website**](https://hyperlend.finance/home) for more resources and contact options.

</details>


# Collateral Swap

Optimize your portfolio efficiently with our **Collateral Swap** feature, located on your Dashboard under Supplied Assets. This tool allows you to exchange supplied asset for another in a single transaction, bypassing the need to manually withdraw and re-deposit funds.

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2Fw76b1rHKAvoIzPSIrjj1%2Fimage_2026-03-20_12-18-49.png?alt=media&amp;token=9629a5bf-575f-4a42-9007-6d786db44a0f" alt=""><figcaption></figcaption></figure>

**Quick Guide:**

1. Pick your currentt collateral asset: Choose which supplied asset you want to swap.
2. Choose your target asset: Select the asset you’d rather use as collateral.
3. Swap: Confirm the amount and swap in one click.


# Bridge

The Hyperlend Bridge is your portal for moving liquidity into and across the ecosystem.

It features two distinct pathways:

* **Bridge Anywhere** for external chains—leveraging deBridge primarily and Stargate for broader asset support
* Native **Core ↔ EVM** Bridge. The native bridge allows for seamless, instant transfers between Hyperliquid’s HyperCore and HyperEVM, ensuring your assets are always where you need them with minimal friction.

***

**How to Bridge**

1. Select Your Route:

* Choose Bridge Anywhere to move funds from external networks like Ethereum, Arbitrum, or Solana.
* Choose Core ↔ EVM to move assets internally between HyperCore and HyperEVM.

1. Choose Asset & Amount: Select the token you wish to transfer and enter the amount.

{% hint style="info" %}
*Note: External bridges have a minimum transferable amount of $10.*
{% endhint %}

1. Set Destination (Optional): Toggle "Convert and Route" if you want the assets to land in a different wallet address upon arrival.
2. Confirm & Sign: Review and sign the transaction in your wallet to execute the bridge.


# MiCA Whitepaper

In accordance with Regulation (EU) 2023/1114 (MiCA), Hyperlend Inc. has prepared and notified a crypto-asset white paper for the HPL token.

* **Token:** HPL
* **Digital Token Identifier (DTI):** VJ0L7N45M
* **Offeror:** Hyperlend Inc. (LEI: 98450008DF795FA2D049)

<https://www.hyperlend.finance/WhitePaper-%7BHPL%7D-%7BHyperlend%20Inc.%7D-%7BPA%7D-260413154439-en.xhtml>


# Help

Welcome to the Hyperlend support channel. For immediate answers to common questions regarding lending mechanics, liquidations, and protocol parameters, please refer to our FAQ. Most technical and general inquiries can be resolved quickly by reviewing these resources first.

If you are unable to find the information you need here, you are welcome to join our official [Discord ](https://discord.gg/HhbANtPPT6)and open a support ticket. Our team is happy to provide one-on-one assistance to resolve your issue as quickly as possible.


# I got scammed/hacked

If you suspect your wallet has been compromised, you see unauthorized transactions, or your funds are missing, time is of the essence. Hyperlend is a non-custodial protocol, so we do not have control over your private keys or the ability to "freeze" individual user accounts.

Follow the steps below immediately to secure any remaining assets:

**Revoke All Approvals**

If a malicious contract has permission to spend your tokens, it can continue to drain your wallet even if you change your password or disconnect from the site.

* Go to a revocation tool like [Revoke.cash](https://revoke.cash/)
* Revoke all active permissions

**Move Remaining Funds**

If your seed phrase or private key has been compromised, the entire wallet is "dirty."

* Do not continue using this wallet, consider it "burned"
* Create a completely new wallet (preferably using a trusted hardware wallet)
* Transfer any remaining assets to the new, clean address immediately

**Clear your browser's cache and cookies**

* especially if you suspect there may be malware or phishing


# FAQ


# Network & Connectivity

### How do I manually add the Hyperliquid Network to my wallet? <a href="#how-do-i-manually-add-the-hyperliquid-network-to-my-wallet" id="how-do-i-manually-add-the-hyperliquid-network-to-my-wallet"></a>

If the automatic prompt fails, you can manually add the network to your wallet using the following details:

* **Network Name:** Hyperliquid
* **RPC URL:** `https://rpc.hyperliquid.xyz/evm/`
* **Chain ID:** 999
* **Currency Symbol:** HYPE

### • What does “Internal JSON-RPC error. Contract Call: error” mean? <a href="#what-does-internal-json-rpc-error.-contract-call-error-mean" id="what-does-internal-json-rpc-error.-contract-call-error-mean"></a>

This indicates that the RPC provider is currently congested or experiencing issues.

* **Fix:** Wait a few minutes and try again. If the issue persists, check alternative RPC URLs:&#x20;
* [https://hyperliquid.drpc.org/ ](https://hyperliquid.drpc.org/https://rpc.hyperliquid.xyz/evmhttps://rpc.hyperlend.finance/https://rpc.hypurrscan.io/https://hyperliquid-json-rpc.stakely.io/)
* [https://rpc.hyperliquid.xyz/evm ](https://hyperliquid.drpc.org/https://rpc.hyperliquid.xyz/evmhttps://rpc.hyperlend.finance/https://rpc.hypurrscan.io/https://hyperliquid-json-rpc.stakely.io/)
* [https://rpc.hyperlend.finance/ ](https://hyperliquid.drpc.org/https://rpc.hyperliquid.xyz/evmhttps://rpc.hyperlend.finance/https://rpc.hypurrscan.io/https://hyperliquid-json-rpc.stakely.io/)
* [https://rpc.hypurrscan.io/ ](https://hyperliquid.drpc.org/https://rpc.hyperliquid.xyz/evmhttps://rpc.hyperlend.finance/https://rpc.hypurrscan.io/https://hyperliquid-json-rpc.stakely.io/)
* [https://hyperliquid-json-rpc.stakely.io/](https://hyperliquid.drpc.org/https://rpc.hyperliquid.xyz/evmhttps://rpc.hyperlend.finance/https://rpc.hypurrscan.io/https://hyperliquid-json-rpc.stakely.io/)


# Transaction Issues

### How do I fix "Nonce too low" or "Nonce too high" errors? <a href="#how-do-i-fix-nonce-too-low-or-nonce-too-high-errors" id="how-do-i-fix-nonce-too-low-or-nonce-too-high-errors"></a>

This happens when your wallet has pending transactions that are out of sync with the network.

* **MetaMask Fix:** Settings → Advanced → Clear Activity Tab / Reset Account.
* **Rabby Fix:** More → **Clear pending locally** → **Reset my local nonce data.**

### • Why am I seeing "Execution reverted: arithmetic underflow or overflow (0x11)"? <a href="#why-am-i-seeing-execution-reverted-arithmetic-underflow-or-overflow-0x11" id="why-am-i-seeing-execution-reverted-arithmetic-underflow-or-overflow-0x11"></a>

This is common during withdrawals because your balance updates with every block. The "approval" set by your wallet might become slightly lower than your real-time balance.

* **Fix:** Increase your token approval by one or two tokens manually. Alternatively, go to the **Markets** page, select the asset, click **MAX**, and **Approve** a higher amount before withdrawing.

### • My transaction is stuck or pending (OneKey/Ledger). <a href="#my-transaction-is-stuck-or-pending-onekey-ledger" id="my-transaction-is-stuck-or-pending-onekey-ledger"></a>

1. Ensure all firmware (Ledger Live/OneKey) is updated.
2. Cancel all pending transactions and clear local data.
3. **Reset Nonce:** Send a 0 value transfer to yourself and set the nonce to 0 in advanced settings.

* *Note: For Ledger + Keplr users, ensure both software and hardware are fully updated.*

### • What should I do if a HyperLoop transaction fails? <a href="#what-should-i-do-if-a-hyperloop-transaction-fails" id="what-should-i-do-if-a-hyperloop-transaction-fails"></a>

1. Enable **Big Blocks** at the bottom of the HyperLoop page.
2. Raise the **Gas Limit to 3,000,000 (3M)**.
3. **Important:** Switch back to **Small Blocks** after success to maintain faster execution for future trades.


# Lending, Borrowing & Liquidations

### Why can't I withdraw my assets? <a href="#why-cant-i-withdraw-my-assets" id="why-cant-i-withdraw-my-assets"></a>

1. **Health Factor (HF):** If your HF is below **1.25** (or **1.06** in E-Mode, or 1.00 in Danger Zone Mode), the UI blocks withdrawals to prevent accidental liquidation.
2. **Direct Contract Withdrawal:** If the UI is stuck, you can withdraw directly via the contract:
   * Go to: [HyperEVMScan Write Proxy](https://hyperevmscan.io/address/0x00a89d7a5a02160f20150ebea7a2b5e4879a1a8b#writeProxyContract)
   * Connect Web3 and find the `withdraw` function (usually #33).
   * **Input Asset Address:** (e.g., PT-kHYPE: `0x311dB0FDe558689550c68355783c95eFDfe25329`)
   * **Input Amount:** Use the raw amount (Balance \* 10^decimals).
   * **Input Receiver:** Your wallet address.

### • Can I see my exact liquidation price? <a href="#can-i-see-my-exact-liquidation-price" id="can-i-see-my-exact-liquidation-price"></a>

* **Core Pools:** Hard to calculate exactly because you can supply and borrow multiple different assets simultaneously. Monitor your **Health Factor (HF)** closely.
* **Isolated Pools:** We are working on including exact liquidation prices in the UI for these pools.

### • Who can liquidate positions? <a href="#who-can-liquidate-positions" id="who-can-liquidate-positions"></a>

Anyone. We provide an open-source liquidator bot on [GitHub](https://github.com/hyperlendx/liquidator) for the community.

### • How do I calculate my Health Factor (HF)? <a href="#how-do-i-calculate-my-health-factor-hf" id="how-do-i-calculate-my-health-factor-hf"></a>

`HF = (Sum of Collateral in $* Liquidation Threshold) / (Sum of Debt in$)`

### • How is the "24h Balance Change" calculated? <a href="#how-is-the-24h-balance-change-calculated" id="how-is-the-24h-balance-change-calculated"></a>

It is `Current Total Balance ($) - Total Balance 24h ago ($)`.

{% hint style="info" %}
*Note: Total Balance = Supplied Assets - Borrowed Assets.* This represents total value change, not PnL.
{% endhint %}

### • Where can I see my full transaction history? <a href="#where-can-i-see-my-full-transaction-history" id="where-can-i-see-my-full-transaction-history"></a>

Click the **"Your Transactions"** button on your dashboard. This provides a detailed log of all supplies, borrows, and bridge actions.


# Assets, staking, wHLP

<details>

<summary>Why is there a difference of 1 HYPE when I deposit? (e.g., 300 stHYPE to 299 wstHYPE)</summary>

wstHYPE and stHYPE are not 1:1.

* **stHYPE:** A rebasing token that stays 1:1 with HYPE but increases in quantity.
* **wstHYPE:** An "auto-compounding" token that stays the same in quantity but increases in value relative to HYPE. You can check the current ratio on the [contract here](https://purrsec.com/address/0xffaa4a3d97fe9107cef8a3f48c069f577ff76cc1/contract) (see `balancePerShare`).

</details>

<details>

<summary>What oracles are used for wstHYPE and kHYPE</summary>

We use **Exchange Rate Oracles** (fundamental value) rather than secondary market prices.

* **wstHYPE:** exchange ratio directly from stHYPE contract \* HYPE/USD price from Redstone oracle
* **kHYPE:** Uses a Redstone oracle based on internal protocol accounting. This protects users from liquidations caused by short-term depegs on DEXs.

</details>

<details>

<summary>Why do I get less HYPE when closing a HyperLoop position?</summary>

HyperLoop uses flashloans and swaps, meaning it cannot wait the 7-day redemption period for stHYPE. If stHYPE is slightly depegged on the secondary market (e.g., 0.22%), your swap will reflect that price plus a slippage fee.

</details>

<details>

<summary>Why can't I lend/borrow against my Valantis deposits?</summary>

Valantis uses Hyperlend to optimize AMM reserves. When you deposit on Valantis, you are providing liquidity to traders, not directly depositing into a lending pool, so you cannot borrow against those specific assets.

</details>

<details>

<summary>How do I check wHLP withdrawal status?</summary>

wHLP withdrawals remain pending even if you lack sufficient balance. You can check the status of a specific user by replacing `USER_ADDRESS_HERE` in this link: [Check wHLP Status](https://backend.nucleusearn.io/v1/protocol/withdrawals?chainId=999\&vaultAddress=0x1359b05241ca5076c9f59605214f4f84114c0de8\&all=false\&user=USER_ADDRESS_HERE\&status=all\&page=1\&limit=20)

</details>


# Building on HyperLend

Whether you are building a yield aggregator, a risk management dashboard, or integrating Hyperlend’s liquidity into your dApp, we provide the tools and support to help you scale.

{% content-ref url="/pages/BBHSbVGkoRgtFxyrQbmn" %}
[→ DEVELOPER DOCUMENTATION](/developer-documentation/bug-bounty)
{% endcontent-ref %}


# Bug Bounty

The Hyperlend Bug Bounty Program invites security researchers and developers to help protect the protocol. We value the community’s role in ensuring the safety of user assets and the stability of our lending markets.

**Submission Process**

To qualify for a reward, please follow these steps:

1. Report: Write a detailed report including the potential impact and a technical description of the vulnerability.
2. PoC: Include a Proof of Concept or a set of reproduction steps (e.g., a Foundry test or Hardhat script).
3. Contact: Please send reports to: `fbslo@hyperlend.finance`

{% hint style="info" %}
First-to-Report: If multiple researchers find the same bug, only the first valid report will be rewarded.
{% endhint %}

Rewards: Payouts are made in USDC (or protocol-native tokens) on Hyperliquid based on the severity of the finding.

**Ineligibility Criteria**:

* Reports based on "theoretical" risks without a clear path to exploitation.
* Issues requiring physical access to a user’s device or "jailbroken" hardware.
* Vulnerabilities in third-party integrations (e.g., an external DEX where collateral is swapped) that Hyperlend does not control.
* UI/UX "papercuts" or minor spelling errors that do not impact security or financial logic.
* Market risks inherent to DeFi (e.g., loss of collateral value due to standard market volatility).

**Classification & Rewards**

Rewards are determined by the Hyperlend team based on the Impact and Likelihood.

For more info, see: <https://github.com/hyperlendx/bug-bounty/>


# API

Base URL:  <https://api.hyperlend.finance>

Available chains: `hyperEvm`&#x20;

**NOTE: Addresses must be checksummed, since API is case-sensitive.**

***

`GET /data/interestRateHistory`

Query interest rate hourly history.

* required params: `chain` and `token` (contract address)
* example: `/data/interestRateHistory?chain=hyperEvm&token=0x5555555555555555555555555555555555555555`
* `currentLiquidityRate` and `currentVariableBorrowRate` are expressed in Ray (unit of measurement with 27 decimals),&#x20;
* response format:

```
[
  {
    "_id": "66d90e9aa6e4d9c524ef729a",
    "timestamp": 1725501082135,
    "0x5555555555555555555555555555555555555555": {
      "currentLiquidityRate": "7901245102880645706451431",
      "currentVariableBorrowRate": "29629649382709465022770918"
    }
  },
  {
    "_id": "66d91caaa6e4d9c524ef72b2",
    "timestamp": 1725504682074,
    "0x5555555555555555555555555555555555555555": {
      "currentLiquidityRate": "6971805824458391305412",
      "currentVariableBorrowRate": "880139245577900154208182"
    }
  },
  ...
]
```

***

`GET /data/user/valueChange`

Query the user's 24-hour balance change.

* required params: `address` and `chain`
* example: `/data/user/valueChange?chain=hyperEvm&address=0x0E61A8fb14f6AC999646212D30b2192cd02080Dd`
* response format:

```
{
  "prevPos": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": {
      "tokenValue": 36.492697000000135,
      "usdValue": 36.4105784364399,
      "name": "tether"
    },
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": {
      "tokenValue": -0.505677,
      "usdValue": -0.5047376206695895,
      "name": "usd-coin"
    },
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": {
      "tokenValue": 0.00033692,
      "usdValue": 19.147241624351143,
      "name": "bitcoin"
    }
  },
  "newPositions": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": {
      "tokenValue": 36.492697000000135,
      "usdValue": 36.44846785123614,
      "name": "tether"
    },
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": {
      "tokenValue": -0.505677,
      "usdValue": -0.505194584142,
      "name": "usd-coin"
    },
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": {
      "tokenValue": 0.00033692,
      "usdValue": 19.70038624,
      "name": "bitcoin"
    }
  },
  "tokenDiff": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": 0,
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": 0,
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": 0
  },
  "usdDiff": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": 0.03788941479623986,
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": -0.00045696347241053203,
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": 0.5531446156488578
  },
  "tokenPercentageDiff": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": 0,
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": 0,
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": 0
  },
  "usdPercentageDiff": {
    "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9": 0.10400744101600679,
    "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": 0.09049389062620931,
    "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f": 2.847765210171073
  },
  "totalBalanceChange": 0.5905770669726849,
  "totalBalanceChangePercentage": 1.0670179746650437
}
```

***

`GET /data/user/historicalNetWorth`

Query the user's hourly USD net worth.

* required params: `address` and `chain`
* example: `/data/user/historicalNetWorth?chain=hyperEvm&address=0x0E61A8fb14f6AC999646212D30b2192cd02080Dd`
* response format:

```
[
  {
    "timestamp": 1725886951424,
    "usdValue": 605.9349161471797
  },
  {
    "timestamp": 1725890548453,
    "usdValue": 604.8168613233992
  },
  {
    "timestamp": 1725894410263,
    "usdValue": 604.4794076893005
  },
  ...
]
```

***

`GET /data/markets`

Query current reserves state

* required params: `chain`
* response format:

```
{
    "reserves": [
        {
            "chain": "arbitrum",
            "underlyingAsset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
            "name": "USD Coin",
            "symbol": "USDC",
            "decimals": "6",
            "baseLTVasCollateral": "8000",
            "reserveLiquidationThreshold": "8500",
            "reserveLiquidationBonus": "11000",
            "reserveFactor": "2000",
            "usageAsCollateralEnabled": true,
            "borrowingEnabled": true,
            "stableBorrowRateEnabled": false,
            "isActive": true,
            "isFrozen": false,
            "liquidityIndex": "1000000000000000000000000000",
            "variableBorrowIndex": "1000000000000000000000000000",
            "liquidityRate": "400000000000000000000000",
            "variableBorrowRate": "5000000000000000000000000",
            "stableBorrowRate": "60625000000000000000000000",
            "lastUpdateTimestamp": "1722973930",
            "aTokenAddress": "0x4ed318353e3aB859F614aB41BFC33f98Cca8B3aE",
            "stableDebtTokenAddress": "0x6a970b349D8B60b57a335C0bdd16b8EEbD19Fa8F",
            "variableDebtTokenAddress": "0x82bf3C188d6397f2b9dE6D9F3834381C9C205585",
            "interestRateStrategyAddress": "0xa18DE0E9fd605be95026130FDFb592431Fc7a9B7",
            "availableLiquidity": "900000",
            "totalPrincipalStableDebt": "0",
            "averageStableRate": "0",
            "stableDebtLastUpdateTimestamp": "0",
            "totalScaledVariableDebt": "100000",
            "priceInMarketReferenceCurrency": "99996000",
            "priceOracle": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3",
            "variableRateSlope1": "40000000000000000000000000",
            "variableRateSlope2": "750000000000000000000000000",
            "stableRateSlope1": "5000000000000000000000000",
            "stableRateSlope2": "750000000000000000000000000",
            "baseStableBorrowRate": "60000000000000000000000000",
            "baseVariableBorrowRate": "0",
            "optimalUsageRatio": "800000000000000000000000000",
            "isPaused": false,
            "isSiloedBorrowing": false,
            "accruedToTreasury": "0",
            "unbacked": "0",
            "isolationModeTotalDebt": "0",
            "flashLoanEnabled": true,
            "debtCeiling": "0",
            "debtCeilingDecimals": "2",
            "eModeCategoryId": "0",
            "borrowCap": "0",
            "supplyCap": "10000",
            "eModeLtv": "0",
            "eModeLiquidationThreshold": "0",
            "eModeLiquidationBonus": "0",
            "eModePriceSource": "0x0000000000000000000000000000000000000000",
            "eModeLabel": "",
            "borrowableInIsolation": false
        }
    ]
}
```

***

`GET /data/markets/rates`&#x20;

Returns borrow and supply APYs for all assets and isolated markets.

* required params: `chain`

Returns APY and APR as percentage.&#x20;

For isolated markets, the key is the pair address, and data includes underlying and collateral asset addresses.

<pre><code><strong>{
</strong>  "0xb7379d395F3c83952ad794896205f7E33E358735": {
    "supplyAPR": 0,
    "supplyAPY": 0,
    "borrowAPR": 0,
    "borrowAPY": 0
  },
  "0x068f321Fa8Fb9f0D135f290Ef6a3e2813e1c8A29": {
    "supplyAPR": 0.46472160368365606,
    "supplyAPY": 0.4658031092092507,
    "borrowAPR": 2.278023538318724,
    "borrowAPY": 2.3041686476535927
  },
  "0x06Fd9D03b3d0F18E4919919b72D30c582f0a97E5": {
    "underlying": "0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb",
    "collateral": "0x1359b05241cA5076c9F59605214f4F84114c0dE8",
    "supplyAPR": 14.7000269211344,
    "supplyAPY": 14.700027160359502,
    "borrowAPR": 22.5325064089296,
    "borrowAPY": 22.5325067756188
  }
}
</code></pre>

***

`GET /data/user/transactionHistory`&#x20;

Returns all transactions the user was involved in.

* required params: `chain` and `address`&#x20;
* optional params: `limit` (default: 100) and `skip` (default: 0)
  * example: `/data/user/transactionHistory?chain=hyperEvm&address=0x5748ae796AE46A4F1348a1693de4b50560485562&limit=1000&skip=0`&#x20;

```
{
    data: [
        {
            "_id": "67eb00824c256fa8358a4d55",
            "uniqueId": "0x4183db849780dcdf8249ee5b419f0e28c752e155e3c6ee2b26adf4e26e026690_8",
            "chain": "hyperEvm",
            "contractId": "pool",
            "blockNumber": 1861952,
            "timestamp": 1743454326,
            "txHash": "0x4183db849780dcdf8249ee5b419f0e28c752e155e3c6ee2b26adf4e26e026690",
            "logIndex": 8,
            "event": "Supply",
            "data": {
                "reserve":"0x94e8396e0869c9F2200760aF0621aFd240E1CF38",
                "user":"0x5748ae796AE46A4F1348a1693de4b50560485562",
                "onBehalfOf":"0x5748ae796AE46A4F1348a1693de4b50560485562",
                "amount":"399999999999999966445568",
                "referralCode":"0"
            }
        }
    ]
}
```

***

`GET /data/transactions`

Query events data.

* optional params:&#x20;
  * `chain`, `contractId`, `blockNumber`, `txHash`, `logIndex`, `event`
  * on data field: `see available event parameters below`
  * example: `/data/transaction?chain=hyperEvm&event=Borrow&reserve=0x5555555555555555555555555555555555555555`
  * response format:

```
{
    uniqueId: "0x4839ef5e7ca3e0cf8eea625a2a640277980fbc0406542fcd4604fba15a325504_6"
    chain: "arbitrum"
    contractId: "pool"
    blockNumber	240136270
    txHash: "0x4839ef5e7ca3e0cf8eea625a2a640277980fbc0406542fcd4604fba15a325504"
    logIndex: 6
    event: "Borrow"
    data: {
        ...eventParameters
    }
}
```

All indexed events:

```
[
  {
    "name": "BackUnbacked",
    "parameters": [
      ["reserve", "address"],
      ["backer", "address"],
      ["amount", "uint256"],
      ["fee", "uint256"]
    ]
  },
  {
    "name": "Borrow",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["onBehalfOf", "address"],
      ["amount", "uint256"],
      ["interestRateMode", "uint8"],
      ["borrowRate", "uint256"],
      ["referralCode", "uint16"]
    ]
  },
  {
    "name": "FlashLoan",
    "parameters": [
      ["target", "address"],
      ["initiator", "address"],
      ["asset", "address"],
      ["amount", "uint256"],
      ["interestRateMode", "uint8"],
      ["premium", "uint256"],
      ["referralCode", "uint16"]
    ]
  },
  {
    "name": "IsolationModeTotalDebtUpdated",
    "parameters": [
      ["asset", "address"],
      ["totalDebt", "uint256"]
    ]
  },
  {
    "name": "LiquidationCall",
    "parameters": [
      ["collateralAsset", "address"],
      ["debtAsset", "address"],
      ["user", "address"],
      ["debtToCover", "uint256"],
      ["liquidatedCollateralAmount", "uint256"],
      ["liquidator", "address"],
      ["receiveAToken", "bool"]
    ]
  },
  {
    "name": "MintUnbacked",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["onBehalfOf", "address"],
      ["amount", "uint256"],
      ["referralCode", "uint16"]
    ]
  },
  {
    "name": "MintedToTreasury",
    "parameters": [
      ["reserve", "address"],
      ["amountMinted", "uint256"]
    ]
  },
  {
    "name": "RebalanceStableBorrowRate",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"]
    ]
  },
  {
    "name": "Repay",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["repayer", "address"],
      ["amount", "uint256"],
      ["useATokens", "bool"]
    ]
  },
  {
    "name": "ReserveDataUpdated",
    "parameters": [
      ["reserve", "address"],
      ["liquidityRate", "uint256"],
      ["stableBorrowRate", "uint256"],
      ["variableBorrowRate", "uint256"],
      ["liquidityIndex", "uint256"],
      ["variableBorrowIndex", "uint256"]
    ]
  },
  {
    "name": "ReserveUsedAsCollateralDisabled",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"]
    ]
  },
  {
    "name": "ReserveUsedAsCollateralEnabled",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"]
    ]
  },
  {
    "name": "Supply",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["onBehalfOf", "address"],
      ["amount", "uint256"],
      ["referralCode", "uint16"]
    ]
  },
  {
    "name": "SwapBorrowRateMode",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["interestRateMode", "uint8"]
    ]
  },
  {
    "name": "UserEModeSet",
    "parameters": [
      ["user", "address"],
      ["categoryId", "uint8"]
    ]
  },
  {
    "name": "Withdraw",
    "parameters": [
      ["reserve", "address"],
      ["user", "address"],
      ["to", "address"],
      ["amount", "uint256"]
    ]
  }
]
```


# Data & Indexers

### Ponder Indexer

Docs are available at [ponder.hyperlend.finance](https://ponder.hyperlend.finance).

### HyperLend Indexer

See [API](/developer-documentation/api) (`/data/transactions`)

### RPCs

You can query raw blockchain data using our RPC (located in Singapore)

* <https://rpc.hyperlend.finance>&#x20;
  * eRPC load balancer, using multiple standard and archive nodes (both public and private)
  * more info in [HyperEVM RPC docs](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm/json-rpc)
  * maximum *eth\_getLogs* query range is 50 blocks. For higher limits, use the archive endpoint
* <https://rpc.hyperlend.finance/archive>
  * [Nanoreth](https://github.com/sprites0/nanoreth)-based nodes, with full history

Rate limits are set to 30 requests/second per IP, but can be changed at any time.


# SDK

TypeScript SDK & docs are available at <https://github.com/hyperlendx/hyperlend-sdk-ts>


# Contract Addresses

List of HyperLend mainnet contracts

**HPL Token**

| Name                  | Address                                                                                                                 |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| HPL token (HyperCore) | [0x5e887f0c6c3deec190c36186bf23369f](https://app.hyperliquid.xyz/explorer/token/0x5e887f0c6c3deec190c36186bf23369f)     |
| HPL Token (HyperEVM)  | [0xbd6dab50f03a305a80037294fa8d1a9dc0cac91b](http://hyperevmscan.io/address/0xbd6dab50f03a305a80037294fa8d1a9dc0cac91b) |
|                       |                                                                                                                         |

**Core Pools contracts**

<table><thead><tr><th width="303">Name</th><th>Address</th><th data-hidden></th></tr></thead><tbody><tr><td>Pool</td><td>0x00A89d7a5A02160f20150EbEA7a2b5E4879A1A8b</td><td></td></tr><tr><td>PoolImplementation</td><td>0xBEBb62C7FF8B96dB4325D9481c44e09A92d49B06</td><td></td></tr><tr><td>PoolConfigurator</td><td>0x8CB4310dD38F6fD59388C9DE225f328092bdC379</td><td></td></tr><tr><td>PoolConfigurator (impl)</td><td>0x6fDdde45f777a4E461B0721a578b169b44579623</td><td></td></tr><tr><td>PoolAddressesProvider</td><td>0x72c98246a98bFe64022a3190e7710E157497170C</td><td></td></tr><tr><td>PoolAddressesProviderRegistry</td><td>0x24E301BcBa5C098B3b41eA61a52bFe95Cb728b20</td><td></td></tr><tr><td>hToken (impl)</td><td>0x410Aa1ab680B886c875e99a7A4bfaf188508a7A3</td><td></td></tr><tr><td>VariableDebtToken (impl)</td><td>0x8158e5569475a443a5723ccaC462930F590449Ed</td><td></td></tr><tr><td>Oracle</td><td>0xC9Fb4fbE842d57EAc1dF3e641a281827493A630e</td><td></td></tr><tr><td>ACLManager</td><td>0x10914Ee2C2dd3F3dEF9EFFB75906CA067700a04A</td><td></td></tr><tr><td>DefaultInterestRateStrategy</td><td>0xD01E9AA0ba6a4a06E756BC8C79579E6cef070822</td><td></td></tr><tr><td>ProtocolDataProvider</td><td>0x4f4d4cA1e0a8A21FE0B460613bEbe917f2eb4326</td><td></td></tr><tr><td>WrappedTokenGateway</td><td>0x49558c794ea2aC8974C9F27886DDfAa951E99171</td><td></td></tr><tr><td>RewardsController (impl)</td><td>0x484b0C602819d5A85bFFaC26E5B28c69F38c2941</td><td></td></tr><tr><td>RewardsController</td><td>0x2aF0d6754A58723c50b5e73E45D964bFDD99fE2F</td><td></td></tr><tr><td>StaticATokenFactory (impl)</td><td>0xe1A9577C8c9ca4182669E192C8167ACd9F7325df</td><td></td></tr><tr><td>StaticATokenFactory</td><td>0x561879b3430dbFc0071004aE3BF640020a1aa9AD</td><td></td></tr><tr><td>StaticAToken (impl)</td><td>0x4376C06D866557faC5d0B5813526639c403BfcF5</td><td></td></tr><tr><td>TransparentProxyFactory</td><td>0x390d2B4AFCCB4071fd163bcED7c715Bde06F0f4a</td><td></td></tr><tr><td>ProxyAdmin</td><td>0xdb3Bf3e22380780F75D7F57C772e71fCa7EBA027</td><td></td></tr><tr><td>Treasury</td><td>0xA9A7e0E91689C49bf9F2A15a768cAebBA6A5EEC5</td><td></td></tr><tr><td>Treasury (impl)</td><td>0x6A14A52bC00F60F6f13b960790Cf9a3D90267503</td><td></td></tr><tr><td>EmissionManager</td><td>0xF8f60F84a43D05316ccff66407fC466b50c3c2B3</td><td></td></tr><tr><td>ConfigEngine</td><td>0xEe9d3EDbeDa35156681EF28765e760Eb75ccFB6f</td><td></td></tr><tr><td>UiPoolDataProvider</td><td>0xfc05a3fbf47094f53a8f98fda5dd8abdd336b9d4</td><td></td></tr><tr><td>UiIncentiveDataProvider</td><td>0xD47dc1F30994539B3fA000C70bB5E5D0bE203b54</td><td></td></tr><tr><td>WalletBalanceProvider</td><td>0x99478e5c8d0597730844Fd93dB8AB4723b96e149</td><td></td></tr></tbody></table>

**Governance**

<table><thead><tr><th width="236">Name</th><th>Address</th><th data-hidden></th></tr></thead><tbody><tr><td>Governance Multisig</td><td>0x2110E7B8e925C387A88259CEac9bd82c47868E9C</td><td></td></tr><tr><td>Timelock A</td><td>0xaAaaaAAAa810beD1EDA93A18FEC940857ED17879</td><td></td></tr><tr><td>Timelock B</td><td>0xbbBBbbBB81e9B92918AA51e0CDfB3B53f7D72432</td><td></td></tr><tr><td>Executor</td><td>0x1a54A8C3C49127FcF17F45B842d760f877746B22</td><td></td></tr><tr><td>Treasury Multisig</td><td>0xCBF400610DBF462fE316D8A7db6Ba78d57E43d7b</td><td></td></tr><tr><td>EmergencyAdmin Multisig</td><td>0xC2A0F2c78dd7E37C82aA3A8e37fc712a3ddb7cAc</td><td></td></tr><tr><td>Timelock C (isolated pools)</td><td>0xCCcCCcCCC4B6CD09594E7c5bF108695F79313115</td><td></td></tr><tr><td>HyperLend Foundation Multisig</td><td>0xf4BdE1E0755DD24255bB4dD49Ef20BBBd153F327</td><td></td></tr><tr><td>HyperLabs Ops Multisig</td><td>0x96F0feDe38E23BaC200a158f947d0C9955809691</td><td></td></tr></tbody></table>

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FXXwgZQt5xMKE4ANtrRMb%2FNeimenovano.png?alt=media&amp;token=2692a5e9-2d18-477a-8ff0-181bde63a574" alt=""><figcaption><p>Governance Overview</p></figcaption></figure>

#### Assets

| Ticker             | Contract                                   | hToken                                     | VariableDebtToken                          |
| ------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
| wHYPE              | 0x5555555555555555555555555555555555555555 | 0x0D745EAA9E70bb8B6e2a0317f85F1d536616bD34 | 0x747d0d4Ba0a2083651513cd008deb95075683e82 |
| wstHYPE            | 0x94e8396e0869c9F2200760aF0621aFd240E1CF38 | 0x0Ab8AAE3335Ed4B373A33D9023b6A6585b149D33 | 0x45686A849e77CCb909F5d575F51C372bf26103D6 |
| UBTC               | 0x9FDBdA0A5e284c32744D2f17Ee5c74B284993463 | 0xd2012c6DfF7634f9513A56a1871b93e4505EA851 | 0xE16a14972bcDE3f9Bd637502C86384533F27DA07 |
| UETH               | 0xBe6727B535545C67d5cAa73dEa54865B92CF7907 | 0xdBA3B25643C11be9BDF457D6b3926992A735c523 | 0x14E10FA4E016183a024c74ACF539bb875c54e70C |
| USDe               | 0x5d3a1Ff2b6BAb83b63cd9AD0787074081a52ef34 | 0x333819c04975554260AaC119948562a0E24C2bd6 | 0x1EFA0f7A12cEF73e23dE30b7013a252231Ea50f9 |
| USDT0              | 0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb | 0x10982ad645D5A112606534d8567418Cf64c14cB5 | 0x1EF897622D62335e7FC88Fb0605FbBa28eC0b01d |
| sUSDe              | 0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2 | 0xf6ba4169e1a1B467D32B8884C4B42de6454B4E4f | 0x044388Eed86eF67c126Db5A66428F30797B0ABF5 |
| USDHL              | 0xb50A96253aBDF803D85efcDce07Ad8becBc52BD5 | 0x0b936DE4370E4B2bE947C01fe0a6FB5f987c4709 | 0x94c03Ed369B706Ad6957cF42aFB0b5b02F924099 |
| kHYPE              | 0xfD739d4e423301CE9385c1fb8850539D657C296D | 0xa55DE93CDE5A34c5521B7584022846829CB74366 | 0x185697d814330430b8D4B3121fAB9c811B59798D |
| USDC               | 0xb88339CB7199b77E23DB6E890353E22632Ba630f | 0x744E4f26ee30213989216E1632D9BE3547C4885b | 0xD612513cB3b2C52abCD6d4b338374C09AdA4657d |
| USR                | 0x0aD339d66BF4AeD5ce31c64Bc37B3244b6394A77 | 0x2A2d7663Cb77220de9BA55Aa9aAe2b360F2c23fC | 0xd1b2c6Be5Ae55F3aBfdDE8070fD3322e87Cfb895 |
| USDH               | 0x111111a1a0667d36bD57c0A9f569b98057111111 | 0x143A24569a73AFB856A2ee3D554AbcA860118785 | 0x51aF159cF648B59efC7de2830134FA5Ca7109fDd |
| PT-kHYPE-19MAR2026 | 0xea84ca9849D9e76a78B91F221F84e9Ca065FC9f5 | 0x7686fEdD785663e437a409abB55a9BB36fA2DCf2 | 0xffc3d92cFb1F160De9AdecF449a1b41c9e72453C |
| beHYPE             | 0xd8FC8F0b03eBA61F64D08B0bef69d80916E5DdA9 | 0x48a278aA1eab4de5b74897230Ae57FB9e7B1497A | 0x3f6f19E098e3c0C996d11cE4d4816aC470C40708 |
| USOL               | 0x068f321Fa8Fb9f0D135f290Ef6a3e2813e1c8A29 | 0xE14b4526438Ae5ee26596de1936280E4d6bDDEb5 | 0x64dF524260FECd833258d26A3a7AeB415d20C512 |
| PT-kHYPE-13NOV2025 | 0x311dB0FDe558689550c68355783c95eFDfe25329 | 0x329FebbBF38A6C202786fCc8Ac02DbD2f40D5a18 | 0x957fb7538cA456824314051A7fc6F0eAC5E7345c |
| PT-sUSDe-25SEP2025 | 0xb7379d395F3c83952ad794896205f7E33E358735 | 0xec2767311eBf57C02de9866fDACdfefAc4AdAe6B | 0x5533124cE92737bc209d2730836114F118BFeAf0 |

**Isolated**

| Name         | Contract                                   | Code                                                                                               |
| ------------ | ------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| PairDeployer | 0xD5B33d3c6e750A51fd4E90dbf4AFa2586E33d02c | <https://github.com/hyperlendx/hyperlend-isolated/blob/master/contracts/HyperlendPairDeployer.sol> |
| PairRegistry | 0xf55AF86c9EC3a7d5fa6367c00a120E6B262f718d | <https://github.com/hyperlendx/hyperlend-isolated/blob/master/contracts/HyperlendPairRegistry.sol> |

**Looping**

| Name                   | Contract                                   |
| ---------------------- | ------------------------------------------ |
| StrategyManagerFactory | 0xc3Ed646181Ca80562e96d9e6CF4AF317d22F34b0 |
| LoopingHelper          | 0x2f5F23ED499ABcDef7116f75e3365C553D2b4913 |


# Core Pools

{% hint style="info" %}
**HyperLend Core Pools are based on Aave V3 contracts.**
{% endhint %}

The source code of the HyperLend Core contracts is available on [GitHub](https://github.com/hyperlendx/hyperlend-core).

***

**Pool**

The `Pool` contract is the main entry point into the Hyperlend Core Pools. Most user interactions with the protocol occur through this contract.&#x20;

**PoolConfigurator**

The `PoolConfigurator` provides configuration methods for the `Pool` contract. The write methods in this contract can only be called by addresses with the appropriate permissioned system roles managed by the `ACLManager`.

***

**PoolAddressesProvider**

The `PoolAddressesProvider` acts as a registry for various protocol components, including the  `Pool`contract. It also can modify the implementation of proxy contracts.

***

**Oracle**

The `Oracle` is the registry of oracles used to fetch asset prices and manage price sources.

**ProtocolDataProvider**

The `ProtocolDataProvider`collects and preprocesses information from the `Pool`contract, making it easier to use.

**InterestRateStrategy**

The `InterestRateStrategy` contract calculates the interest rates based on the state of the reserve.

***

**hToken**

`hTokens` are yield-generating tokens minted and burned upon the supply and withdrawal of assets to and from the Hyperlend Pool.

**VariableDebtToken**

`VariableDebtTokens` are non-transferable tokens that accrue interest, representing borrow positions with variable borrow rates.

***


# ↪ pool

***

#### Pool

This contract serves as the primary interface for users. Most interactions with the Hyperlend Protocol occur via the `Pool` contract.&#x20;

Users can:

* Supply assets
* Withdraw assets
* Borrow funds
* Repay loans
* Enable or disable supplied assets as collateral
* Liquidate positions
* Execute flash loans

The source code is available on GitHub.

***

#### Write Methods

***

**`supply`**

```solidity
function supply(
    address asset,
    uint256 amount,
    address onBehalfOf,
    uint16 referralCode
) public virtual override
```

Deposits a specified `amount` of an `asset` into the protocol, minting equivalent hTokens and transferring them to the `onBehalfOf` address.

Before supplying, the `Pool` contract must have the necessary allowance to spend funds on behalf of `msg.sender` for at least the specified `amount` of the asset.&#x20;

The referral program is currently inactive; you can pass `0` as `referralCode`. This feature may be activated in the future.

**Parameters:**

| Name         | Type    | Description                                                                                                                  |
| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| asset        | address | The address of the underlying asset being supplied to the pool                                                               |
| amount       | uint256 | The amount of the asset to supply                                                                                            |
| onBehalfOf   | address | The address that will receive the corresponding hTokens. This is the only address that can withdraw the asset from the pool. |
| referralCode | uint16  | The referral program is currently inactive; you can pass `0`.                                                                |

***

**`supplyWithPermit`**

```solidity
function supplyWithPermit(
    address asset,
    uint256 amount,
    address onBehalfOf,
    uint16 referralCode,
    uint256 deadline,
    uint8 permitV,
    bytes32 permitR,
    bytes32 permitS
) public virtual override
```

Allows supplying an asset using a permit signature for transfer approval, eliminating the need for a separate approval transaction before supplying the asset to the pool. See: [EIP-2612](https://eips.ethereum.org/EIPS/eip-2612).

The permit signature must be signed by `msg.sender` with the spender set to the `Pool` address.

The referral program is currently inactive; you can pass `0` as `referralCode`. This feature may be activated in the future through a Hyperlend governance proposal.

**Parameters:**

| Name         | Type    | Description                                                                                                            |
| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| asset        | address | The address of the underlying asset being supplied. The same asset used in the permit signature (`v`, `r`, `s`)        |
| amount       | uint256 | The amount of the asset to supply and approve via permit. The same amount used in the permit signature (`v`, `r`, `s`) |
| onBehalfOf   | address | The address that will receive the hTokens.                                                                             |
| referralCode | uint16  | The referral program is currently inactive; you can pass `0`.                                                          |
| deadline     | uint256 | The UNIX timestamp until which the permit signature is valid                                                           |
| permitV      | uint8   | The `v` parameter of the ERC712 permit signature                                                                       |
| permitR      | bytes32 | The `r` parameter of the ERC712 permit signature                                                                       |
| permitS      | bytes32 | The `s` parameter of the ERC712 permit signature                                                                       |

***

**`withdraw`**

```solidity
function withdraw(address asset, uint256 amount, address to) public virtual override returns (uint256)
```

Withdraws a specified `amount` of the underlying `asset` from the reserve, burning the equivalent hTokens owned. For example, if a user has 100 hUSDC and calls `withdraw()`, they will receive 100 USDC, and the 100 hUSDC will be burned.

If the user has any existing debt backed by the underlying token, the maximum `amount` available to withdraw is limited to ensure the user's health factor remains above 1 after the withdrawal.

When withdrawing to another address, `msg.sender` must possess the hTokens that will be burned by the `Pool`.

**Parameters:**

| Name   | Type    | Description                                                                                                                                                                                        |
| ------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| asset  | address | The address of the underlying asset to withdraw, not the hToken                                                                                                                                    |
| amount | uint256 | The amount of the underlying asset to withdraw, expressed in wei units. Use `type(uint256).max` to withdraw the entire hToken balance                                                              |
| to     | address | The address that will receive the underlying `asset`. This will be the same as `msg.sender` if the user wants to receive the tokens themselves, or another address if the beneficiary is different |

**Returns:**

| Type    | Description                |
| ------- | -------------------------- |
| uint256 | The final amount withdrawn |

***

**`borrow`**

```solidity
function borrow(
    address asset,
    uint256 amount,
    uint256 interestRateMode,
    uint16 referralCode,
    address onBehalfOf
) public virtual override
```

Allows users to borrow a specific `amount` of the reserve's underlying `asset`, provided the borrower has supplied enough collateral or has been granted sufficient allowance by a credit delegator on the corresponding debt token (VariableDebtToken). For example, if a user borrows 100 USDC and passes their own address as `onBehalfOf`, they will receive 100 USDC and 100 variable debt tokens.

**Note:** If `onBehalfOf` is not the same as `msg.sender`, then `onBehalfOf` must have supplied enough collateral via `supply()` and have delegated credit to `msg.sender` via `approveDelegation()` on the VariableDebtToken contract.

The referral program is currently inactive; you can pass `0` as `referralCode`.&#x20;

**Parameters:**

| Name             | Type    | Description                                                                                                                                                                                                           |
| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| asset            | address | The address of the underlying asset to borrow                                                                                                                                                                         |
| amount           | uint256 | The amount to borrow, expressed in wei units                                                                                                                                                                          |
| interestRateMode | uint256 | Should always be passed a value of `2` (variable rate mode)                                                                                                                                                           |
| referralCode     | uint16  | The referral program is currently inactive; you can pass `0`.                                                                                                                                                         |
| onBehalfOf       | address | The address of the borrower. If they want to borrow against their own collateral, this should be their own address, or the address of the credit delegator if the caller has been granted credit delegation allowance |

***

**`repay`**

```solidity
function repay(
    address asset,
    uint256 amount,
    uint256 interestRateMode,
    address onBehalfOf
) public virtual override returns (uint256)
```

Repays a borrowed `amount` on a specific reserve, burning the equivalent debt tokens owned. For example, if a user repays 100 USDC, the 100 variable debt tokens owned by the `onBehalfOf` address will be burned.

When repaying, the `Pool` contract must have allowance to spend funds on behalf of `msg.sender` for at least the `amount` for the asset being repaid. This can be done via the standard ERC20 `approve()` method on the underlying token contract.

You cannot call `repay()` multiple times in the same block.

**Parameters:**

| Name             | Type    | Description                                                                                                                                                                                                                                                                                        |
| ---------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| asset            | address | The address of the borrowed underlying asset                                                                                                                                                                                                                                                       |
| amount           | uint256 | The amount to repay, expressed in wei units. Use `type(uint256).max` to repay the whole debt, **only** when the repayment is not executed on behalf of a third party. When repaying on behalf of another user, it's recommended to send an amount slightly higher than the current borrowed amount |
| interestRateMode | uint256 | Only available option is `2` (variable rate mode)                                                                                                                                                                                                                                                  |
| onBehalfOf       | address | The address of the user whose debt will be reduced or removed. This should be the address of the user calling the function if they want to reduce or remove their own debt, or the address of another borrower whose debt should be removed                                                        |

**Returns:**

| Type    | Description             |
| ------- | ----------------------- |
| uint256 | The final amount repaid |

***

**`repayWithPermit`**

```solidity
function repayWithPermit(
    address asset,
    uint256 amount,
    uint256 interestRateMode,
    address onBehalfOf,
    uint256 deadline,
    uint8 permitV,
    bytes32 permitR,
    bytes32 permitS
) public virtual override returns (uint256)
```

Allows repaying a borrowed amount using a permit signature for transfer approval, removing the need for a separate approval transaction before repaying the asset to the pool. See: [EIP-2612](https://eips.ethereum.org/EIPS/eip-2612).

The permit signature must be signed by `msg.sender` with the spender set to the `Pool` address.

**Parameters:**

| Name             | Type    | Description                                                                                                                                                                                                                                 |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| asset            | address | The address of the borrowed underlying asset. The same asset used in the permit signature (`v`, `r`, `s`)                                                                                                                                   |
| amount           | uint256 | The amount to repay, expressed in wei units. Use `type(uint256).max` to repay the whole debt without leaving hToken dust. The same amount used in the permit signature (`v`, `r`, `s`)                                                      |
| interestRateMode | uint256 | Only available option is `2` (variable rate mode)                                                                                                                                                                                           |
| onBehalfOf       | address | The address of the user whose debt will be reduced or removed. This should be the address of the user calling the function if they want to reduce or remove their own debt, or the address of another borrower whose debt should be removed |
| deadline         | uint256 | The UNIX timestamp until which the permit signature is valid                                                                                                                                                                                |
| permitV          | uint8   | The `v` parameter of the ERC712 permit signature                                                                                                                                                                                            |
| permitR          | bytes32 | The `r` parameter of the ERC712 permit signature                                                                                                                                                                                            |
| permitS          | bytes32 | The `s` parameter of the ERC712 permit signature                                                                                                                                                                                            |

**Returns:**

| Type    | Description             |
| ------- | ----------------------- |
| uint256 | The final amount repaid |

***

**`repayWithATokens`**

```solidity
function repayWithATokens(
    address asset,
    uint256 amount,
    uint256 interestRateMode
) public virtual override returns (uint256)
```

Allows a user to repay a borrowed `amount` on a specific reserve using the reserve's hTokens, burning the equivalent debt tokens. For example, a user repays 100 USDC using 100 hUSDC, burning 100 variable debt tokens. Passing `type(uint256).max` as the amount will clean up any residual hToken dust balance if the user's hToken balance is insufficient to cover the whole debt.

**Parameters:**

| Name             | Type    | Description                                                                                                  |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| asset            | address | The address of the borrowed underlying asset                                                                 |
| amount           | uint256 | The amount to repay. Use `type(uint256).max` to repay the whole debt for `asset` without leaving aToken dust |
| interestRateMode | uint256 | Only available option is `2` (variable rate mode)                                                            |

**Returns:**

| Type    | Description             |
| ------- | ----------------------- |
| uint256 | The final amount repaid |

***

**`setUserUseReserveAsCollateral`**

```solidity
function setUserUseReserveAsCollateral(address asset, bool useAsCollateral) public virtual override
```

Allows suppliers to enable or disable a specific supplied asset as collateral. Sets the `asset` of `msg.sender` to be used as collateral or not.

An asset in Isolation Mode can be enabled as collateral only if no other asset is already enabled as collateral.

The user cannot disable an asset as collateral if they have an outstanding debt position that would cause their health factor to drop below 1 upon disabling the given asset as collateral.

**Parameters:**

| Name            | Type    | Description                                                                 |
| --------------- | ------- | --------------------------------------------------------------------------- |
| asset           | address | The address of the underlying asset supplied                                |
| useAsCollateral | bool    | `true` if the user wants to use the supply as collateral, `false` otherwise |

***

**`liquidationCall`**

```solidity
function liquidationCall(
    address collateralAsset,
    address debtAsset,
    address user,
    uint256 debtToCover,
    bool receiveAToken
) public virtual override
```

Allows liquidators to liquidate a non-healthy position (with a health factor below 1).

When a user's health factor is below 1, the liquidator repays the `debtToCover` amount of the user's debt. This amount is a portion or the entirety of the outstanding borrowed amount on behalf of the borrower. The liquidator then receives a proportional amount of the `collateralAsset` (discounted collateral) plus a liquidation bonus to compensate for market risk.

Liquidators can choose to receive an equivalent amount of collateral hTokens instead of the underlying asset. When the liquidation is successfully completed, the health factor of the position increases, bringing it above 1.

Liquidators can only close a certain portion of the collateral defined by the close factor. Currently, the close factor is 0.5 (50%) for positions with HF above 0.95 and size above 2000 USD, and 1 (100%) for positions under 2000 USD or HF under 0.95, meaning liquidators can liquidate up to 50% (or 100%) of the amount pending to be repaid in a position. The liquidation discount applies to this amount.

In most cases, profitable liquidators will choose to liquidate as much as allowed (50% or 100% of the user's position).

The `debtToCover` parameter can be set to `type(uint256).max`, and the protocol will proceed with the maximum liquidation allowed by the close factor.

To check a user's health factor, use `getUserAccountData()`.

Liquidators must `approve()` the `Pool` contract to use `debtToCover` of the underlying ERC20 asset used for the liquidation.

**Parameters:**

| Name            | Type    | Description                                                                                                                                               |
| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| collateralAsset | address | The address of the underlying asset used as collateral, to receive as a result of the liquidation                                                         |
| debtAsset       | address | The address of the underlying borrowed asset to be repaid during the liquidation                                                                          |
| user            | address | The address of the borrower being liquidated                                                                                                              |
| debtToCover     | uint256 | The debt amount of the borrowed asset that the liquidator will repay                                                                                      |
| receiveAToken   | bool    | `true` if the liquidator wants to receive the aTokens equivalent of the purchased collateral, `false` to receive the underlying collateral asset directly |

***

**`flashLoan`**

```solidity
function flashLoan(
    address receiverAddress,
    address[] calldata assets,
    uint256[] calldata amounts,
    uint256[] calldata interestRateModes,
    address onBehalfOf,
    bytes calldata params,
    uint16 referralCode
) public virtual override
```

Allows users to access the pool's liquidity for a given list of assets within a single transaction, as long as the amount borrowed plus a fee is returned. The receiver must approve the `Pool` contract for at least the amount borrowed plus the fee; otherwise, the transaction will revert.

The flash loan fee is waived for approved `FLASH_BORROWER`.

There are security considerations for developers of flash loan receiver contracts that must be taken into account. For further details, visit the Flash Loan Developers Guide.

The referral program is currently inactive; you can pass `0` as `referralCode`. This feature may be activated in the future through a Hyperlend governance proposal.

**Parameters:**

| Name              | Type       | Description                                                                                                                                                                                                                                                                                                                                                 |
| ----------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| receiverAddress   | address    | The address of the contract receiving the flash-borrowed funds, implementing the `IFlashLoanReceiver` interface                                                                                                                                                                                                                                             |
| assets            | address\[] | The addresses of the assets being flash-borrowed                                                                                                                                                                                                                                                                                                            |
| amounts           | uint256\[] | The amounts of the assets being flash-borrowed. This array must contain the same number of entries as `assets`                                                                                                                                                                                                                                              |
| interestRateModes | uint256\[] | The types of the debt position to open if the flash loan is not returned: `0` -> Don't open any debt; the amount plus fee must be paid in this case, or the transaction will revert if the funds can't be transferred from the receiver. `2` -> Open a variable rate borrow position for the value of the amount flash-borrowed to the `onBehalfOf` address |
| onBehalfOf        | address    | The address that will receive the debt if the associated `interestRateModes` is `1` or `2`. `onBehalfOf` must already have approved sufficient borrow allowance of the associated asset to `msg.sender`                                                                                                                                                     |
| params            | bytes      | Variadic packed parameters to pass to the receiver as extra information                                                                                                                                                                                                                                                                                     |
| referralCode      | uint16     | The referral program is currently inactive; you can pass `0`. This code is used to register the integrator initiating the operation for potential rewards. Use `0` if executed directly by the user without intermediaries                                                                                                                                  |

***


# ↪ oracles

#### HyperlendOracle

Contract for obtaining asset prices and managing price sources.

This contract is governed by Hyperlend Governance.

***

**View Methods**

**`getAssetPrice`**

```solidity
solidityCopy codefunction getAssetPrice(address asset) public view override returns (uint256)
```

Retrieves the price of the supported `asset` in the `BASE_CURRENCY` of the Hyperlend Market, denominated in wei.

**Input Parameters:**

| Name  | Type    | Description              |
| ----- | ------- | ------------------------ |
| asset | address | The address of the asset |

**Return Values:**

| Type    | Description                                                              |
| ------- | ------------------------------------------------------------------------ |
| uint256 | The price of the asset in the `BASE_CURRENCY` of Hyperlend Market in wei |

***

**`getAssetsPrices`**

```solidity
solidityCopy codefunction getAssetsPrices(address[] calldata assets) external view override returns (uint256[] memory)
```

Retrieves a list of prices for a given list of supported `assets` in the `BASE_CURRENCY` of the Hyperlend Market. All prices are denominated in wei.

**Input Parameters:**

| Name   | Type       | Description                                     |
| ------ | ---------- | ----------------------------------------------- |
| assets | address\[] | The list of asset addresses to query prices for |

**Return Values:**

| Type       | Description                                                                          |
| ---------- | ------------------------------------------------------------------------------------ |
| uint256\[] | The prices of the specified assets in the `BASE_CURRENCY` of Hyperlend Market in wei |

***

**`getSourceOfAsset`**

```solidity
solidityCopy codefunction getSourceOfAsset(address asset) external view override returns (address)
```

Returns the address of the price source for a specific `asset`.

**Input Parameters:**

| Name  | Type    | Description              |
| ----- | ------- | ------------------------ |
| asset | address | The address of the asset |

**Return Values:**

| Type    | Description                     |
| ------- | ------------------------------- |
| address | The address of the price source |

***

**`getFallbackOracle`**

```solidity
solidityCopy codefunction getFallbackOracle() external view returns (address)
```

Retrieves the address of the fallback oracle.

**Return Values:**

| Type    | Description                        |
| ------- | ---------------------------------- |
| address | The address of the fallback oracle |


# &#x20;↪ dual-oracles

#### DualOracle contracts

Certain assets use DualOracles, which can switch between different price sources.

Code can be found on [Github](https://github.com/hyperlendx/hyperevm-oracle/blob/master/contracts/adapters/DualFallbackOracle.sol).

Primary source is used most of the time. If primary source data is stale (threshold defined per contract), the fallback source is used.

Market governance can also manually switch to an emergency price source.

***

Currently, they are used for:

* kHYPE market:
  * Primary source: RedStone Price Feed for kHYPE\_FUNDAMENTAL/USD
  * Fallback source: Chainlink HYPE/USD \* Chainlink KHYPE-HYPE Exchange Rate
  * Emergency source: Chainlink kHYPE/USD Market Rate

* wstHYPE market:
  * Primary source: RedStone Price Feed for HYPE/USD \* wstHYPE/HYPE Ratio
  * Fallback source: Chainlink HYPE/USD \* Chainlink wstHYPE-HYPE Exchange Rate
  * Emergency source: RedStone wstHYPE/USD Market Rate

***


# ↪ interest rate strategy

**Implements the computation of interest rates based on the current state of the reserve. This interest rate model utilizes two distinct slopes: one applicable before reaching the `OPTIMAL_USAGE_RATIO`, and another that applies from that point up to full utilization (100%).**

Due to caching of the `PoolAddressesProvider`, an instance of this contract cannot be shared across different Hyperlend markets.

The source code is available on GitHub.

***

#### View Methods

**`getVariableRateSlope1`**

```solidity
function getVariableRateSlope1(address reserve) external view returns (uint256)
```

Provides the variable rate slope for the specified reserve when the usage ratio is below the optimal threshold. This rate is relevant when the usage ratio ranges from 0 up to `OPTIMAL_USAGE_RATIO`.

**Input Parameters:**

| Name    | Type    | Description                      |
| ------- | ------- | -------------------------------- |
| reserve | address | The address of the reserve asset |

**Return Values:**

| Type    | Description                   |
| ------- | ----------------------------- |
| uint256 | The variable rate slope value |

***

**`getVariableRateSlope2`**

```solidity
function getVariableRateSlope2(address reserve) external view returns (uint256)
```

Provides the variable rate slope for the specified reserve when the usage ratio exceeds the optimal threshold. This rate applies when the usage ratio is greater than `OPTIMAL_USAGE_RATIO`.

**Input Parameters:**

| Name    | Type    | Description                      |
| ------- | ------- | -------------------------------- |
| reserve | address | The address of the reserve asset |

**Return Values:**

| Type    | Description                   |
| ------- | ----------------------------- |
| uint256 | The variable rate slope value |

***

**`getBaseVariableBorrowRate`**

```solidity
function getBaseVariableBorrowRate(address reserve) external view override returns (uint256)
```

Returns the base variable borrow rate for the given reserve.

**Input Parameters:**

| Name    | Type    | Description                      |
| ------- | ------- | -------------------------------- |
| reserve | address | The address of the reserve asset |

**Return Values:**

| Type    | Description                           |
| ------- | ------------------------------------- |
| uint256 | The base variable borrow rate, in ray |

***

**`getMaxVariableBorrowRate`**

```solidity
function getMaxVariableBorrowRate(address reserve) external view override returns (uint256)
```

Returns the maximum variable borrow rate for the specified reserve.

**Input Parameters:**

| Name    | Type    | Description                      |
| ------- | ------- | -------------------------------- |
| reserve | address | The address of the reserve asset |

**Return Values:**

| Type    | Description                              |
| ------- | ---------------------------------------- |
| uint256 | The maximum variable borrow rate, in ray |

***

**`calculateInterestRates`**

```solidity
function calculateInterestRates(
    DataTypes.CalculateInterestRatesParams memory params
) external view override returns (uint256, uint256)
```

Calculates the interest rates based on the reserve's current state and configurations. This function returns two values: the liquidity rate and the variable borrow rate.

**Input Parameters:**

| Name   | Type                                   | Description                                   |
| ------ | -------------------------------------- | --------------------------------------------- |
| params | DataTypes.CalculateInterestRatesParams | Parameters required to compute interest rates |

The `DataTypes.CalculateInterestRatesParams` struct includes the following fields:

| Name                     | Type    | Description                                                 |
| ------------------------ | ------- | ----------------------------------------------------------- |
| unbacked                 | uint256 | The amount of unbacked tokens                               |
| liquidityAdded           | uint256 | Liquidity added during the operation                        |
| liquidityTaken           | uint256 | Liquidity withdrawn during the operation                    |
| totalDebt                | uint256 | Total amount borrowed from the reserve                      |
| reserveFactor            | uint256 | Portion of interest allocated to the market's treasury      |
| reserve                  | address | The address of the reserve                                  |
| usingVirtualBalance      | bool    | Indicates if a virtual balance is being utilized            |
| virtualUnderlyingBalance | uint256 | Virtual balance of the underlying asset for mintable assets |

**Return Values:**

| Name               | Type    | Description                                |
| ------------------ | ------- | ------------------------------------------ |
| liquidityRate      | uint256 | The liquidity rate, expressed in ray       |
| variableBorrowRate | uint256 | The variable borrow rate, expressed in ray |

***


# ↪ flash-loans

## Flash Loans

Flash Loans are unique transactions that allow users to borrow assets without upfront collateral, provided that the borrowed amount plus a fee is returned within the same transaction (also known as "one-block borrows"). Since there is no real-world equivalent, understanding how blockchain state transitions occur within blocks is essential.

***Note:** Flash Loans are an advanced feature intended for developers. A solid grasp of the Ethereum Virtual Machine (EVM), programming, and smart contract development is necessary to utilize this functionality.*

***

### Overview

Flash Loans enable users to access the pool's liquidity for a single transaction, on the condition that the borrowed amount plus a fee is returned or a debt position is opened (if permitted) by the end of the transaction. This feature is applicable only to reserves where borrowing is enabled.

HyperLend offers two methods for flash loans:

1. **`flashLoan()`**\
   Allows borrowers to access liquidity from multiple reserves within a single flash loan transaction. Borrowers also have the option to open a variable-rate borrowing position backed by supplied collateral or via credit delegation.

   *Note:* The flash loan fee is waived for approved flash borrowers managed by the `ACLManager`.
2. **`flashLoanSimple()`**\
   Enables borrowers to access liquidity from a single reserve in a transaction. In this case, the flash loan fee is not waived, and borrowers cannot open any debt positions at the end of the transaction. This method is more gas-efficient for those seeking a straightforward flash loan with a single asset.

***

### Execution Flow

For developers, here's a conceptual framework to assist in building your solution:

1. **Initiate the Flash Loan**\
   Your contract calls the `Pool` contract, requesting a flash loan of specific amounts of reserves using either `flashLoanSimple()` or `flashLoan()`.
2. **Funds Transfer and Callback**\
   After performing necessary checks, the `Pool` transfers the requested amounts to your contract and then calls `executeOperation()` on your contract.
3. **Execute Custom Logic**\
   With the flash-loaned funds now in your contract, you can perform any arbitrary operations within your code.
4. **Repayment or Debt Opening**
   * **For `flashLoanSimple()`:** After your operations, you must approve the `Pool` to pull the flash-loaned amount plus the fee.
   * **For `flashLoan()`:** Depending on the `interestRateMode` for each asset, you must either approve the `Pool` for the amount plus fee or ensure sufficient collateral or credit delegation is available to open a debt position.
5. **Transaction Completion**\
   If the owed amount is not available due to insufficient balance, lack of approval, or inadequate collateral for debt, the transaction will revert.

**All these steps occur within a single transaction, meaning they happen within one Ethereum block.**

***

### Applications of Flash Loans

Flash Loans have various practical applications, including:

* **Arbitrage Opportunities**\
  Execute arbitrage between assets without needing the principal amount upfront.
* **Liquidation of Positions**\
  Liquidate borrowing positions without repaying the debt upfront by using the discounted collateral obtained to repay the flash loan amount plus the fee.

***

### Flash Loan Fee

The flash loan fee is initially set to **0.04%** at deployment and can be adjusted via a governance vote. Use `FLASHLOAN_PREMIUM_TOTAL` to retrieve the current value.

The fee is shared between liquidity providers (LPs) and the protocol treasury:

* **Fee to LPs:**\
  `FLASHLOAN_PREMIUM_TOTAL` minus `FLASHLOAN_PREMIUM_TO_PROTOCOL`
* **Fee to Protocol Treasury:**\
  `FLASHLOAN_PREMIUM_TO_PROTOCOL`

*Initially, `FLASHLOAN_PREMIUM_TO_PROTOCOL` is set to 0.*

***

### Step-by-Step Guide

#### 1. Setting Up

* **Implement the Receiver Interface**\
  Your contract that will receive the flash-loaned funds must implement the `IFlashLoanSimpleReceiver` or `IFlashLoanReceiver` interface by defining the appropriate `executeOperation()` function.
* **Grant Allowance**\
  Since the owed amounts will be pulled from your contract, you must grant the `Pool` contract an allowance to transfer the funds needed to repay the flash loan amount plus premiums.

#### 2. Invoking `flashLoan()` or `flashLoanSimple()`

There are three ways to call the flash loan methods:

* **From an Externally Owned Account (EOA):**\
  Send a transaction to the `Pool` contract calling `flashLoan()` or `flashLoanSimple()`. Refer to the `Pool`documentation for parameter details, ensuring you use your contract address from step 1 as the `receiverAddress`.
* **From a Different Contract:**\
  Similar to the EOA method but initiated from another contract. Ensure the `receiverAddress` is your contract address from step 1.
* **From the Same Contract:**\
  If you're using the same contract as in step 1, use `address(this)` for the `receiverAddress` parameter.

**Security Tip:** Never store funds permanently on your flash loan receiver contract, as they could be vulnerable to 'griefing' attacks where an attacker exploits the stored funds.

#### Completing the Flash Loan

* **Repayment:**\
  After executing your custom logic in `executeOperation()`, you need to repay the flash-loaned amounts if you used `flashLoanSimple()` or set `interestRateModes = 0` in `flashLoan()`.
* **Calculating the Amount Owed:**\
  Ensure your contract holds the required amount plus the premium. This can be calculated by summing the relevant entries in the `amounts` and `premiums` arrays provided in `executeOperation()`.
* **Automatic Pull of Funds:**\
  You don't need to manually transfer the owed amount back to the `Pool`; the funds will be automatically pulled at the end of your operation.

#### Incurring a Debt (Deferred Repayment)

If you used `mode=1` or `mode=2` for any assets in the `modes` parameter, the `onBehalfOf` address will incur the debt, provided that it has authorized the `msg.sender` to incur debts on its behalf.

This allows for a mix of assets—some can be repaid immediately, while others result in an open debt position.

***


# Isolated Pools

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2F6M7qHIl1puaChr0WJrdy%2Fimage.png?alt=media&amp;token=a2f577ee-2c73-407f-a3eb-b1f02691e070" alt=""><figcaption></figcaption></figure>


# ↪ key-concepts

**HyperLend Borrowing and Lending Overview**

**Token Pairs** Each market pair in HyperLend operates as an isolated environment for borrowing one ERC-20 token, called the Asset Token, by providing another ERC-20 token as collateral, referred to as the Collateral Token.

Isolated market pair contracts are ERC-4626 compatible.

Lenders who supply Asset Tokens to a market receive hTokens, which are ERC-20 tokens that represent their share of the deposited assets. These hTokens can be redeemed for the original Asset Tokens, which accrue interest over time, meaning that the value of hTokens increases as interest accumulates.

Borrowers, on the other hand, deposit Collateral Tokens into the pair, enabling them to borrow Asset Tokens in return.

***

**Loan-To-Value (LTV) Ratio** Each borrowing position in HyperLend is defined by a Loan-To-Value (LTV) ratio, which compares the value of borrowed assets to the value of the provided collateral. This ratio fluctuates with changes in the exchange rate between Asset and Collateral Tokens or when interest is added to the loan.

If the LTV exceeds the maximum allowable level, the position becomes unhealthy. To remedy this, borrowers can either deposit more collateral or repay a portion of their loan to bring the LTV back within a safe range, otherwise they can get liquidated.

***

**Interest Rate Mechanisms** Interest rates for each pair are determined by the specific rate calculator applied during deployment.

1. **Linear Time-Weighted Variable Interest Rate**: Provides immediate rate adjustments based on utilization, with faster changes when utilization crosses the target threshold. Over time, prolonged periods of high or low utilization will alter the rate curve to fit the conditions.

***

***

**hToken Share Price** When lenders provide Asset Tokens, they receive hTokens based on the current share price. These tokens represent their portion of the total assets in the market, including capitalized interest. As interest accrues, the share price of the hTokens increases, meaning lenders can redeem them for a larger amount of Asset Tokens.&#x20;

***


# ↪ liquidations

**Liquidations** If a borrower’s LTV rises above the maximum limit, any user can liquidate the position by repaying the loan. In return, the liquidator receives collateral, along with a liquidation fee.

The liquidation fee is different if the liquidator repays the entire position (`cleanLiquidationFee`) or only a portion (`dirtyLiquidationFee`, 90% of the clean fee).


# ↪ interest rates

**Interest Rate Models in Isolated Pools**

In HyperLend, each market pair features an interest rate model that adjusts according to the utilization of deposited assets. Utilization reflects the percentage of deposited tokens currently lent out to borrowers.&#x20;

***

#### Linear Time-Weighted Variable Interest Rate <a href="#linear-rate" id="linear-rate"></a>

When a new interest rate contract is deployed, the following settings are determined:

* &#x20;vertex utilization: The utilization at which the interest rate slope increases
* vertex rate delta: Determines how far the vertex rate sits between the base rate and the max rate.
* minimum target utilization: The minimum utilization wherein no adjustment to full utilization and vertex rates occurs
* maximum target utilization: The maximum utilization wherein no adjustment to full utilization and vertex rates occurs
* zero utilization interest rate: The interest rate when utilization is 0%
* minimum full utilization interest rate: The minimum interest rate at 100% utilization
* maximum full utilization interest rate: The maximum interest rate at 100% utilization
* interest rate half-life: The half-life for interest rate adjustments

Linear Time-Weighted Variable Interest Rate uses a linear formula to calculate the current interest rate, but changes vertex and max rate based on time.

If utilization is low, the vertex and max rate will slowly decrease over time (if utilization is 0%, it will decrease by 50% per half-life). However, if utilization is high, it will keep increasing until it hits the maximum full utilization interest rate (if utilization is 100%, it will increase by 100% per half-life).

<figure><img src="https://1293603927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtiRDTXWJIPq3DOCs3Vbb%2Fuploads%2FXCfKakvOQgOxC3wofv7i%2Fslika.png?alt=media&amp;token=d26c018b-eaa7-4719-b5cc-43a79edc15a8" alt=""><figcaption></figcaption></figure>


