First-depositor / share-inflation guard
Save (formerly Solend)'s assessment for RD-F-075 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
spl-token-lending reserve model uses INITIAL_COLLATERAL_RATE constant when mint_total_supply==0: 'let rate = if self.mint_total_supply == 0 || total_liquidity == Decimal::zero() { Rate::from_scaled_val(INITIAL_COLLATERAL_RATE)'. This is functionally equivalent to a first-depositor guard — the exchange rate at zero supply is set by a predetermined constant, not derived from user input, preventing donation-inflate attacks. Isolated pools are admin-created (not permissionless), further limiting attack surface.
Sources #
- URLSave (Solend) spl-token-lending reserve.rs — GitHubGitHub solendprotocol/solana-program-library reserve.rs: INITIAL_COLLATERAL_RATE constant used when mint_total_supply==0; fixed initial rate prevents first-depositor exchange-rate manipulationretrieved 2026-05-17
- Deep Dive: Solend cTokens and Isolated Pools — SuperteamSuperteam deep-dive: cToken model — initial exchange rate 1 cSOL = 1.0075 SOL; rate set at deployment not from user depositretrieved 2026-05-17
Methodology #
Determine whether the vault has a first-depositor guard (seed deposit on deploy, virtual-share offset, or floor-check).
See the full factor methodology and distribution across all protocols →