- Published on
Morpho 101: In-Kind Redemptions in Vaults V2
Introduction
Morpho vaults aggregate liquidity from depositors and allocate it across multiple lending markets. When you withdraw, the vault first checks for idle liquidity in vault. If available, you receive your funds immediately. If not, the vault attempts to withdraw from the underlying markets.
The problem occurs when both the vault and its allocated markets are illiquid. All vault funds are deployed, and all market funds are actively lent to borrowers. Your withdrawal fails. In Vaults V1, you wait. No control over when you exit. You depend on new deposits, borrower repayments, or curator reallocation. Morpho Vaults V2 introduces in-kind redemptions to solve this.
What Are In-Kind Redemptions?
In-kind redemptions do not give you your tokens back. Instead, they convert your vault shares into a direct lending position in one of the underlying markets. You exit the vault by becoming a direct lender in a market the curator allocated to.
Before:
Your position: 10,000 USDC worth of vault shares
Vault's Market A allocation: 10,000 USDC (illiquid)
Your direct Market A position: 0
After:
Your position: 0 vault shares (exited)
Vault's Market A allocation: 0 (deallocated)
Your direct Market A position: 10,000 USDC - 2% fee (direct lender)
You pick which market to target from the vault's active allocations. The market must have enough vault allocation to cover your exit. The mechanism requires temporarily providing liquidity to that market, forcing the vault to deallocate, then keeping that position while exiting the vault.
How It Works
Starting scenario:
You own: 10,000 USDC worth of vault shares
Vault's Market A allocation: 10,000 USDC (illiquid)
Market A idle liquidity: 0 (everything is lent out)
Step 1: Flashloan
Borrow 10,000 USDC from a flashloan provider. This must be repaid in the same transaction or everything reverts.
You now hold: 10,000 USDC (borrowed, must repay)
Step 2: Deposit to Market
Deposit the 10,000 USDC directly into Market A. You now own a separate lending position in this market.
Market A state:
Vault's position: 10,000 USDC (existing)
Your position: 10,000 USDC (new, separate)
Withdrawable liquidity: 10,000 USDC (the cash you provided)
Step 3: Force Deallocate
Call vault.forceDeallocate() to force the vault to withdraw from Market A. The vault can withdraw because you just provided the liquidity.
vault.forceDeallocate(
adapter: MarketAAdapter,
assets: 10000,
onBehalf: your_address
)
The vault withdraws 10,000 USDC, applies a 2% penalty by burning 200 USDC worth of your shares, and keeps 200 USDC. Your remaining shares are now worth 9,800 USDC.
Vault idle cash: 9,800 USDC
Your vault shares: 9,800 USDC worth
Your Market A position: 10,000 USDC (unchanged)
Step 4: Withdraw Vault Shares
Withdraw your remaining vault shares normally. The vault has 9,800 USDC idle.
vault.withdraw(9800, your_address, your_address)
You receive: 9,800 USDC cash
Your vault shares: 0 (exited)
Your Market A position: 10,000 USDC (still there)
Flashloan debt: 10,000 USDC (still need to repay)
Step 5: Repay Flashloan
Use the 9,800 USDC from the vault plus 200 USDC of your own funds to repay the flashloan.
Final state:
Your vault shares: 0 (exited)
Your Market A position: 10,000 USDC (direct lender)
Cost: 200 USDC penalty + gas fees
Conclusion
In-kind redemptions guarantee exit from the vault, not from the market. You escape the vault's illiquidity but inherit the market's liquidity constraints. The benefit is custody and choice. You control your position directly and choose which market to exit into, as long as it has sufficient vault allocation