Altitude logoAltitude Development Partners
Our ApproachEcosystemCulture & TeamResearch
← Research
Medium·May 1, 2026

Anatomy of the Kelp Exploit: How We Turned a Losing Loop Into a 17% APY Position

What happened?

According to Aave’s incident report, Kelp DAO used LayerZero to move rsETH between Unichain and Ethereum. The route was configured so that only one verifier (DVN) had to approve cross-chain transfers a 1-of-1 setup that became the single point of failure. The attacker forged an inbound message claiming tokens had been sent from Unichain, the lone verifier approved it, and Kelp’s Ethereum-side adapter released 116,500 real rsETH (worth roughly $292M at the time) to the attacker without any corresponding burn on the source chain.

Within minutes, the attacker fanned the 116,500 rsETH out from a single intake wallet across seven branch addresses. From there, the branches followed divergent paths: some supplied rsETH as collateral on Aave V3 on Ethereum, some bridged funds to Arbitrum and opened Aave positions there, and others were routed through different venues.

What this triggered?

Borrowing converted the stolen rsETH into other assets WETH, wstETH, stablecoins while keeping the rsETH locked inside Aave as collateral. If rsETH was later frozen or blacklisted, Aave was stuck holding it, not the attacker. In other words, rsETH was no longer fully backed, and Aave was left facing somewhere between $124M and $230M in bad debt depending on how Kelp ultimately allocated the loss.

These scenarios only affected the rsETH market directly; other Aave markets were unaffected at the contract level.

Loans and liquidity on Aave — the spillover

The mechanical fallout went well beyond rsETH itself. Once attackers borrowed real WETH against unbacked rsETH, WETH suppliers raced to withdraw likely on the assumption that first-movers would be made whole and last-movers would eat the residual loss. Within roughly 36 hours, around $5.4B of ETH and WETH had left Aave, and utilization on the core WETH pool spiked to 100%. That utilization spike is what drove the secondary crisis: when utilization is pinned at the cap, Aave’s interest rate model pushes borrow APYs into the double or even triple digits to incentivize repayment and discourage new borrows. Lenders couldn’t exit, and any leveraged position with a stablecoin or LST loan suddenly faced a borrow rate that had multiplied several times over.

A similar accident on Aave happened in 2023, a bad-debt involving Curve. Michael Egorov, Curve’s founder, had borrowed against CRV across Aave and several other lending venues. When CRV’s price fell, his positions came under liquidation pressure on a token with thin on-chain liquidity. Slow liquidations into a thin market created roughly $1.6M of bad debt on Aave. Egorov ultimately resolved the situation by selling CRV OTC for stablecoins and paying down his loans, a process that, even in a much smaller and less complex case, took weeks rather than days. The Aave DAO formally closed the matter only after Egorov fully settled his Aave debt with a $35M CRV deposit in late September 2023, more than two months after the panic began.

The Kelp situation is an order of magnitude larger, multi-party, and legally entangled. Recovery timing is genuinely unknown, and Kelp isn’t moving fast. Immediate thought — you can make money here on high supply rates if you’re willing to lock funds up for several months. Could it drag on that long? I don’t rule it out. If everyone unanimously agrees to depeg rsETH and no one resists, it could resolve in a few days. But what if not? What if there are legal proceedings? Every party was responding through lawyers and trying to shift responsibility, KelpDAO blames LayerZero, LayerZero blames KelpDAO, and Aave blames KelpDAO.

Our position: from +profit to -130% APY

We were running a classic looping strategy on Aave: deposit sUSDe, borrow USDe, swap, redeposit, repeat a 10x leveraged carry trade earning the spread between sUSDe yield and USDe borrow cost. Before the exploit, that spread was healthy and the position was solidly profitable. This article [link] explains the reason’s Altitude Digital Assets decided to enter the position.

After the exploit and the WETH-driven liquidity shortage, the entire Aave rate surface changed. Our deposit in sUSDe was earning 3.8% APY while our USDe borrow was costing 17.5% APY. With 10x leverage, our net APY collapsed to roughly –130%. We had to act quickly.

After research, the market and other practitioners offered three exits:

1. Unwind the loop directly (delooping via DEX swaps). Losses here would have been heavy. Because of the thin on-chain liquidity for sUSDe and the fact that no direct sUSDe → USDe pair exists at meaningful size, DEX aggregators would have routed multi-hop (e.g. sUSDe → USDT → USDe), charging LP fees on each leg and stacking price impact. Combined slippage and fees would have cost us about -1.5% of total deposits.

2. Stay in the position and pay the elevated rate. With our leverage, the negative carry was burning ~0.3% of equity per day. The bet here was simple — if Aave and Kelp resolve the bad debt and rates revert, we re-enter the original profitable position. This is essentially paying rent on optionality.

3. Use Ethena’s native unwind. Ethena allows sUSDe to be redeemed (burned) for USDe directly with the issuer at no cost, therefore bypassing the DEX entirely. The catch is the 1-day cooldown on sUSDe before USDe is released, plus operational time for repayment. Realistically, fully unwinding the loop this way takes around 15 days, and during that time we’d still be paying the elevated borrow rate on the residual debt, though on a shrinking notional each day.

We chose none of them.

What we actually did — refinance to Morpho

The team kept researching and looking for a way out that preserved capital and, ideally, made money on the dislocation. We came back to an interview with Paul Frambot, Morpho’s founder, in *The Big Whale* ([link](https://www.thebigwhale.io/article/paul-frambot-morpho-labs-aave-is-a-bank-whereas-morpho-is-an-infrastructure-for-banks)), where he frames the architectural difference between Aave and Morpho. The relevant idea is that Morpho does not run a single shared liquidity pool the way Aave does. Each Morpho market is an isolated, permissionless pair of one collateral asset and one loan asset, with its own oracle and LTV. If a collateral becomes illiquid or compromised, the damage is contained to that one market, which means it cannot pull the rest of the protocol’s rate surface with it the way an event in a single Aave reserve can “ripple” through the whole pool.

On Morpho you are not able deposit one token and borrow any other against it. That fragmentation is usually framed as a downside (less capital efficiency, more markets to bootstrap), but in a regime where the whole point is to *not* be in a shared pool with a contaminated asset, it is exactly what you want.

So we refinanced. Our Aave position was sUSDe collateral / USDe debt. The procedure:

1. Withdraw the maximum available sUSDe from Aave without crossing the liquidation threshold.

2. Supply that sUSDe as collateral on the Morpho sUSDe / USDe (or sUSDe / USDtb) market.

3. Borrow USDe (or USDtb) on Morpho at the lower, uncontaminated rate.

4. Use the borrowed stables to repay USDe debt on Aave.

5. Repeat, each repayment frees more sUSDe to withdraw, which gets supplied to Morpho, which lets us borrow more, which repays more Aave debt.

Loop until the entire position has migrated. The Aave side closes out cleanly; the Morpho side carries similar 7x effective leverage from looping but at a healthy positive spread. End state — the position now yields roughly 17% APY, instead of bleeding 130%.

The lesson is learnt. When a shared-pool lender catches a contagion event, the contagion isn’t just in the affected asset, it’s in every rate on the pool, because rate models react to utilization, and utilization reacts to panic. Isolated-market lenders are the natural escape hatch from exactly this kind of failure mode. We did not expect to thank Morpho’s market fragmentation for saving a position, but here we are.


Anatomy of the Kelp Exploit: How We Turned a Losing Loop Into a 17% APY Position was originally published in Altitudedp on Medium, where people are continuing the conversation by highlighting and responding to this story.

Read on medium.com ↗