# Morpho

<a href="https://dune.com/kpk/kpk-morpho-vaults" class="button secondary" data-icon="arrow-up-right">Dune Live Metrics</a>

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover-dark data-type="image">Cover image (dark)</th></tr></thead><tbody><tr><td><strong>KPK USDC Prime Core</strong></td><td>Ethereum</td><td><a href="/files/BBjJAZhtnFykIrQJO3ll">/files/BBjJAZhtnFykIrQJO3ll</a></td><td><a href="/pages/aifpTl600wfAlFNW9NTZ">/pages/aifpTl600wfAlFNW9NTZ</a></td><td><a href="/files/DVbCir8Eje6rjBN6nuwD">/files/DVbCir8Eje6rjBN6nuwD</a></td></tr><tr><td><strong>KPK USDC Prime</strong></td><td>Ethereum</td><td><a href="/files/BBjJAZhtnFykIrQJO3ll">/files/BBjJAZhtnFykIrQJO3ll</a></td><td><a href="/pages/13e876500e3410b16b592f38ba84bd5dfc4f649d">/pages/13e876500e3410b16b592f38ba84bd5dfc4f649d</a></td><td><a href="/files/DVbCir8Eje6rjBN6nuwD">/files/DVbCir8Eje6rjBN6nuwD</a></td></tr><tr><td><strong>KPK USDT Prime</strong></td><td>Ethereum</td><td><a href="/files/EJo6PShrdgMgQT7cRMVC">/files/EJo6PShrdgMgQT7cRMVC</a></td><td><a href="/pages/ZEXIHAiz9wapmQOYECHO">/pages/ZEXIHAiz9wapmQOYECHO</a></td><td><a href="/files/fbNqhpO5duktR381EOEm">/files/fbNqhpO5duktR381EOEm</a></td></tr><tr><td><strong>KPK ETH Prime</strong></td><td>Ethereum</td><td><a href="/files/33o4RUaWWfWiGqYD2J7t">/files/33o4RUaWWfWiGqYD2J7t</a></td><td><a href="/pages/b830ca7834f551012f95caf33500629d4bbc7b2c">/pages/b830ca7834f551012f95caf33500629d4bbc7b2c</a></td><td><a href="/files/jgu9WnjtiZ6aoxAFCoIN">/files/jgu9WnjtiZ6aoxAFCoIN</a></td></tr><tr><td><strong>KPK USDC Yield</strong></td><td>Ethereum</td><td><a href="/files/bDdvO9eBL7Px6Jglmec3">/files/bDdvO9eBL7Px6Jglmec3</a></td><td><a href="/pages/5iurDjQxYGZ3Yll7Xk7J">/pages/5iurDjQxYGZ3Yll7Xk7J</a></td><td><a href="/files/IMb9WKyyCVtuRIsZAb81">/files/IMb9WKyyCVtuRIsZAb81</a></td></tr><tr><td><strong>KPK ETH Yield</strong></td><td>Ethereum</td><td><a href="/files/zkhW07QYjO1IvSHu3vhv">/files/zkhW07QYjO1IvSHu3vhv</a></td><td><a href="/pages/g0YVOS28O4zqxRJQa13T">/pages/g0YVOS28O4zqxRJQa13T</a></td><td><a href="/files/zKANSBkK3V9v9FitpjgF">/files/zKANSBkK3V9v9FitpjgF</a></td></tr><tr><td><strong>KPK EURC Yield</strong></td><td>Ethereum</td><td><a href="/files/ALRGRkrLMUZH10AqiFg2">/files/ALRGRkrLMUZH10AqiFg2</a></td><td><a href="/pages/d663506c0ed3526ae0d9e26f5a763d4049e5817b">/pages/d663506c0ed3526ae0d9e26f5a763d4049e5817b</a></td><td><a href="/files/MqLTFvMeodcT087ycude">/files/MqLTFvMeodcT087ycude</a></td></tr><tr><td><strong>KPK USDC Yield</strong></td><td>Arbitrum</td><td><a href="/files/bDdvO9eBL7Px6Jglmec3">/files/bDdvO9eBL7Px6Jglmec3</a></td><td><a href="/pages/c2a002bf8eb13d7bbcd84903325bd3716c3f7df4">/pages/c2a002bf8eb13d7bbcd84903325bd3716c3f7df4</a></td><td><a href="/files/IMb9WKyyCVtuRIsZAb81">/files/IMb9WKyyCVtuRIsZAb81</a></td></tr></tbody></table>

### Protocol overview

