Notes / Audits and snapshots

Base Ecosystem -- scouted targets, 2026-09-16 (scouting phase, run 1)

Audits and snapshots2026-09-16Chain: Base, Ethereum, Robinhood ChainLinked: Morpho Blue (singleton), Morpho Blue (singleton, Ethereum L1), Aave V3 Base, Aerodrome Finance PoolFactory, Uniswap V3 Factory (Base), Compound V3 (Comet, USDC market)

Source: chains/base-ecosystem/data/scouted_targets_2026-09-16.md in the repository, rendered here without changes. Source file

Phase: scouting, Base mainnet (chain 8453), read-only. First research pass for this ecosystem -- no prior candidate backlog to draw from. Reuses the exact methodology already used for Robinhood Chain and Ethereum L1 (scripts/lib/scorers.py, web3_utils.py): live eth_call against two independent public RPCs, address sourced from the protocol's own official docs or GitHub repo, TVL from DefiLlama, authority traced to its root (owner/AccessControl/Safe getOwners+getThreshold/TimelockController delay), EIP-1967 proxy slots checked where relevant.

RPCs used for every call below, cross-checked for byte-identical results on both: https://mainnet.base.org (block ~51,394,888) and https://base-rpc.publicnode.com (block ~51,394,889-51,394,890). Both are confirmed in scripts/update_scores.py-style public-RPC conventions used elsewhere in this repo (no archive/paid tier needed for any call in this run -- all reads are current-state eth_call/eth_getStorageAt).

No new git commit made -- per run instructions the orchestrator commits after garde-fous. Nothing outside chains/base-ecosystem/ was touched.

1. Morpho Blue (singleton) -- fully verified, largest target found on Base#

cast call 0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb "owner()(address)" --rpc-url https://mainnet.base.org cast call 0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb "owner()(address)" --rpc-url https://base-rpc.publicnode.com cast call 0xcBa2…9AFa "getOwners()(address[])" --rpc-url https://mainnet.base.org cast call 0xcBa2…9AFa "getThreshold()(uint256)" --rpc-url https://mainnet.base.org

2. Aave V3 Base (PoolAddressesProvider) -- fully verified root, executor delay open#

cast call 0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D "owner()(address)" --rpc-url https://mainnet.base.org cast call 0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D "getACLAdmin()(address)" --rpc-url https://mainnet.base.org cast call 0x9390B1735def18560c509E2d0bc090E9d6BA257a "owner()(address)" --rpc-url https://mainnet.base.org cast call 0x2DC219E716793fb4b21548C0f009Ba3Af753ab01 "owner()(address)" --rpc-url https://mainnet.base.org

3. Aerodrome Finance PoolFactory -- fully verified, Base-native#

cast call 0x420DD381b31aEf6683db6B902084cB0FFECe40Da "pauser()(address)" --rpc-url https://mainnet.base.org cast call 0x420DD381b31aEf6683db6B902084cB0FFECe40Da "feeManager()(address)" --rpc-url https://mainnet.base.org cast call 0x420DD381b31aEf6683db6B902084cB0FFECe40Da "voter()(address)" --rpc-url https://mainnet.base.org cast call 0xE6A4…2075 "getOwners()(address[])" --rpc-url https://mainnet.base.org cast call 0xE6A4…2075 "getThreshold()(uint256)" --rpc-url https://mainnet.base.org

4. Uniswap V3 Factory (Base) -- fully verified, genuine L1-governance forwarder#

cast call 0x33128a8fC17869897dcE68Ed026d694621f6FDfD "owner()(address)" --rpc-url https://mainnet.base.org cast call 0xaBEA76658b205696d49B5F91b2a03536cB8A3bE1 "owner()(address)" --rpc-url https://mainnet.base.org cast storage 0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9 0 --rpc-url https://mainnet.base.org cast storage 0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9 1 --rpc-url https://mainnet.base.org cast storage 0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9 0 --rpc-url https://base-rpc.publicnode.com cast storage 0x31FAfd4889FA1269F7a13A66eE0fB458f27D72A9 1 --rpc-url https://base-rpc.publicnode.com

5. Compound V3 (Comet, USDC market on Base) -- fully verified, cross-chain governor#

cast call 0xb125E6687d4313864e53df431d5425969c15Eb2F "governor()(address)" --rpc-url https://mainnet.base.org cast storage 0xb125E6687d4313864e53df431d5425969c15Eb2F 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 --rpc-url https://mainnet.base.org cast call 0xCC3E7c85Bb0EE4f09380e041fee95a0caeDD4a02 "admin()(address)" --rpc-url https://mainnet.base.org cast call 0x18281dfC4d00905DA1aaA6731414EABa843c468A "govTimelock()(address)" --rpc-url https://mainnet.base.org cast call 0x18281dfC4d00905DA1aaA6731414EABa843c468A "localTimelock()(address)" --rpc-url https://mainnet.base.org

Not pursued this run#

Budget was 5 max; stopped at exactly 5. Moonwell (native Base+Optimism lending, ~$23.2M TVL on Base per DefiLlama protocol/moonwell) and Seamless Protocol (~$0.6M TVL on Base per DefiLlama protocol/seamless-protocol -- its docs page now mostly lists newer Morpho-vault products, the original Aave-v3-fork PoolAddressesProvider at 0x0E02EB705be325407707662C6f6d3466E939f3a0, sourced from seamless-protocol/lending-deployment's script/Constants.sol, was found but not verified live since its TVL looks stale/superseded) were both scouted but dropped in favor of the 5 above, which cover more value and a wider spread of authority patterns (plain Safe, Aave Governance V3 cross-chain infra, Base-native pauser Safe, OP-stack L1-governance forwarder, Compound cross-domain LocalTimelock). Left as open candidates for a future scouting pass rather than scored on unverified/likely-stale addresses.

Summary table#

ProtocolAddressAddress sourceTVL (Base)TVL sourceAuthority pattern found
Morpho Blue0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCbmorpho-org/morpho-blue-deployment GitHub (deploy receipt)$3,904,486,744.74DefiLlama protocol/morpho-blueowner = 5-of-9 Gnosis Safe, one hop, fully closed
Aave V3 Base0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64Dbgd-labs/aave-address-book GitHub$500,790,366.71DefiLlama protocol/aave-v3PoolAddressesProvider -> EXECUTOR_LVL_1 <-> PAYLOADS_CONTROLLER (Aave Governance V3 cross-chain infra, matches address book exactly); L1 DAO root not re-verified this pass
Aerodrome Finance0x420DD381b31aEf6683db6B902084cB0FFECe40Daaerodrome-finance/contracts GitHub README$322,731,495DefiLlama protocol/aerodromeno owner(); pauser=feeManager = 3-of-7 Gnosis Safe; Voter (emissions) not yet traced -- open
Uniswap V3 Factory0x33128a8fC17869897dcE68Ed026d694621f6FDfDdocs.uniswap.org Base Deployments$271,048,197.48DefiLlama protocol/uniswap-v3Factory -> fee-adapter -> explicit L2CrossDomainMessenger-gated forwarder naming Uniswap's real L1 Governance Timelock as L1Owner (storage-verified on both RPCs)
Compound V3 (Comet, USDC)0xb125E6687d4313864e53df431d5425969c15Eb2Fcompound-finance/comet GitHub roots.json$24,907,860.32DefiLlama protocol/compound-v3Comet.governor() = LocalTimelock -> admin = BaseBridgeReceiver -> govTimelock = Compound's real Ethereum-mainnet Timelock; loop closes correctly

Not an audit, not investment advice. All notes · Back to the dashboard.