1. Summary:
Following the V1→V2 governance migration, ETH and tokens have been left behind in deprecated and incidental protocol contracts. A confirmed example is ~0.9537 ETH sitting idle in the Governor V1 on Base. This RFC proposes a crowdsourced audit and recovery of stranded balances across legacy governance/staking contracts and incidental dust, sweeping them into the V2 DAO treasury (the Timelock) executed as a series of minimal, individually reviewed SIPs.
2. Context & Motivation:
The migration from Governance V1 to V2 left several contracts deprecated but still holding value. Migrations of this kind routinely strand assets: ETH sent to governor contracts, residual balances in superseded staking/reward modules, early-unstake penalty tokens that accrue to the DAO, and unclaimed/expired rewards.
A concrete balance is already identified:
Governor V1 (0xBE5A4DD68c3526F32B454fE28C9909cA0601e9Fa) holds ~0.9537 ETH. OpenZeppelin Governors exposerelay(address,uint256,bytes)precisely so governance can recover assets sent to them as long as V1 still holds its role on the shared Timelock.
3. Proposal:
Goal: Identify and recover stranded balances across the contracts below, sending recovered assets to the V2 DAO treasury (Timelock).
Step 1: Onchain audit (first deliverable). Lets crowdsource and have a look at relevant contracts, in search for any stranded assets.
Step 2: Recovery mechanism by type:
- Governor contracts:
relay(target, value, data). For V2 this is a simple self-call submitted on the live governor. For V1 it must be a V1-native proposal (propose → queue → executeon V1), becauserelayisonlyGovernanceand the authorizing_governanceCallqueue is filled only inside the governor’s ownexecute(). - Staking / rewards contracts: depends on whether they expose a governance-callable sweep,
withdraw, orclaim-to-DAO. Requires ABI review per contract. - Satellite chains: routed from Base via LayerZero, consistent with the protocol’s hub-and-satellite governance model.
Step 3: Execute as individual SIPs.** Each recovery should be promoted to its own minimal, single-purpose SIP (one action, fully decoded calldata published), not bundled.
This is deliberate: April’s SIP5.31 attack hid a malicious role grant inside a multi-call “V1 cleanup” package, so any V1-touching proposal must be trivially auditable and pre-reviewed by Guardians.
4. Open Questions:
- Materiality threshold: What minimum balance justifies a recovery, given coordination + gas (e.g. skip sub-threshold dust.)
- Satellite dust: Is cross-chain recovery worth the complexity, or should small satellite balances be accepted as stranded?
5. Next Steps:
- Gather feedback and interest in contributions (@Recognized_Delegates).
- Confirm V1’s Timelock role and quorum feasibility (determines whether the V1 ETH recovery is still possible).
- Promote each viable recovery to a minimal child SIP.
- Iterate and, where material, request Guardian pre-review for each V1-touching SIP.
6. Informal Support Indicator:
- Support a coordinated stranded-funds recovery
- Support, but only for the confirmed V1 ETH (skip the broader sweep)
- Do not pursue
Confirmed reference addresses (Base):
- Governor V1 →
0xBE5A4DD68c3526F32B454fE28C9909cA0601e9Fa- Governor V2 →
0x4cEeE1b6289624d381383C1Bb42B118d5f2c3274- Timelock/treasury →
0x447BF9d1485ABDc4C1778025DfdfbE8b894C3796- SUMR →
0x194f360D130F2393a5E9F3117A6a1B78aBEa1624- stSUMR →
0x7cC488F2681cFC2A5E8A00184bfA94ea6d520D1c- & any other timelock controlled contracts.