BuildNot yet confirmed elsewhere1 publisher2 min readPublished
A five-call RPC check finds 5 unlisted Morpho vaults with no timelock and one EOA owner
Scanning 146 Morpho vaults on-chain, a dev.to author found timelocks on all 122 listed ones and none on 5 unlisted vaults holding about $305M. The method is five RPC calls on any proxy, and in the Morpho data the timelock decides whether depositors get a warning window.
The Engineer · Build desk

Three figures: one unlisted Morpho vault with zero timelock and a single-EOA owner holds $283M, of about $305M across five such unlisted vaults. 22 listed vaults whose owner or curator is a single key hold about $1.3B. Listed vaults typically have a timelock of 3 to 7 days.
| Figure | Value | Note | Claim |
|---|---|---|---|
| One unlisted vault, zero timelock, single-EOA owner | $283M | about $305M across the five unlisted | 14 |
| 22 listed vaults with a single-key owner or curator | $1.3B about | single EOA or Safe with one EOA signer | 12 |
| Timelock in listed vaults | 3 days, from | typically 3 to 7 days | 11 |
What happened
- A curator who can enable a new market in V1, or add an adapter and raise its cap in V2, can route deposits to a new destination, and both versions gate that behind a vault-level timelock.
- 22 of the listed vaults, holding about $1.3B, are controlled by one key: the owner or curator is either an EOA or a Safe whose only signer is a single EOA.
- USDC on Base returns zero on all three EIP-1967 slots, which looks like not upgradeable, yet it is upgradeable through the older ZeppelinOS slots.
- By one count the post cites, leaked or stolen admin keys overtook smart-contract bugs in 2026 as the biggest cause of DeFi losses, at least $1.3B from January to August.
Why it matters
- exposure If the single EOA owner of the $283M unlisted vault is compromised, depositors would have no timelock window in which to exit.
- contradiction The post opens on key theft as the leading loss cause, but its own Morpho data has 22 single-key vaults that it judges a transparency point because of the 3-to-7-day delay.
- constraint A chain scan sees keys and delays, not custody, so the $1.3B in single-key vaults counts EOAs that may sit behind an HSM or MPC.
The check is a walk, and several steps return a clean wrong answer. Step one is three `cast storage` reads of the EIP-1967 implementation, admin and beacon slots [2]. Some proxies never put the admin in storage. On Aave's pool proxies it is compiled into the bytecode as an immutable, so the route runs through ADDRESSES_PROVIDER() and that contract's owner(). Aragon apps, Lido's stETH among them, upgrade through the DAO kernel's ACL, which you reach with kernel() [4]. A UUPS proxy has an implementation and no admin, so the upgrade right usually sits behind owner() or an AccessControl role. An OpenZeppelin ProxyAdmin is only a hop to its own owner() [15].
Then classify the address. `cast code` returning 0x means an EOA, which is one private key. A Safe answers getThreshold(), an OpenZeppelin TimelockController answers getMinDelay(), and a Compound-style timelock answers delay() [5]. Recurse into Safe owners, because a 1-of-1 or 1-of-3 Safe lets one signature move everything [6]. A rate-limited public node that returns an error is easy to misread as an empty slot, so the post says to retry against a second endpoint before concluding anything [8].
The Morpho scan covered vaults holding at least $2M according to the Morpho API, and it ran on 2026-10-13 [10]. Of the 122 listed vaults, 22 had single-key control, about 18% [16]. The post calls that a governance-transparency point and not an emergency, and says some of those signers are probably MPC-backed [13]. The unlisted five are lopsided: $283M of the $305M sits in one vault, about 93%, and the other four share about $22M [18][19][14]. The scan covered 146 vaults, so 24 sit outside the listed group [17]. The post as available describes five of them.
The $1.3B in the post's opening statistic and the $1.3B in the 22 vaults are unrelated figures. The first is losses from January to August, taken from a count the post does not name [20]. The second is deposits [12].
Wasabi is the closer analogue to the unlisted five. According to CoinDesk, as cited in the post, Wasabi lost about $4.5M in April because a single deployer EOA could upgrade its contracts [21]. In our view the Morpho evidence supports a narrower claim than the post's framing. Single-key control behind a 3-to-7-day window is a transparency finding by the post's own judgement. Single-key control with no window is the case that matches Wasabi.
The 3-to-7-day figure describes Morpho vaults above $2M on one date [11]. It transfers to another protocol only if that protocol also gates its upgrade path behind a delay.
What to watch
- A rescan showing the $283M unlisted vault has added a timelock or moved its owner to a multisig would close the largest exposure in this data.
- Any loss at one of the 22 listed single-EOA vaults inside its 3-to-7-day window would test whether depositors actually use the delay.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence55
- Adoption
- Insufficient
- Hype gap+10
- Incentives45
- Confidence60
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
An audit tells you whether the code is safe but not who can replace the code tomorrow; that can be checked in about five RPC calls with Foundry's cast.
- [2]
Most upgradeable contracts keep the implementation address in a fixed EIP-1967 storage slot; the check reads the implementation, admin and beacon slots with cast storage.
- [3]
USDC on Base returns zero for all three EIP-1967 slots, which looks like not upgradeable, but it is upgradeable and uses the older ZeppelinOS slots.
- [4]
Aave's pool proxies keep the admin as an immutable in the bytecode, found through the pool's ADDRESSES_PROVIDER() and that contract's owner(). Aragon apps (Lido's stETH, for example) have no admin slot; upgrades go through the DAO kernel's ACL, reached with kernel().
- [5]
cast code returning 0x means an EOA, one private key; getThreshold() answers if it is a Safe; getMinDelay() answers for an OpenZeppelin TimelockController; delay() answers for a Compound-style Timelock.
- [6]
A 1-of-1 or 1-of-3 Safe means one signature moves everything, so a Safe is not automatically a multisig and its owners should be checked recursively.
- [7]
An EOA does not mean a hot wallet: Circle almost certainly keeps the USDC admin key in an HSM and institutional curators often sign with MPC, which is invisible on-chain. What can be said is that there is no on-chain multisig and no delay.
- [8]
A rate-limited public node returning an error is easy to read as an empty slot or a missing function, so retry against a second endpoint before concluding anything.
- [9]
On Morpho, a curator who can enable a new market (V1) or add an adapter and raise its cap (V2) can route deposits to a new destination; both versions put that behind a vault-level timelock.
- [10]
The author read the configuration of the 146 Morpho vaults holding at least $2M (Morpho API) and resolved every owner and curator key on-chain, scanned 2026-10-13.
- [11]
All 122 vaults listed in the Morpho app had a timelock on these actions, typically 3 to 7 days.
- [12]
In 22 of the listed vaults (about $1.3B), the owner or curator is a single EOA or a Safe that resolves to one EOA signer.
- [13]
With the timelock in place, the 22 single-key listed vaults are a governance-transparency point rather than an emergency, and some of these signers are probably MPC-backed.
- [14]
Five unlisted vaults (about $305M combined, $283M of it in one vault) have a zero timelock and a single-EOA owner (the source sentence is cut off after 'owner or c').
- [15]
For a UUPS proxy (implementation set, no admin), the upgrade right usually sits behind owner() or an AccessControl role; if the admin is an OpenZeppelin ProxyAdmin contract, it is only a hop: call owner() on it.
- [16]
22 of 122 listed vaults is about 18%.
- [17]
146 scanned vaults less 122 listed vaults leaves 24 outside the listed group.
- [18]
The $283M vault is about 93% of the $305M held in the five unlisted vaults.
- [19]
The other four unlisted vaults hold about $22M combined.
- [20]
In 2026, leaked or stolen admin keys overtook smart-contract bugs as the biggest cause of DeFi losses: at least $1.3B in January to August, by one count.
- [21]
Wasabi Protocol lost about $4.5M in April because a single deployer EOA could upgrade its contracts.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toWho can upgrade this contract? Five RPC calls, five traps, and 146 Morpho vaults
1 article · October 13, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- On-chain governance and timelocksFollow
- Upgradeable proxy contractsFollow
- DeFi SecurityFollow