# Borrow guide

The KPK-curated cyclical WETH markets let borrowers take **fixed-rate WETH loans** for a calendar month at a time, against wstETH or tETH collateral. The rate is set fresh at the start of each month, based on a benchmark for ETH staking rates ([Treehouse's Decentralized Offered Rate](https://www.treehouse.finance/products/dor)).

The vault provides exposure to <mark style="color:$primary;">**predictable, benchmark-priced ETH credit**</mark> for LST/LRT looping strategies that would otherwise be at the mercy of variable-rate IRMs.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Borrow against wstETH</strong></td><td>Euler UI</td><td><a href="https://app.euler.finance/borrow/0xF6E2EfDF175e7a91c8847dade42f2d39A9aE57D4/0xf55B46C10138782aDE3275D81e44B8464100eAfF?network=1">https://app.euler.finance/borrow/0xF6E2EfDF175e7a91c8847dade42f2d39A9aE57D4/0xf55B46C10138782aDE3275D81e44B8464100eAfF?network=1</a></td></tr><tr><td><strong>Borrow against tETH</strong></td><td>Euler UI</td><td><a href="https://app.euler.finance/borrow/0xA8c0Ec7E552932920fEc67eA9E98a7544e75404d/0xB5fa20eb3c1A146E1090F24CF3c7D60263Dafa71?network=1">https://app.euler.finance/borrow/0xA8c0Ec7E552932920fEc67eA9E98a7544e75404d/0xB5fa20eb3c1A146E1090F24CF3c7D60263Dafa71?network=1</a></td></tr><tr><td><strong>Lender page</strong></td><td>KPK Docs</td><td><a href="/pages/PvaLV5xmlaa5ZZst5Iq2">/pages/PvaLV5xmlaa5ZZst5Iq2</a></td></tr></tbody></table>

### Comparison vs variable-rate markets

<table><thead><tr><th width="185.9921875" valign="top">Parameter</th><th width="270.03515625">Variable-rate market</th><th>ETH Yield Term (cyclical)</th></tr></thead><tbody><tr><td valign="top"><strong>Rate during the cycle</strong></td><td>Moves with utilisation; can spike toward IRM cap (often 50%+ APY) during squeezes</td><td>Single fixed rate for the cycle, set monthly from a benchmark rate</td></tr><tr><td valign="top"><strong>Rate sensitivity to utilisation</strong></td><td>High: every deposit / withdrawal moves the rate</td><td>None: rate is utilisation-independent</td></tr><tr><td valign="top"><strong>Predictable cost of capital</strong></td><td>Difficult; requires constant rate monitoring</td><td>Known in advance for the whole cycle</td></tr><tr><td valign="top"><strong>Calendar exposure</strong></td><td>None</td><td>One 24h repayment phase per cycle, calendar-defined</td></tr><tr><td valign="top"><strong>Active management required</strong></td><td>Continuous (rate moves anytime)</td><td>Concentrated on the last day of each month (unwind or roll)</td></tr><tr><td valign="top"><strong>Liquidation triggers</strong></td><td>Price-driven and rate-driven (high rate accrues debt fast)</td><td>Price-driven only (rate is fixed)</td></tr></tbody></table>

### Why borrow here?

Variable-rate lending markets price ETH credit by utilisation. When the market gets full, the borrow rate spikes; when it's quiet, it sits below equilibrium. For looping strategies that hold leverage for weeks or months, this is the largest source of cost uncertainty.

The cyclical IRM removes utilisation from the equation. Within a cycle, the borrow rate is **a single number**, set once at cycle start from a benchmark rate.

#### Rate spikes are impossible

<figure><picture><source srcset="/files/Eu9UeJWYEAnpQu4R8tuX" media="(prefers-color-scheme: dark)"><img src="/files/Y6DcNn9Fa2hyGZBRLj6D" alt="Borrow-rate trajectory across one cycle: variable-rate IRM compared to the cyclical fixed-rate IRM. Variable-rate shows a jagged curve with a utilisation-driven spike mid-cycle; cyclical shows a flat line at the primary borrow rate followed by a short step up to the secondary rate on the last day."></picture><figcaption><p>Borrow-rate trajectory across one cycle: variable-rate IRM vs cyclical fixed-rate.</p></figcaption></figure>

The IRM has only **two states**: the primary borrow rate (during the lending phase) and the secondary borrow rate (during the repayment phase). It doesn't read utilisation. There's no kink, no slope, no jump rate, no curve. Mid-cycle, the borrow rate is constant regardless of new borrowers, supply changes, or market activity.

The only rate change happens on the **last day of the month**, when the rate is increased for 24 hours to encourage borrowers to repay before the cycle resets. A new cycle then starts on the 1st at a fresh rate.

### How the cycle works

<figure><picture><source srcset="/files/hyH9xAqPyF22wMqsqtWz" media="(prefers-color-scheme: dark)"><img src="/files/sbexDBA6BCY6nIyu2Gsa" alt="Cycle anatomy: a long lending phase at the fixed borrow rate (~2.05–2.50% APY), followed by a 24-hour-maximum repayment phase at 50% APY on the last day of the month, then a reset on the 1st."></picture><figcaption></figcaption></figure>

* **Cycle length.** One UTC calendar month. Each cycle starts at 00:00 UTC on the 1st.
* **Lending (primary) phase.** The first 29 or 30 days of the month, during which borrowers pay the fixed WETH rate set by KPK (currently in the \~2.05–2.50% APY band).
* **Repayment (secondary) phase.** The **last day** of the month, at **50% APY** for up to 24 hours. Designed to encourage borrowers to repay before the cycle resets, not to force liquidations. KPK is open to adjusting these parameters based on lender and borrower feedback.
* **Cycle reset.** At 00:00 UTC on the 1st of the next month, a new cycle starts at a fresh rate.

Borrowers who repay or roll before the last day pay nothing extra. Carrying through the full 24-hour repayment window adds roughly **0.111%** to total borrow cost, equivalent to \~16 days of normal interest at a 2.5% primary rate.

### How the rate is set

The cyclical fixed rate is computed once at cycle start from a benchmark for ETH staking rates ([Treehouse's Decentralized Offered Rate](https://www.treehouse.finance/products/dor))

$$
\text{Borrow rate} = \min(3.0%, \max(\text{TESR}\_{30d}, 2.5%)) \times 0.90 - 0.20%
$$

Two design choices make this work for borrowers:

* **Carry spread for looping.** The `× 0.90 − 0.20%` keeps the borrow rate below TESR, so a looped position earns the underlying staking rate (≈ TESR) while paying the lower borrow rate.
* **Bounded rate.** The 2.5–3.0% bounds on TESR keep the borrow rate **always within a 2.05–2.50% APY band**: if TESR falls below 2.5% we treat it as 2.5%, if it exceeds 3.0% we treat it as 3.0%, otherwise we use it as-is.

The rate is bounded, public, and known a full month in advance; borrowers can size positions against a worst-case cost of 2.50% APY with no surprises mid-cycle.

{% hint style="info" %}

#### Example

The cycle 2 rate (June 2026) was computed from TESR 30D = 2.7920%, giving **2.7920% × 0.90 − 0.20% = 2.3128% APY**, a carry spread of \~48 bps below TESR.
{% endhint %}

The TESR input used for each cycle is recorded in the [Euler Change Log](/vaults/vaults/euler/change-log.md).

### How to borrow

1. Open the relevant borrow page on the Euler UI: [borrow against wstETH](https://app.euler.finance/borrow/0xF6E2EfDF175e7a91c8847dade42f2d39A9aE57D4/0xf55B46C10138782aDE3275D81e44B8464100eAfF?network=1) or [borrow against tETH](https://app.euler.finance/borrow/0xA8c0Ec7E552932920fEc67eA9E98a7544e75404d/0xB5fa20eb3c1A146E1090F24CF3c7D60263Dafa71?network=1). Drawing at the **start of the cycle** (on or shortly after the 1st of the month) is recommended, as available WETH liquidity is typically highest then.
2. Connect your wallet and deposit collateral (wstETH or tETH) into the corresponding Euler collateral vault.
3. Borrow WETH against your collateral.
4. *(Optional)* Monitor health factor (fundamental-price-driven only; the rate can't trigger liquidation).
5. Repay or roll **before the last day of the month**. Otherwise the 50% APY repayment-phase rate adds \~0.111% to borrow cost in 24 hours, undoing about 16 days of normal yield.

{% hint style="info" %}
If you'd like to borrow more WETH than the market currently has available, please [reach out to KPK directly](https://kpk.io/contact).
{% endhint %}

{% hint style="info" %}
**Looping a leveraged LST position?** Use the **Multiply** feature in the Euler UI ([wstETH market](https://app.euler.finance/borrow/0xF6E2EfDF175e7a91c8847dade42f2d39A9aE57D4/0xf55B46C10138782aDE3275D81e44B8464100eAfF?network=1), [tETH market](https://app.euler.finance/borrow/0xA8c0Ec7E552932920fEc67eA9E98a7544e75404d/0xB5fa20eb3c1A146E1090F24CF3c7D60263Dafa71?network=1)). It batches supply, swap, and borrow into one transaction via the Ethereum Vault Connector and a DEX aggregator (e.g. Kyberswap), with the swap calldata constructed dynamically from live aggregator quotes.
{% endhint %}

{% hint style="info" %}
Building a programmatic borrow flow without the Euler UI? See [Integration → Euler](/vaults/integration/integration/euler.md#direct-borrow-flow) for the contract addresses, function selectors, and the full borrow/repay sequence.
{% endhint %}

### Market parameters

<table><thead><tr><th width="125.0234375" valign="top">Market</th><th width="105.5546875">Collateral</th><th align="right">LTV &#x26; LLTV</th><th width="120.48828125" align="right">Liquidation discount</th><th align="right">Exp. borrow APY</th><th width="125.046875" align="right">Repayment APY (24h max)</th></tr></thead><tbody><tr><td valign="top"><a href="https://app.euler.finance/borrow/0xF6E2EfDF175e7a91c8847dade42f2d39A9aE57D4/0xf55B46C10138782aDE3275D81e44B8464100eAfF?network=1">wstETH term</a></td><td>wstETH</td><td align="right">94.5, 96.5%</td><td align="right">6%</td><td align="right">~2.05–2.50%</td><td align="right">50%</td></tr><tr><td valign="top"><a href="https://app.euler.finance/borrow/0xA8c0Ec7E552932920fEc67eA9E98a7544e75404d/0xB5fa20eb3c1A146E1090F24CF3c7D60263Dafa71?network=1">tETH term</a></td><td>tETH</td><td align="right">89.5, 91.5%</td><td align="right">12%</td><td align="right">~2.05–2.50%</td><td align="right">50%</td></tr></tbody></table>

{% hint style="info" %}
For the latest borrow APY (within the band shown), see the [Euler Change Log](/vaults/vaults/euler/change-log.md).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kpk.io/vaults/vaults/euler/ethereum/eth-yield-term/borrow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
