Skip to main content
Source: packages/contracts/src/yield/GimoAdapter.sol Single-purpose, immutable. One adapter per Treasury keeps accounting isolated.

Why a per-market adapter

Gimo’s unstake(lsdAmount) queues a withdrawal ticket against the caller’s address. If two markets shared an adapter, their unbonding queues would commingle and accounting would have to disambiguate. A fresh adapter per market sidesteps that — each adapter sees only its own tickets.

Lifecycle

totalAssets vs pendingClaim

Callers (Treasury) sum the two for the full deliverable amount. Single-purpose accessors avoid the trap of one number meaning two things mid-unstake.

Mainnet probe

Discovered by cast call against the deployed Gimo proxy at 0xAc06d1Df…35aF: The 4 fork tests in GimoAdapter.fork.t.sol exercise the full deposit → unstake → wait → claim round-trip against this real proxy.