Reserve Protocol
Score Breakdown
| Category | Weight | Score |
|---|---|---|
| Audits & Historical | 20% | 1.00 |
| Centralization & Control | 30% | 2.50 |
| Funds Management | 30% | 1.50 |
| Liquidity Risk | 15% | 2.00 |
| Operational Risk | 5% | 1.30 |
| Final Score | 1.8 / 5.0 | |
Overview
ETH+ is a yield-bearing diversified Ethereum LST basket built on Reserve Protocol. It is an over-collateralized RToken backed by a basket of liquid staking tokens. Staking rewards from underlying LSTs accrue to ETH+ holders through an appreciating basket-to-token ratio (basketsNeeded / totalSupply). RSR stakers provide a first-loss overcollateralization buffer in exchange for a share of revenue.
Yield Source: Ethereum staking rewards from the underlying LSTs (currently 3.85% APY per DefiLlama).
Current Basket (basket nonce 9, set 2026-04-23):
| Asset | Issuer | Quantity per BU | ETH per BU | Share of basket |
|---|---|---|---|---|
| wstETH | Lido | 0.40500 | 0.5001 | 50.0% |
| weETH | Ether.fi | 0.20094 | 0.2200 | 22.0% |
| sfrxETH | Frax | 0.08630 | 0.1000 | 10.0% |
| rETH | Rocket Pool | 0.08595 | 0.1000 | 10.0% |
| ETHx | Stader | 0.07346 | 0.0800 | 8.0% |
Onchain values fetched from BasketHandler.quote(1e18, ROUND) and each LST's exchange-rate function. Total ETH per BU ≈ 1.00.
Supply / Backing (as of 2026-05-18, block ~25,124,102):
| Metric | Value | Source |
|---|---|---|
| ETH+ totalSupply | 21,065.86 ETH+ | totalSupply() |
| basketsNeeded | 22,720.73 BU | RToken.basketsNeeded() |
| ETH+ → BU ratio | 1.0786 BU per ETH+ | computed |
| Backing held by BackingManager | ~22,803 ETH-equivalent | LST balances × exchange rates |
fullyCollateralized() |
true | BasketHandler.fullyCollateralized() |
status() |
0 (SOUND) | BasketHandler.status() |
| Trading paused / Issuance paused / Frozen | false / false / false | Main |
TVL:
- ETH+ alone: ~$47.59M (DefiLlama yield pool, ETH price $2,102)
- Reserve Protocol total: $77.55M on Ethereum / ~$87M total (DefiLlama, peak $530M on 2025-09-13)
- Net change since last refresh (2026-04-27): −29% in USD ($67.0M → $47.6M), −22.7% in ETH+ (27,248 → 21,066). Cumulatively since 2025-12-22 assessment: −56% USD ($108M → $47.6M), −42% ETH+ (36,246 → 21,066) — supply contraction continues; current TVL is ~19% above the $40M reassessment trigger
Links:
Risk Summary
Key Strengths
- Fully onchain, verifiable backing.
fullyCollateralized()is true; any holder can prove the basket onchain in one call - Direct, permissionless redemption at the basket value with no fee and only a throttle-based pace limit
- Diversified LST basket. No single LST exceeds 50%; idiosyncratic risk is meaningfully spread
- Comprehensive audit history. Trail of Bits, Code4rena, Trust Security, Solidified, Halborn, Ackee, Oak Security, Certora — and v4.2.0 specifically was audited before activation
- Programmatic operations. No admin-controlled exchange rate, no off-chain accounting, no minting role
Key Risks
- Recently rotated governance (25 days old). The v4.2.0 upgrade and new timelock/governor went live on 2026-04-23. Inside the 30-day post-deployment monitoring window; no incidents observed
- Guardian Safe concentration. A 3-of-6 multisig can pause, freeze, and cancel governance proposals — the binding constraint inside any 3-day timelock window
- Deployer EOA still holds PAUSER role. Re-verified onchain on 2026-05-18; in place since the 2023 deployment without incident; bounded (cannot freeze redemption, cannot seize funds) but a single private-key compromise could disrupt issuance/trading. Tracked on the role-holder watch list
- Thin RSR overcollateralization (~2.90%). Up from 2.4% at the prior refresh, but only because TVL contracted faster than the RSR buffer; the first-loss buffer remains small in absolute terms (~$1.38M) and scales with RSR price, not ETH+ TVL
- Sustained TVL contraction. Supply has dropped ~42% in ETH+ and ~56% in USD since the 2025-12-22 assessment, with another −22.7% in the 21 days between refreshes. Current TVL ($47.6M) is within 19% of the $40M reassessment trigger; no obvious onchain cause — worth understanding before increasing exposure
Critical Risks
- None identified that would block integration. The EOA-pauser finding is fixable by Reserve governance and does not threaten user funds directly
Full Report
Audits and Due Diligence Disclosures
Audit Status: Comprehensive, with audits covering each major version including the recently-deployed v4.2.0.
Audit reports are published in reserve-protocol/protocol/audits and on the Reserve Security docs:
| Firm | Scope | Date |
|---|---|---|
| Trail of Bits | Reserve Protocol (security review + fix review) | 2022-08 |
| Solidified | Reserve Protocol core | 2024-04 |
| Solidified | Reserve Protocol 3.4.0 | 2024 |
| Halborn | Reserve Protocol smart contracts | — |
| Ackee Blockchain | Reserve Protocol | — |
| Code4rena | Releases 2.1.0, 3.0.0 (core + collaterals), 4.0.0 | 2023–2025 |
| Trust Security | Releases 3.1.0, 3.2.0, 3.4.0 Spell, 4.2.0 | 2024–2026 |
| Oak Security | Reserve Updates (4.x) | 2026-03-12 |
| Certora | Formal verification of FixLib |
2026-04 |
The current onchain Main implementation (version() = "4.2.0") was deployed and granted ownership at block 24,944,370 (2026-04-23) via the Upgrade4_2_0 spell (0xbff761d367291281f3c4db4bda2c591d6dde3601).
Findings: No critical unresolved issues disclosed. v4.2.0 audits (Trust Security, Oak Security, Certora) were completed before mainnet activation.
Smart Contract Complexity: Moderate–High. Multi-contract architecture (Main, RToken, StRSR, BackingManager, BasketHandler, AssetRegistry, Distributor, Furnace, Broker, RSRTrader, RTokenTrader) plus per-collateral plugins. All contracts are upgradeable ERC-1967 proxies behind the Main access controller.
Bug Bounty
Platform: Cantina Maximum Payout: $10,000,000 (Critical tier) Severity tiers: Critical $10M / High $100k / Medium $5k / Low $1k Status: Live (launched 2026-03-26; 106 findings submitted as of this assessment) Link: https://cantina.xyz/bounties/3709ca85-4050-407e-9b36-51f5d5ea9b00
Reserve Protocol is not enrolled in the SEAL Safe Harbor agreement (verified via safeharbor.securityalliance.org).
Historical Track Record
Time in Production:
- Reserve Protocol RTokens: live since 2023-04 (~3 years)
- ETH+ specifically: deployed in basket nonce 1 at block 17,086,178 (2023-04-26), ~3 years
- Current architecture upgraded to v4.2.0 on 2026-04-23 (25 days before this assessment) — still inside the 30-day post-upgrade monitoring window, no incidents observed
Past Security Incidents:
- No exploits or hacks on Reserve Protocol or ETH+
- No collateral default events triggered for ETH+
- StRSR exchange rate is monotonically increasing (1.1654 RSR/stRSR currently, up from 1.162 at prior refresh) — no RSR has been seized to cover losses
Peg / Basket Stability:
- ETH+ has no fixed peg to ETH; it tracks the appreciating basket value (currently 1.079 ETH per ETH+)
- No significant deviations from basket value have been observed
- Direct redemption provides a hard floor
TVL History:
- Peak: ~36,246 ETH+ (~$108M) at 2025-12-22
- Today: 21,066 ETH+ (~$47.6M) — supply has contracted ~42% in ~5 months, including ~22.7% in the last 21 days
- Reserve total TVL peaked at $530M on 2025-09-13, now ~$87M ($77.55M Ethereum + $2.34M Base + ~$10k Arbitrum + staking)
- The supply contraction is large enough to warrant continued monitoring; protocol remains fully collateralized and
status()is SOUND. Current ETH+ TVL is within 19% of the $40M reassessment trigger
Team Track Record:
- Reserve has been building since 2018; previously launched RSV (USD-pegged stablecoin)
- Active development continues: most recent commits add RToken Deprecation tooling, Certora verification, weETH whale tests
- Operator entity is ABC Labs, LLC (per reserve.org legal notice) — not "Reserve Labs" as commonly written. The Reserve trademark is held by Confusion Capital
Funds Management
Fund Delegation: Yes. ETH+ holds five LSTs as collateral, each wrapping its own underlying staking protocol:
- wstETH → Lido (50.0%)
- weETH → Ether.fi (22.0%) — added since prior assessment
- sfrxETH → Frax (10.0%)
- rETH → Rocket Pool (10.0%)
- ETHx → Stader (8.0%)
Due Diligence on Underlying Protocols:
- wstETH (Lido) and rETH (Rocket Pool) are blue-chip LSTs with the longest track records
- weETH (Ether.fi) is the largest restaking-LST and has Chainlink price feeds
- sfrxETH (Frax) has historically lacked a Chainlink ETH-denominated PoR; LlamaRisk flagged it as more centralized — Reserve uses an alternative oracle plugin
- ETHx (Stader) is the smallest, both in basket weight (8%) and standalone TVL — highest single-name idiosyncratic risk in the basket
Monitoring Fund Delegation:
- Basket is fully onchain and queryable via
BasketHandler.quote()andnonce() - Basket changes emit
BasketSet(uint256 nonce, address[] erc20s, uint192[] refAmts, bool disabled) - Governance proposals to change the basket pass through Governor Anastasius (2-day voting delay, 10% StRSR quorum, 3-day vote) plus a 3-day timelock — total floor ~8 days from proposal to execution
Accessibility
Minting:
- Permissionless. Anyone can call
RToken.issue()/issueTo() - Atomic in a single transaction; users deposit the proportional basket of LSTs (or a single asset using the Reserve "zap" router)
- Subject to issuance throttle:
amtRate = 1,700 ETH+/hr,pctRate = 10%/hr. Effective hourly cap is the larger of the two;issuanceAvailable() = 2,106.59 ETH+at the time of writing - Backing is required to mint. There is no admin-controlled mint function;
MAINcannot mint ETH+ directly, and there is no role labeled "minter"
Redemption:
- Permissionless.
RToken.redeem(amount)returns the prorata basket (or a custom basket if redeeming during a basket switch viaredeemCustom) - Throttle:
amtRate = 2,000 ETH+/hr,pctRate = 12.5%/hr.redemptionAvailable() = 2,633.23 ETH+currently - A full redemption of the entire supply would take ~8 hours under the current pctRate cap
- No fees, no cooldown. Redemption is paused only if
tradingPausedor system frozen
Slippage:
- Mint/redeem is a basket operation — no slippage from the protocol itself
- Slippage applies only when a user converts the redeemed LSTs back to ETH on a DEX
Collateralization
On-Chain Collateralization: Yes — 100%, fully onchain.
- All collateral is held in the
BackingManager(0x608e1e01EF072c15E5Da7235ce793f4d24eCa67B) - Verified directly: backing manager holds ~9,233 wstETH, ~4,581 weETH, ~1,970 sfrxETH, ~1,959 rETH, ~1,675 ETHx → ~22,803 ETH-equivalent vs. 21,066 ETH+ supply
BasketHandler.fullyCollateralized()returnstrue
Collateral Quality: High. All five collateral assets are established Ethereum LSTs, each with independent audits, Chainlink-style price feeds (or vetted alternates), and active markets.
Over-Collateralization (RSR buffer):
- StRSR contract holds ~794M RSR as a first-loss buffer (down ~12% from ~898M at the prior refresh)
- At the current RSR price (~$0.001735), this is ~$1.38M of buffer for $47.59M of ETH+ TVL → ~2.90% OC
- The OC ratio is up from ~2.4% (prior refresh) because ETH+ TVL contracted faster than the RSR buffer in USD terms; still close to LlamaRisk's 2024 finding (2%) and remains the protocol's main material weakness. The buffer scales with RSR price, not ETH+ TVL
Default Handling:
BasketHandler.refresh()checks each collateral's price/peg every interaction- A collateral that depegs persistently transitions through
IFFY → DISABLEDand is removed from the basket - The protocol then triggers automatic auctions to swap the disabled collateral, using the backup basket and, if needed, seizing RSR from StRSR
- Emergency collateral: WETH (
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) is in the asset registry as a fallback
Risk Curation:
- Basket composition, collateral plugins, and throttle parameters are all governance-managed
- Changes require Governor Anastasius proposal + 3-day timelock execution
Off-Chain Components: None. Fully onchain — no custodians, no off-chain reserve management, no T-bills, no real-world assets.
Provability
Reserve Verification: Easy.
BasketHandler.basketsHeld()andRToken.basketsNeeded()are public view functions- Backing computation is deterministic from onchain state plus oracle prices
- Anyone can call
BasketHandler.refresh()and the protocol's status updates atomically
Yield Calculation: Transparent. Yield is the appreciation of basketsNeeded / totalSupply, driven entirely by the appreciation of the underlying LSTs.
On-Chain Reporting: Programmatic. There is no admin-controlled exchange rate.
Off-Chain Reserves: None.
Third-Party Verification: Chainlink price feeds are used for collateral plugins (with curated alternates where Chainlink is not available, e.g., sfrxETH).
Minting Without Backing: Not possible. There is no minter role and no admin function to mint ETH+ outside of RToken.issue(), which requires the user to deposit the basket.
Liquidity Risk
Direct Redemption: Always available (subject to throttle). 1:1 with the basket.
On-Chain DEX Liquidity (per DefiLlama, 2026-05-18):
| Pool | TVL |
|---|---|
| Curve ETH+/WETH | $12.6M |
| Convex ETH+/WETH (boosted Curve) | $7.8M |
| Beefy ETH+/WETH | $5.8M |
| StakeDAO ETH+/WETH | $5.1M |
| Curve ETH+/EUSD-RSR | $2.5M |
| Curve ETH+/ETH | $0.4M |
| Uniswap v3 WETH/ETH+ | $0.9M |
| Morpho Blue ETH+ | $2.3M |
The primary spot pool (Curve ETH+/WETH) has ~$12.6M TVL. With Convex/Beefy/StakeDAO wrappers around the same Curve pool, the underlying Curve LP TVL is the binding liquidity for direct DEX exits. Morpho Blue ETH+ collateral exposure has contracted from $3.9M to $2.3M since the prior refresh.
Slippage Analysis (rule-of-thumb):
- <$100k: Minimal (<0.5%) via direct redemption
- $100k–$1M: 0.5–2% via redemption or DEX
$1M: Direct redemption preferred; selling components on their own deep markets is the cleanest exit
Withdrawal Restrictions:
- Throttle limits redemption to ~12.5% of supply per hour (~2,633 ETH+ now)
- A full exit of the entire ETH+ supply would take ~8 hours
Historical Liquidity:
- No liquidity-stress incidents recorded
- DEX liquidity has tracked the supply contraction since Q1 2026; primary Curve pool TVL is roughly flat over the last 3 weeks
Centralization & Control Risks
Governance
Contract Upgradeability: Yes. All core contracts are ERC-1967 proxies. Implementations can be swapped by the OWNER role on Main.
Governance Path (post-2026-04-23 upgrade):
| Component | Address | Notes |
|---|---|---|
| Main (proxy) | 0xb6A7d481719E97e142114e905E86a39a2Fa0dfD2 |
version() = 4.2.0 |
| Main implementation | 0xc5bf686cfb85786fcfff557297d4aff8f4e15e44 |
|
| Governor (Governor Anastasius v1) | 0xa8a608b9b558235e7f87d7024cc05e6f47d62022 |
OZ Governor, voting token = StRSR |
| Timelock | 0xd7985a7c617febc4a833b5f70cfa79b40c313ad2 |
OZ TimelockController, getMinDelay() = 259,200s (3 days) |
| Guardian Safe (canceller + pauser + freezers) | 0xd5fe2780eb882d1da78f2136b81c2a4395488c98 |
3-of-6 Gnosis Safe |
Governor Anastasius parameters (verified onchain):
- Voting delay: 172,800s (2 days)
- Voting period: 259,200s (3 days)
- Quorum: 10% of staked RSR (
quorumNumerator/quorumDenominator = 10/100) - Proposal threshold: 66,236.65 stRSR (down from 76,720.92 at the prior refresh — this is a percentage of stRSR supply, so it tracks RSR un-staking)
End-to-end change cadence: ~2 days (voting delay) + 3 days (vote) + 3 days (timelock) = ~8 days from proposal to execution, assuming quorum.
Privileged Roles on Main (verified via hasRole):
| Role | Holder(s) | Power |
|---|---|---|
OWNER (bytes32("OWNER")) |
Timelock 0xd7985a7c… |
Upgrade implementations, change basket, modify parameters, manage all other roles |
| PAUSER | Guardian Safe 0xd5fe2780… and an EOA 0xe3e34fa9… |
Pause issuance & trading (cannot freeze redemption) |
| SHORT_FREEZER | Guardian Safe 0xd5fe2780… |
Freeze the system for 6 hours |
| LONG_FREEZER | Guardian Safe 0xd5fe2780… |
Freeze for an extended period (governance-set) |
| Timelock CANCELLER | Guardian Safe 0xd5fe2780… |
Cancel queued timelock proposals |
Finding: The deployer EOA 0xe3e34fa93575af41bef3476236e1a3cdb3f60b85 still holds the PAUSER role on Main (re-verified onchain on 2026-05-18 via hasRole). It was granted at deployment (block 17,086,220) and was not revoked in the 4.2.0 upgrade transaction. PAUSER cannot freeze the system or seize funds, but a single private-key compromise here would let an attacker pause issuance and trading, disrupting the protocol. The condition has existed since 2023 deployment with no incident; documented here for the role-holder watch list rather than scored as a discrete penalty.
Old governance (pre-upgrade, no longer authoritative): the previous timelock 0x5f4A10aE2fF68bE3cdA7d7FB432b10C6BFA6457B was revoked from OWNER, PAUSER, SHORT_FREEZER, and LONG_FREEZER at block 24,944,370.
Powers Analysis:
- Governance cannot seize user funds directly
- Governance can swap collateral, change implementations, modify throttles, and change oracles — all subject to the 3-day timelock, giving holders a window to redeem
- The Guardian Safe can pause and freeze, and can cancel governance proposals — concentrating real-time emergency power in a 3-of-6 multisig
- The deployer EOA can pause issuance/trading
Risk Assessment: Medium. The 3-day timelock and 8-day proposal cycle are at the lower end of acceptable; the guardian Safe and active EOA pauser are the main centralization vectors.
Programmability
System Programmability: Highly programmatic.
- Basket valuation, default detection, redemption, and reward distribution are all onchain
Furnace.melt()andDistributor.distribute()can be called by anyone (no privileged keeper)- PPS is
basketsNeeded / totalSupply— no oracle, no admin update, no offchain accounting
Non-Programmatic Elements:
- Basket composition and weights are set by governance
- Oracle plugin addresses are governance-controlled (some collateral plugins use non-Chainlink oracles where Chainlink lacks coverage)
External Dependencies
Critical dependencies:
- Chainlink — used for the bulk of collateral price feeds. Failure of a single feed only impacts the corresponding collateral
- Five LST issuers — Lido, Ether.fi, Frax, Rocket Pool, Stader. A solvency event at any single issuer would trigger that collateral's default path; ETH+ would revert to the backup basket and slash RSR to recapitalize
- Ethereum L1 — fully onchain, no cross-chain bridges
Concentration:
- Lido (wstETH) is 50% of basket value — the largest single-name dependency
- The remaining 50% is split across four LSTs, which materially diversifies idiosyncratic risk
Operational Risk
Operating Entity: ABC Labs, LLC (per reserve.org legal notice). The "Reserve" trademark is held by Confusion Capital, a separate entity.
Team Transparency: Public, doxxed core team with established reputation; long history of public communication.
Documentation: Comprehensive technical and developer documentation; per-version audit reports published in-repo.
Communication Channels:
- Discord (active, multiple thousand members)
- Twitter: @reserveprotocol
- Forum: discourse.reserve.org
- GitHub: reserve-protocol/protocol (active)
Development Activity: Active. Recent commits (last 90 days) include weETH integration tests, Certora formal verification, RToken deprecation tooling, and the v4.2.0 audit cycle.
Incident Response:
- Active Cantina bug bounty ($10M max payout)
- Pause/freeze mechanisms at multiple severity levels
- Guardian multisig with timelock-cancellation power for live-incident response
- No prior incidents to assess response from
Monitoring
1. Governance Monitoring (MANDATORY)
| Component | Address | Events / Functions to monitor |
|---|---|---|
| Governor Anastasius v1 | 0xa8a608b9b558235e7f87d7024cc05e6f47d62022 |
ProposalCreated, ProposalExecuted, ProposalCanceled, VoteCast |
| Timelock | 0xd7985a7c617febc4a833b5f70cfa79b40c313ad2 |
CallScheduled, CallExecuted, Cancelled |
| Guardian Safe | 0xd5fe2780eb882d1da78f2136b81c2a4395488c98 |
Owner changes, threshold changes, all executions (yearn safe-monitoring) |
Main (hasRole) |
0xb6A7d481719E97e142114e905E86a39a2Fa0dfD2 |
RoleGranted, RoleRevoked for OWNER / PAUSER / SHORT_FREEZER / LONG_FREEZER |
Action: add to yearn/monitoring. Recommended cadence: hourly poll for queued timelock calls; immediate alert on any RoleGranted/Revoked or Guardian Safe execution.
Important: the deployer EOA 0xe3e34fa93575af41bef3476236e1a3cdb3f60b85 still has PAUSER. Add to the role-watch list and alert on any transaction from it.
2. Backing / Collateralization Monitoring (MANDATORY)
| Check | Function | Threshold |
|---|---|---|
| Fully collateralized | BasketHandler.fullyCollateralized() |
must be true |
| Basket status | BasketHandler.status() |
must be 0 (SOUND); alert on 1 (IFFY) or 2 (DISABLED) |
| Backing ratio | RToken.basketsNeeded() / RToken.totalSupply() |
must be ≥ 1.0 |
| Basket nonce changes | BasketHandler.nonce() and BasketSet event |
alert on any change |
Recommended cadence: hourly.
3. RSR Buffer Monitoring
| Component | Address | Check |
|---|---|---|
| StRSR | 0xffa151Ad0A0e2e40F39f9e5E9F87cF9E45e819dd |
exchangeRate() — alert on any decrease (RSR seizure) |
| RSR balance held by StRSR | RSR.balanceOf(StRSR) |
track absolute value; alert on >10% drop |
OC ratio = (RSR_balance × RSR_price) / ETH+_TVL — currently ~2.90%. Alert if it drops below 1%.
4. Throttle Monitoring
RToken.issuanceAvailable() and redemptionAvailable() should normally track 10–12.5% of supply. Persistent depletion of redemptionAvailable indicates large coordinated exits; alert if it stays below 1% of supply for >2 hours.
5. Implementation Upgrade Monitoring
ERC-1967 implementation slot (0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc) on every core contract: alert on any change.
Appendix: Contract Architecture
┌──────────────────────────────────┐
│ Governance layer │
│ │
┌──────│ Governor Anastasius v1 │
│ │ 0xa8a608b9… │
│ │ • 2d voting delay │
│ │ • 3d voting period │
│ │ • 10% StRSR quorum │
│ │ • 66,237 stRSR proposal threshold│
│ └──────────────────────────────────┘
│ proposals
▼
┌────────────────────────────┐ ┌────────────────────────┐
│ TimelockController │◀────────│ Guardian Safe (3-of-6) │
│ 0xd7985a7c… │ cancel │ 0xd5fe2780… │
│ minDelay = 259,200s (3d) │ │ + PAUSER, S/L_FREEZER │
└─────────────┬──────────────┘ │ on Main │
│ executes └────────────────────────┘
│ (OWNER role) │
▼ │ (also pauser:
┌──────────────────────────────────┐ │ EOA 0xe3e34fa9…)
│ Main (ERC1967Proxy) │ │
│ 0xb6A7d481… impl 0xc5bf686c… │◀────────────────┘
│ version 4.2.0 │
│ AccessController for all roles │
└────────────┬─────────────────────┘
│ wires
┌──────────┬───────────┼────────────┬──────────┬──────────┬──────────────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
┌───────────┐ ┌────────┐ ┌──────────┐ ┌─────────┐ ┌────────┐ ┌─────────┐ ┌────────────┐
│ RToken │ │ StRSR │ │ Backing │ │ Basket │ │ Asset │ │ Furnace │ │ Distributor│
│ ETH+ │ │ stRSR │ │ Manager │ │ Handler │ │ Reg. │ │ +Broker │ │ +Traders │
│ 0xE72B… │ │ 0xffa1…│ │ 0x608e… │ │ 0x56f4… │ │ 0xf526…│ │ │ │ │
└─────┬─────┘ └───┬────┘ └────┬─────┘ └────┬────┘ └────────┘ └─────────┘ └────────────┘
│ │ │ │
│ issue/ │ stake/ │ holds │ defines
│ redeem │ unstake │ collateral │ basket
│ │ ▼ ▼
│ │ ┌─────────────────────────────────┐
│ │ │ LST collateral plugins │
│ │ │ wstETH 50% weETH 22% rETH 10%│
│ │ │ sfrxETH 10% ETHx 8% │
│ │ └────────────┬────────────────────┘
│ │ │
│ │ ▼
│ │ ┌─────────────────────────────────┐
│ │ │ Underlying staking protocols │
│ │ │ Lido / Ether.fi / Rocket Pool │
│ │ │ / Frax / Stader │
│ │ └─────────────────────────────────┘
│ │ provides 1st-loss capital (≈2.90% OC)
│ ▼
│ ┌──────────────┐
└─────▶│ ETH+ holders │
└──────────────┘
Key trust boundaries:
- The Timelock owns Main; the only path to upgrade or change parameters is governance-proposed and 3-day delayed
- The Guardian Safe (3-of-6) is the only counterparty that can act inside the timelock window — by pausing, freezing, or cancelling proposals
- The deployer EOA can pause but cannot freeze or upgrade
- All collateral is held by
BackingManager; ETH+ holders' redemption is a direct claim on it
Overall Risk Score: 1.8 / 5.0
Risk Tier: LOW RISK
Recommendation: ✅ APPROVED for Yearn integration with standard monitoring, conditional on:
- Completing the 30-day post-v4.2.0 monitoring window (5 more days from this refresh); no incidents observed to date
- Adding all governance / role / backing checks listed in Monitoring to yearn's monitoring repo, including the EOA pauser address
- Watching the supply contraction trend closely — TVL now $47.6M, within 19% of the $40M reassessment trigger; trigger a full reassessment immediately on breach
Reassessment Triggers
- Time-based: Reassess in 6 months or sooner if any trigger below fires
- TVL-based: Reassess if ETH+ TVL drops below $40M or grows above $200M
- Basket-based: Reassess on any
BasketSetevent (basket nonce change) - Governance-based: Reassess on any of:
- New OWNER, PAUSER, SHORT_FREEZER, or LONG_FREEZER role grant on Main
- Guardian Safe owner or threshold change
- Governor or timelock contract replacement
- PAUSER role grant or revoke involving the EOA
0xe3e34fa9…(positive: revocation reduces risk score)
- Collateral-based: Reassess on any LST issuer incident (Lido, Ether.fi, Rocket Pool, Frax, Stader)
- OC-based: Reassess if RSR over-collateralization ratio falls below 1%
- Incident-based: Reassess after any pause, freeze, IFFY/DISABLED collateral status, or RSR seizure