TL;DR

How it works

USDC deposits mint fLiteUSD and park in Fluid’s fUSDC — the whole withdrawal buffer, $14.37M (34.8% of posted NAV). A Strategy Handler (0x066e…A965) pulls the rest to per-chain strategies running Instadapp DSAs, which borrow USDC/USDT against yield-bearing stables in Fluid’s own vaults. Exit is redeem() less 5bp, reverting InsufficientIdleFunds once the buffer is short — no queue.

No oracle prices this vault and the holder’s position cannot be liquidated. totalAssets() is exchangePrice × totalSupply — a liability restated, not a measurement. The loops are liquidated downstream on Fluid’s feeds, but nothing propagates back; the accrual formula is the only live path to the posted price.

Yield — two legs, neither organic. A 6.00% fixed rate (cap 30%) and a $3M/yr reward budget (cap $100M); holders get the higher. At $41.3M the budget binds at 7.26%, so nothing credited is earned. The legs cross at $3M ÷ 6% = $50M TVL, above which accrual reverts to the base. The idle third earns 5.16% — a 2.1pp drag, and the reason to hold less buffer.

Label vs exposure. The page promises “an optimal mix of yield bearing stablecoins such as sUSDe, syrupUSDC, syrupUSDT, and sUSDai.” On-chain 95.7% of gross collateral ($145.8M of $152.4M) is sUSDai-collateralised at 83.9% blended LTV; the syrupUSDC, syrupUSDT and sUSDe vaults hold dust, and $6.55M gross is USDe and PayFi Strategy Token. An unmarketed Solana leg was added 2026-08-10.

Capital quality: rented — ~860 holders, top holder 6.3%, but supply fell 43.3% from its 2026-04-15 peak to 04-24, still 89.4% of peak.

Risks

Verified on-chain at Ethereum block 25,739,860 (2026-08-12 15:37 UTC), with Arbitrum and Plasma read at their chain heads within ~2h: price mechanics, both rate legs, buffer history from launch, pause flags, every privileged key’s composition, both proxy admins, all four strategy registrations, every funded position’s collateral / debt / LTV, sUSDai concentration, the assets-vs-liabilities reconciliation, and that fundReserves() has never emitted. Taken on trust: what backs sUSDai off-chain, and Fluid’s core code — audited, but not re-derived, and the Code4rena results are private.

IDRiskMechanismSource + our delta
R1A loss can never mark down; late exiters eat itupdateExchangePrice() reverts on any decrease and accrual is a set rate, so a loss drains the buffer, not the price — early redeemers leave at par. Assets $41.18M vs liabilities $41.34M: short ~$161K (0.39%). Exit: any InsufficientIdleFunds revert.The RFC’s headline protection is a “500,000 USDC reserve fund [that] prevents exchange rate decreases”; BA Labs calls it “seeded at launch”. On-chain fundReserves() has never emitted, getReserves() = 0, and the handler holds $0.22.
R2Reconciliation structurally broken since launch_getTotalNetAssets() reverts NavTimestampsOutOfRange past a 1h tolerance. The Arbitrum and Plasma mirrors read $3.00 / $3.01, navTimestamp 2026-03-09 — 155.7d stale — so reconcileReserves() can never run. Exit: getLastReconciliationTimestamp() still 0 next review.Ours; not raised by BA Labs. The capital is real ($6.34M + $2.44M) — the accounting, not the money, is missing. The Solana leg registers chainId = 1, so the freshness guard never applies to it.
R3Exit has already failed twice, for 15 daysRedemption is gated on getIdleBalance(), which sat below 1% of NAV on 15 of 147 daily samples: 04-21→04-24 at $0.08–$22 against ~$26.5M of claims, and 06-04→06-14 under $400K. Exit: buffer < 10% of NAV for > 24h.BA Labs got as far as “the worst-case exit time cannot be quantified precisely from public materials alone”; we quantified it from chain state. Corroboration: across the three April days gross deposits and withdrawals match within $6 and supply froze at 26,187,723 — exits were funded by that day’s depositors.
R4One un-timelocked 7-of-14 wallet can take the fundsThe 24h timelock gates the vault’s owner functions but not the proxy admins that move fundsgetAdmin() on the handler and the mainnet strategy is the Avocado. addImplementation() registers arbitrary delegatecall; pullFunds() is uncapped. Exit: unexpected LogSetImplementation / LogSetAdmin.Fluid’s risk docs name a Team Multi-Sig (0xa8c3…CCC5) that “does not have access to funds” — true but irrelevant here: it is 4-of-8 and isAuth = false on this vault. The wallet that can move funds is undisclosed. Ours.
R5The whole book is one young, thinly-held credit assetsUSDai backs 95.7% of collateral and exits via a FIFO queue on 30-day epochs that roll when unfilled. 97.0% of Ethereum’s sUSDai sits in Fluid, ≥75% of it this vault — deleveraging means selling to itself. Three of ten positions sit within 0.6pp of their cap. Exit: sUSDai discount > 100bp.USD.AI’s wrapper over a PYUSD sleeve plus GPU-backed compute loans; Cayman, unlicensed. BA Labs flagged the concentration in April. Pharos records direct holder-balance freeze/seizure authority. Our delta: the $100M facility (2026-07-06, acc. 2026-08-12) is Fluid’s own — collateral, debt and buffer share one balance sheet.
R6No audit covers the deployed code, and it is 5 months oldFluid’s audits page lists seven reports covering the core Vault, DEX and Liquidity Layer. None covers liteVault, the Strategy Handler, the per-chain strategies or the bridge aggregator. Live 2026-03-08; the 24h timelock arrived only 2026-07-04.BA Labs reached the same conclusion in April, and adds a Code4rena engagement (Aug–Sep 2025) absent from the page — results private — plus a $500K Immunefi bounty. Partial mitigant: updateExchangePrice() is capped at +2% per call.

Key-compromise threshold

The vault carries one role — the Avocado multisig 0x4F6F…D49e (7 of 14 signers; one an EIP-7702-delegated EOA) — which is also its secondary owner, the timelock’s proposer and canceller, and the un-timelocked proxy admin of the Strategy Handler and mainnet strategy. The handler carries five more, the lowest a bare EOA.

Liquidity & exit

redeem() less 5bp, capped by getIdleBalance() = $14,368,663 (34.8% of NAV). No tradeable secondary market for fLiteUSD, and it is not collateral anywhere. The buffer is itself fUSDC, competing with the loops’ own borrowing inside Fluid’s Liquidity layer, which holds $24.4M free — redeeming it consumes 59% of that while the strategy is short the same pool.

Defensible size (post-haircut): $0. A deliberate override of the rubric, not its output: the rubric prices slippage and fails a venue that cannot clear in 30d, and the worst closure here was 11 days. But redemptions clear at par or revert, so the failure mode is a capacity outage — and capacity has twice been ~$0. The $14.37M is discretionary: no code enforces a floor, a 2-of-2 key can move it, and holding it costs ~73bp a year in foregone spread.

Stress scenario (“NOCA exits 50% in 7d while peers also exit”): April is the replay — $18.59M withdrawn over three days against $199,763 of deposits, buffer 39.9% → 24.1% → 7.4% → $0.08, then four days at zero where the only exit liquidity was that day’s depositors.

External reviews

One narrative assessment exists (BA Labs); two algorithmic ratings sit on the Trading Strategy page. Nothing from LlamaRisk, Chaos Labs, Bluechip, DeFiScan or Exponential. Per rubric.md, >90d is stale (⚠️) — the 180d line is an ETH-LST carve-out and does not apply here.