[Morpho](https://morpho.org/) is a lending environment enabling ERC-4626 vaults that accept a single deposit asset and allocate it across underlying isolated lending markets. Depositors supply liquidity and earn lending yield; curators decide allocation eligibility and set safeguards.

{% hint style="info" %}
**Vault architecture:** KPK curation runs on **Morpho v2 vaults**, which allocate directly into Morpho v1 markets via the [**Markets V1 Adapter**](https://docs.morpho.org/get-started/resources/contracts/morpho-market-v1-adapter-v2#morphomarketv1adapterv2). The v2 layer adds function-specific timelocks and supports MORPHO rewards. See [Vault Architecture](#vault-architecture).
{% endhint %}

### Curator model

Morpho uses a curator model: curators decide which lending markets a vault can allocate to and set safeguards. KPK acts as curator for selected Morpho vaults, defining safe operating conditions, selecting eligible markets, and reallocating liquidity when needed.\
\
**KPK’s curation focuses on three areas:** market selection, operational scalability through automation, and bespoke market deployments (where needed). All decisions follow the [Risk Framework](/vaults/infrastructure/risk-framework.md), which governs eligibility criteria, risk-tiering, and monitoring cadence.<br>

1. **Market selection and withdrawal reliability**\
   KPK sets market eligibility, exposure limits, and liquidity buffers. Only markets that pass [due diligence](/vaults/infrastructure/risk-framework.md) are enabled. Each approved market receives a **risk tier** and a **per-market supply cap** to limit concentration. Vaults maintain idle buffers designed to support smooth withdrawals.<br>
2. <mark style="color:$primary;">**Real-time automation (agents) and monitoring**</mark>\ <mark style="color:$primary;">Vaults are monitored continuously by agents operated by KPK. They are deterministic programs that execute</mark> <mark style="color:$primary;">**whitelisted functions**</mark> <mark style="color:$primary;">through KPK’s</mark> [<mark style="color:$primary;">Permissions Layer</mark>](https://kpk.io/permissions-layer/)<mark style="color:$primary;">. Agents monitor utilisation, liquidity depth, APY shifts, oracle health, and price divergence versus reference venues. When conditions change, they can reduce or disable exposure to a market, increase idle funds, or rebalance across enabled markets within predefined limits.</mark>
   * <mark style="color:$primary;">**Rebalancing agent:**</mark> <mark style="color:$primary;">improves capital efficiency by reallocating across approved markets using a rules-based approach (e.g. tier- and cap-aware water-filling), subject to liquidity and safety checks.</mark>
   * <mark style="color:$primary;">**Exit agent:**</mark> <mark style="color:$primary;">responds to risk alerts (e.g. oracle staleness or divergence) within seconds by reducing or disabling exposure, increasing withdrawable liquidity, and prioritising safe exits within predefined limits.</mark>\
     \ <mark style="color:$primary;">This combination delivers fast incident response and steady, rules-driven allocation. For the technical design and allowed actions, see</mark> [<mark style="color:$primary;">Automation</mark>](/vaults/infrastructure/automation.md)<mark style="color:$primary;">.</mark><br>
3. **Custom market deployments**\
   Where needed, KPK works with counterparties (e.g. asset issuers or interested borrowers) to deploy bespoke markets and terms under the same risk framework.

### Vault architecture

KPK curation is delivered on **Morpho v2 vaults**, which sit at the top of the stack and route deposits into individual Morpho v1 markets through a single configured adapter:

* **v2 vaults** are the canonical, curated product. Each holds depositor assets, enforces function-specific timelocks, supports MORPHO rewards, and exposes one or more **adapters** that define which allocation targets the vault can use.
* **Markets V1 Adapter** is the adapter currently configured on every KPK v2 vault. It allocates **directly into individual Morpho v1 markets**, the venues where the underlying lending liquidity is held. There is no intermediate v1 MetaMorpho vault in the path: the v2 vault holds positions in v1 markets directly.
* **v1 (MetaMorpho) vaults** are the legacy curated layer. KPK still operates them for direct V1 depositors and is winding down V1 rebalancing as users migrate to V2 (target: end of May 2026). New deposits should go to the V2 vaults.

{% hint style="info" %}
**Why this design:** v2 separates curation policy from allocation venue. Timelocks, role hierarchy, and reward routing live at the v2 layer; the Markets V1 Adapter is one allocation venue and can be replaced or supplemented by v2-native adapters in the future without touching depositor positions or vault governance.
{% endhint %}

### Liquidity and `forceDeallocate`

Withdrawals on Morpho v2 vaults are served first from the vault's idle balance, then from the **liquidity adapter**, a per-vault setting that designates a **single market** as the withdrawal venue. The liquidity adapter is configured on top of the Markets V1 Adapter and points at one of the v1 markets the adapter holds positions in. Withdrawals beyond idle pull from that one market until either the request is filled or that market's available liquidity is exhausted.

This is a structural difference from the previous Vault V1 Adapter setup, where the v2 vault sat above a v1 MetaMorpho vault that could draw from any of its enabled markets in a single transaction. With the Markets V1 Adapter, KPK selects which market backs withdrawals at any given time; the design favours allocator control over default withdrawal breadth. KPK aims to keep the liquidity adapter pointed at the market with the largest combination of vault exposure and underlying available liquidity, and is building monitoring to support more dynamic rotation.

When neither idle nor the liquidity adapter can cover a withdrawal, anyone can call `forceDeallocate(adapter, assets, market, onBehalf)` on the v2 vault to pull liquidity from any specific market in the adapter back to idle. The call is permissionless and burns a small fraction of `onBehalf`'s vault shares as a **`forceDeallocate` penalty**, set per-adapter, to discourage misuse. Across all KPK v2 vaults the penalty is currently **0.5%** of the deallocated shares (`5e15` scaled by `1e18`).

KPK keeps the penalty above zero deliberately. A penalty of zero lets any address deallocate from any market on behalf of any user. The advantage is that this allows Morpho's frontend to stitch a single-transaction withdrawal across the full set of listed markets; the downside is that it opens up various attack scenarios where third parties can fragment vault allocations against the curator's policy. Lowering the penalty to enable the multi-market default-withdrawal flow is currently under review at KPK, alongside dynamic liquidity-adapter rotation.

### Governance and control

Critical actions follow a layered process designed for transparency, security, and timely response.

{% tabs %}
{% tab title="Governance changes (timelocked)" %}
**v2 vault (curated product):** changes that can expand permissions or increase risk (e.g., role updates, enabling a new market, raising allocation ceilings, adding or removing an adapter, or changing risk parameters) execute via KPK multisigs under **function-specific timelocks** (KPK’s 3/7/14-day schedule, detailed under Key settings and roles below). The Guardian can intervene during the timelock window if required.

**v1 vaults (legacy, winding down):** governance changes still execute under a **3-day timelock** while these vaults remain in operation for direct V1 depositors.
{% endtab %}

{% tab title="Operational changes (not timelocked)" %}
Operational actions within pre-approved bounds, such as `reallocate()` between enabled markets, increasing the idle buffer, or setting a market cap to zero, execute under scoped roles and are not timelocked, allowing agents to respond within seconds.
{% endtab %}
{% endtabs %}

**Key settings and roles**

The following roles and settings apply across all KPK vaults:

* **Owner and sentinel:** [Security Council Safe](https://app.safe.global/transactions/history?safe=eth:0x354C92aF243d53A24feb3dFF20372Af7b7c47478) (5/8)\
  `0x354C92aF243d53A24feb3dFF20372Af7b7c47478`
* **Curator and allocator:** Curator Safe, with a Permissions Layer for agents (2/4). As well as the KPK Deployer 1 (`0xF0Cf1e3Ec6264b03241826f5b2aBda17B4352A75`) and KPK Deployer 2 (`0x331D9C769185AE25233314859d53c2b9203a1204`) holding Allocator roles for emergency scenarios. Visit each vault page for the specific address.
* **Timelocks:**
  * **3 days:** add adapter; increase absolute or relative cap
  * **7 days:** remove adapter, update gates, increase timelock
  * **14 days:** adjust management or performance fees

KPK Morpho v2 vaults apply function-specific timelocks to wrapper configuration (adapter, fee, and risk-parameter changes), and are controlled by the same KPK Safes that govern the corresponding legacy v1 vaults.

For detailed configuration, see [Morpho v2 Roles and Timelocks](https://docs.morpho.org/curate/concepts/roles/#morpho-vaults-v2-roles), the [Morpho Change Log](/vaults/vaults/morpho/change-log.md), and the individual vault pages. For protocol-level context on Morpho v2 versus v1, see Morpho [documentation](https://docs.morpho.org/learn/concepts/vault-v2/#key-feature-comparison-morpho-vaults-v1-vs-morpho-vaults-v2).

{% hint style="info" %}
**Allocator usage:** KPK does not use Morpho's public Allocator role, reducing the attack surface. Automation is instead scoped through KPK’s Permissions Layer and Morpho’s roles system.
{% endhint %}

### Vault configuration

Enabled markets, caps, risk tiers, oracles, allocation rules, and governance addresses are documented on each vault page and kept up to date in the [Morpho Change Log](/vaults/vaults/morpho/change-log.md).<br>

* [Ethereum](/vaults/vaults/morpho/ethereum.md)
  * [KPK USDC Prime Core](/vaults/vaults/morpho/ethereum/usdc-prime-core.md)
  * [KPK USDC Prime](/vaults/vaults/morpho/ethereum/usdc-prime.md)
  * [KPK USDT Prime](/vaults/vaults/morpho/ethereum/usdt-prime.md)
  * [KPK ETH Prime](/vaults/vaults/morpho/ethereum/eth-prime.md)
  * [KPK USDC Yield](/vaults/vaults/morpho/ethereum/usdc-yield.md)
  * [KPK ETH Yield](/vaults/vaults/morpho/ethereum/eth-yield.md)
  * [KPK EURC Yield](/vaults/vaults/morpho/ethereum/eurc-yield.md)
* [Arbitrum](/vaults/vaults/morpho/arbitrum.md)
  * [KPK USDC Yield](/vaults/vaults/morpho/arbitrum/usdc-yield.md)

{% hint style="success" %}
**Live metrics:** Track TVL, APY, allocations, and withdrawal liquidity for KPK Morpho vaults on Dune: <https://dune.com/kpk/kpk-morpho-vaults>
{% 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/morpho.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.
