Paired asset market supports risk segregation over capital efficiency.
The next step is isolating risk not at the market level but at the agreement level.
@Pearcurve does exactly this. Every loan is a bilateral agreement โ one lender, one borrower, fixed rate, fixed term. A default in one agreement never touches another lender.
@aave@compoundfinance Idle capital earns while intents wait. Switching yield sources shouldn't break that. Live on private testnet now. More soon.
End of thread.
Pearcurve lenders earn yield (on @aave, @compoundfinance, etc.) while their intents wait to match. Now they can move liquidity between yield sources and retarget their open intents in one transaction.
๐งต
@aave@compoundfinance Pick source, destination, amount, and which intents to move.
Preflight shows your max migratable balance and the remaining capacity per intent, all before you sign.
Before anything moves, on-chain solvency checks run:
- committed capacity on each intent
- whether the migrated amount covers the intents you're retargeting
- whether what's left on the old source still backs the intents you're not moving
If the math doesn't close, the whole tx reverts.
@aave@compoundfinance migrateYieldSource(from, to, asset, shares, intentIds) does it atomically:
- withdraw the shares from the source you're leaving (from)
- deposit them into the destination (to)
- retarget the selected intents (intentIds) to the destination
@aave@compoundfinance Rates move. Aave dips, Compound starts paying more, and you want to follow the yield.
But each lend intent is tied to a specific source. Switching used to mean: cancel intents โ withdraw โ redeposit โ repost the book.
Slow, and easy to leave intents pointing at empty backing.
Aave V3 and Compound V3 yield adapters complete.
Idle funds backing lend intents can earn @aave or @compoundfinance yield while waiting to be matched. These are self-managed allowing users to migrate funds across integrated yield sources.
When matched, fixed-rate, fixed-term bilateral loan kicks in. Adapter yield stops.
Capital keeps working.
@ethereum
Pearcurve testnet is live on Ethereum Sepolia.
Every loan is a bilateral agreement. One lender, one borrower, fixed-rate, fixed-term.
Intent creation. P2P matching. Origination. Liquidations.
Private testnet phase. Next phase coming soon.
@ethereum
Great read!
The parasite dynamic is exactly right.
The optimiser improves rates but the tight coupling on the variable pool underneath remains. The host still carries the tail risk.
Liquid secondary markets for pool exits makes the existing architecture more resilient. Elegant solution within the pool model.
@Pearcurve takes a different path: remove the pool from the critical path entirely.
Bilateral fixed-rate agreements. Lender and borrower sign on or off-chain intents. Matched via counterparty or solver. Rate and term locked at origination. No pool. No utilisation curve. No host to parasitise.
Idle capital earns @aave yield while waiting, as a standard depositor. Not a parasite on the architecture.
Yield adapters are modular. @aave and @compoundfinance at launch. More adapters post launch.
@euler_mab@ethereum
Who remembers Morpho Optimiser?
Here's how you'd build a better one on Euler today. ๐
And create an interest rate swap market on top.
What does an Optimiser do?
On most lending protocols there's a spread between the lend and borrow rate. It emerges primarily because of the target 90% utilisation rate, which leaves breathing room for lenders to withdraw, and partly because of the protocol fee on borrower interest (typically 10% if the fee switch is on).
Borrowers pay 5%.
Lenders earn 0.9 * (1 - 10%) * 5% = 4.05%.
An Optimiser matches lenders and borrowers peer-to-peer somewhere in the middle where possible, and reverts to the variable rate pool when not.
Borrowers pay 4.5% (10% cheaper).
Lenders earn 4.5% (11% more yield).
Both are strictly better off if they can lend and borrow peer-to-peer.
Extra yield
It can get even better for borrowers on Euler than on a vanilla Morpho market.
The collateral they deposit sits in an Euler vault rather than idle, and can earn yield via cross-collateralisation when there's demand to borrow it.
For example, a borrower posting WETH as collateral for a USDC loan can have that WETH lent out to wstETH holders looping to capture LST yield. The WETH interest then offsets the cost of the USDC loan.
If that yield runs at even 1%, the effective borrow cost drops to 3.5%, a 30% reduction over regular Morpho market borrowing. ๐คฏ
How to build
So how do you build this on Euler today?
Lenders deposit USDC into an Euler Earn vault. The Earn vault has two strategies: Morpho USDC/WETH (variable rate), and an Euler USDC/WETH P2P vault.
We'll call the P2P vault's shares eUSDC-P2P.
When a borrower takes out a new loan they always borrow from the P2P vault, which pulls deposits just-in-time from the Morpho market.
Similarly, when lenders withdraw, liquidity is preferentially pulled from the Morpho market.
The P2P vault gets its rate (call this the matched rate) by reading the IRM on the Morpho market and splitting the spread between lenders and borrowers.
It can do this because it's designed to be 100% utilised at all times. Effectively a pool of P2P loans. When a borrower repays, the excess deposits are pushed back into the Morpho market.
Parasitic?
The Optimiser and its host have a parasitic relationship. A rational lender or borrower should always migrate to the Optimiser, all else equal including risk. The host becomes wholesale backstop liquidity while the Optimiser captures the prime matched flow. Its economics degrade and the pool drifts towards full utilisation, where it becomes structurally fragile.
Morpho Optimiser was originally built on top of Aave's monolithic pool. Morpho's own isolated markets are now liquid enough to be vulnerable to the same dynamic. I say vulnerable, because parasites can kill their host given a long enough time frame.
When Morpho first built on Aave, the Aave team were delighted they had a new integration. They didn't realise Morpho Optimiser was silently hurting them. Every matched borrower was a borrower whose interest no longer flowed into Aave's pool. Utilisation drifted up, rates got more volatile, and Aave was carrying the tail risk while Morpho Optimiser took the benefits.
It's a vulnerability all variable rate pool models share.
The fix: a secondary market for pool exits
The solution, in my opinion, is liquid secondary markets for pools. You need an interest rate swap market, so people can exit a variable rate pool via a swap instead of a withdrawal, just like exiting a bond early.
Fortunately you can build this on Euler too, thanks to a feature that allows any ERC-4626 compatible vault on Euler to be accepted as collateral for any other.
Introduce a new Euler variable vault, call it eUSDC-variable, that cross-collateralises the P2P vault. You can deposit eUSDC-P2P shares and borrow USDC from eUSDC-variable, or vice versa. Since the underlying asset is identical (USDC on both sides, with eUSDC-P2P just being a yield-bearing USDC claim), the LTV can be set extremely high. 95% is realistic.
The main difference is duration risk: matched and variable rates can diverge, so the share values drift apart.
Two things become possible.
First, anyone stuck in the P2P pool can borrow themselves out without waiting for a withdrawal. They deposit eUSDC-P2P as collateral, which earns the matched rate, and borrow USDC from eUSDC-variable, which pays the variable rate. Net carry per second is matched minus variable. They've swapped an illiquid matched position for a liquid variable one, paying only the spread.
Second, anyone with a view on the spread can take a highly leveraged position on it, going long or short, by swapping into and out of the two pools on leverage. You're trading the interest rate market directly.
Pretty neat, huh?
I left Euler back in January and my understanding is that the Euler team have plenty to be getting on with right now, so I don't expect this to be built by them any time soon.
But if anyone fancies giving it a go, I have a vibe-coded prototype ready to share.
Matched vault, custom IRM, EVC borrow router. About 30 lines of actually novel code on top of existing Euler and Morpho infrastructure.
DM me if you want a look.
The original Morpho Optimiser is what put Morpho on the map. No reason a successor couldn't do the same for someone else.
Great interview!
When $885M in tokenised T-bills sits on @ethereum, the next question is what credit infrastructure those assets can access.
Institutional capital needs fixed rates, fixed terms, and explicit bilateral counterparties, not floating rates that reprice every block.
That is what @Pearcurve is building.
@ethereum
@StaniKulechov When banks access DeFi, fixed-rate bilateral credit becomes essential.
Building it on @ethereum with idle capital powered by @aave@Pearcurve
Here is what that looks like in practice.
Lender signs an intent - collateral accepted, LTV, LLTV, rate, maturity.
Borrower signs a matching intent.
Either party or a Solver submits the match.
Loan originates atomically on @ethereum.
Rate locked at origination. Cannot change.
Term fixed. Cannot move.
Risk isolated to that agreement only.
No shared pool. No slope2. No governance delay. No socialised loss.
Lend intent can be backed by funds deposited in a yield source, e.g., @aave or @compoundfinance earning yield while waiting to be matched. Optionally, in wallet mode, funds remain in lenderโs wallet until matched.
When matched - the bilateral agreement takes effect.
Capital always working. Credit always defined.
This is Pearcurve.
Coming soon to Sepolia testnet.
@ethereum
Pearcurve is bringing this to lending on @ethereum.
Intent-based matching. Fixed rates. Isolated risk. Atomic settlement.
Coming soon to Sepolia testnet.
I'm a WETH provider on @aave watching my position go negative after the @KelpDAOxyz rsETH exploit. Can't withdraw โ 100% utilization.
Every failure here is a feature of shared-pool variable-rate lending:
โข One bad collateral listing impairs the whole WETH reserve
โข Slope2 punishes borrowers trapped when whales exit first
โข DAO votes move slower than collateral can lose its backing
โข First-come-first-served exits reward informed capital
โข Umbrella socializes losses onto suppliers who never approved the listing
The architecture that fixes all of this already has its primitives deployed:
Event-driven intent-based lending with fixed rates and P2P matching. Lenders sign intents specifying collateral, LTV, rate, duration, and event triggers. Borrowers sign symmetric intents. Solvers match. Custody stays with the user until atomic settlement.
No shared pool. No slope2. No slow governance. No socialized loss. Each loan is a discrete contract.
We solved this pattern for spot trading with 1inch Fusion. Lending is next.