Skip to main content
economic-shape replay Liquid Staking Incident ·

KelpDAO Unbacked rsETH

Reviewer-first evidence page for fixtures/replays/kelpdao-unbacked-rseth. The claim boundary is scoped to the committed simulation inputs, canonical hash, and deterministic rerun listed below.

Canonical hash ff46b6a1bbcddc4064f1f6eae58c65c291b4856167e800c1c475825c788d0b09
[ 01 ]

What broke

Outcome / verdict

full_backing fired at tick 1. The recorded reason was field=`lst_supply * exchange_rate_config.exchange_rate_bps <= total_assets * 10000` first fired at tick 1.

KelpDAO / rsETH is used here as the named incident inspiration for an unbacked-LST shape: LST supply exceeds the underlying assets that should back it, so each token claim no longer maps cleanly to real backing.

Riptide does not replay EigenLayer, Kelp Protocol, bridge code, or Ethereum transactions. The case study models the accounting geometry on a minimal Solana liquid-staking fork.

Replay shape

The replay initializes a liquid-staking pool with total_assets = 10000, lst_supply = 10000, and exchange_rate_bps = 10000.

At tick 1, an admin-only `admin_mint_lst(5000)` instruction increases LST supply without adding underlying assets or recomputing the exchange rate. The pool now has 15000 LST claims against 10000 assets.

[ 02 ]

Why it matters

This liquid-staking protocol class matters because a supply path that creates LST claims without matching assets can make downstream collateral and redemption assumptions false. The replay mirrors the unbacked-rsETH shape associated with KelpDAO's April 2026 LayerZero bridge exploit ($292M drained, wrapped rsETH stranded across 20+ chains), but it does not claim to reproduce EigenLayer, Kelp, rsETH, or bridge transactions.

[ 03 ]

Reproduce

Start from a clean checkout, install the CLI, then rerun the committed replay configuration. The expected canonical hash is listed in Artifacts.

Install curl -fsSL https://riptide.run/install | sh Rerun cd fixtures/replays/kelpdao-unbacked-rseth && riptide replay config.json --allow-invariant-violations

The public rerun script is mirrored as an artifact; this page renders the minimal command path so reviewers do not need to read generated comments.

[ 04 ]

Artifacts

Canonical hash ff46b6a1bbcddc4064f1f6eae58c65c291b4856167e800c1c475825c788d0b09
Source path fixtures/replays/kelpdao-unbacked-rseth
Source commit 2bca411f1a8a09313db0e4afcadf822e3442a73f
Evidence type economic-shape replay

`full_backing` asserts `lst_supply * exchange_rate_bps <= total_assets * 10000`. The canonical evidence shows `full_backing` first fires at tick 1 and remains fired through the terminal tick.

[ 05 ]

What this does not prove