Research / Aave V3 Core

Aave V3 Ethereum Core: level 0-5 of every role read on chain (2026-10-13)

MethodNot readRerunRepository folder

Summary. The Technical Asset Listing Framework adopted by Aave governance (July 2026) classes each privileged role of a listed asset from level 0 (single key, no delay) to level 5 (on-chain DAO governance with timelock); levels 0 and 1 are "weak". This folder reads those roles on chain for 25 of the 67 reserves of Aave V3 Core (Ethereum), plus BTC.b and USDe, at block 26,184,127, with two negative witnesses run once for the whole pass (listed under Witnesses) and a self-check of the hash function at load; a single call does not carry its own. Read this way, five listed assets are at level 0 or 1: USDC and cbETH (single keys), USDT (MultiSigWallet 3 of 6), BTC.b (a single key, second pauser a Safe 2 of 11), USDe (single keys inside its minter contract; level 1 without it). Several assets expose no role through standard getters and six route their power through Aragon, the Vat or a registry: they are left unclassified, not called safe. PAXGy, a method witness, is at level 3 for its owner chain but at 0 (+ unclassified) once the roles of its RolesAuthority are counted (read by hand, outside the script: see "Manual correction outside the script"). Not read: 40 reserves, Aragon ACLs, the freeze status of reserves; the script itself does not read the RolesAuthority of PAXGy. Rerun: python3 mesure-aave-niveaux.py --block 26184127 --compact (standard library, public RPC).

Status. 27 of the 67 Core reserves are read here (the first 25 in list order, plus BTC.b and USDe) at block 26,184,127; the other 40 are not read yet.

Rendered page: https://realspap.github.io/oracle/research/aave-levels/


Level per asset

assetoriginlevelwhat sets the level
USDCreserve 30proxy admin, owner, pauser, blacklister: EOAs; masterMinter = contract whose owner is an EOA; 32 minters, 27 of them EOAs
cbETHreserve 70proxy admin, owner, masterMinter, pauser, blacklister: EOAs
USDTreserve 81owner = MultiSigWallet 3/6 (3 of 6 is not a majority)
BTC.breserve 63, outside the first 250OPERATOR_ROLE and CLAIMER_ROLE held by the EOA 0xcd1b…c01b; second PAUSER = Safe 2/11 (level 1); upgrade and admin = 24 h timelock (level 3)
USDereserve 30, outside the first 250minter() = contract 0xe349…62d3 whose MINTER_ROLE and GATEKEEPER_ROLE are held by EOAs; owner = 24 h timelock whose sole proposer is a Safe 5/10 (level 1)
WETHreserve 0no role readno getter, no proxy slot
wstETHreserve 1no role readsame
WBTCreserve 22owner = Controller contract, whose owner is a MultiSigWallet 6/10
DAIreserve 4unclassifiedsole ward = DaiJoin 0x9759…1a28, with no readable controller (the power goes through the Maker Vat, not read)
LINKreserve 5no role read
AAVEreserve 65proxy admin = ProxyAdmin whose owner is the Executor lvl2
rETHreserve 9no role readRocket Pool power sits in RocketStorage, not read by these getters
LUSDreserve 10no role read
CRVreserve 11unclassifiedadmin = Aragon agent (kernel() readable, ACL not derived)
MKRreserve 12unclassifiedowner = 0x0; authority 0x6eeb…dfb8 with no readable controller
SNXreserve 132owner = Safe 4/7
BALreserve 14unclassifiedMINTER and SNAPSHOT held by 0xf302…414f, Balancer authorizer not read
UNIreserve 155minter = 48 h Timelock whose admin is the Uniswap Governor
LDOreserve 16unclassifiedcontroller = Aragon app
ENSreserve 174 (mechanical), 5 after reading the bytecodesee "Differences" below
1INCHreserve 18no role readowner = 0x0
FRAXreserve 192DEFAULT_ADMIN and COLLATERAL_RATIO_PAUSER held by a Safe 3/5 with no delay
GHOreserve 202BUCKET_MANAGER also held by the steward 0x46aa…5409, whose RISK_COUNCIL is a Safe 2/3; the other roles belong to the Executor lvl1 (5)
RPLreserve 21no role read
sDAIreserve 22no role read
STGreserve 23unclassifiedowner = contract 0xbe63…5413 with no readable controller
KNCreserve 242 (+ unclassified)owner = MultiSigWallet 3/5; proxy admin and minter lead to 0x7d4d…d9d9, unclassified
USATnot listed, witness2owner and ProxyAdmin owner = MultiSigWallet 3/5, no delay
PAXGynot listed, witnessscript: 3 (owner chain); 0 (+ unclassified) with the RolesAuthority roles read by handscript: owner and authority owner = 24 h timelock, proposer Safe 3/5. By hand: rate update, pause, order processing and freeze list are held by EOAs, so the lowest role is 0 (see "Manual correction outside the script")

Frozen block: 26184127 (0x18f89bf), read with eth_blockNumber on Tenderly on 2026-10-13 around 14:20 UTC. Every call (eth_call, eth_getStorageAt, eth_getCode, eth_getLogs up to that block) carries this block. Read-only measurement: no key, no transaction. Script: mesure-aave-niveaux.py (in this folder, standard library only). Volume of the final pass: 1,248 eth_call, 290 eth_getStorageAt, 135 eth_getCode, 70 eth_getLogs. NOT READ: 0.

What was read

Classification rules applied (read before quoting a number)

Table (output of the script's --compact mode: holders of the same role and type are grouped)

assetaddressproxy?roleholdertypelevelasset level
WETH0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2no--no privileged role read by the standard reads-no role read
wstETH0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0no--no privileged role read by the standard reads-no role read
WBTC0x2260fac5e5542a773aa44fbcfedf7c193bc2c599noowner()0xca06..beb7contract <- owner() 0x972e..70de MultiSigWallet 6/1022
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)proxy admin (zosAdmin)0x807a..95d2EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)owner()0xfcb1..ae3aEOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)masterMinter()0xe982..de17contract <- owner() 0xc1d9..c704 EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)pauser()0x4914..8566EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)blacklister()0x0a06..78f9EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)27 holdersEOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)0x2222..c205contract <- owner() 0x3c54..aab6 EOA ; pauser() 0x6fa3..e6fb EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)0x7777..00eecontract <- owner() 0x2a6a..58c5 EOA ; pauser() 0x9812..5b19 EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)0xa669..48bdcontract <- owner() 0x162a..31b5 EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)0xc492..e907contract <- owner() 0x0143..8dc8 EOA ; pauser() 0x817a..a09f EOA00
USDC0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48yes (zosAdmin,zosImpl)minter (FiatToken)0xfd78..d002contract <- owner() 0x7d15..ae0e EOA ; pauser() 0x4e89..ac69 EOA00
DAI0x6b175474e89094c44da98b954eedeac495271d0fnowards (rely)0x9759..1a28contract with no controller read (immutable or registry not read)?unclassified
LINK0x514910771af9ca656af840dff83e8264ecf986cano--no privileged role read by the standard reads-no role read
AAVE0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9yes (admin1967,impl1967)proxy admin (admin1967)0x86c3..b517contract <- owner() 0x17dd..6957 DAO Aave Executor lvl2 (owner = PayloadsController)55
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)proxy admin (zosAdmin)0xeee4..9577EOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)owner()0x4b87..ea03EOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)admin()0xeee4..9577EOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)masterMinter()0x7dd4..b77aEOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)pauser()0x9596..dcc2EOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)blacklister()0xbe3c..eb0aEOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)minter (FiatToken)0x6d44..8280contract <- owner() 0x4cd6..bbe5 EOA00
cbETH0xbe9895146f7af43049ca1c1ae358b0541ea49704yes (zosAdmin,zosImpl)minter (FiatToken)0x9bf9..a372EOA00
USDT0xdac17f958d2ee523a2206206994597c13d831ec7noowner()0xc6cd..a828MultiSigWallet 3/611
rETH0xae78736cd615f374d3085123a210448e74fc6393no--no privileged role read by the standard reads-no role read
LUSD0x5f98805a4e8be255a32880fdec7f6728c6568ba0no--no privileged role read by the standard reads-no role read
CRV0xd533a949740bb3306d119cc777fa900ba034cd52noadmin()0x4090..9968Aragon app (kernel 0xad06..d72d), ACL not derived?unclassified
CRV0xd533a949740bb3306d119cc777fa900ba034cd52nominter()0xd061..fce0contract <- controller() 0x2f50..46bb (contract, level ?) [partly unclassified]?unclassified
MKR0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2noowner() = 0x0 (renounced or empty)0x0no holder?unclassified
MKR0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2noauthority()0x6eeb..dfb8contract with no controller read (immutable or registry not read)?unclassified
SNX0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6fnoowner()0xeb31..7769Safe 4/722
BAL0xba100000625a3754423978a60c9317c58a424e3dnoMINTER_ROLE0xf302..414fcontract with no controller read (immutable or registry not read)?unclassified
BAL0xba100000625a3754423978a60c9317c58a424e3dnoSNAPSHOT_ROLE0xf302..414fcontract with no controller read (immutable or registry not read)?unclassified
UNI0x1f9840a85d5af5bf1d1762f925bdaddc4201f984nominter()0x1a9c..35bcTimelock delay() 172800 s (48 h) <- admin() 0x408e..24c3 DAO Governor (votingPeriod 40320)55
LDO0x5a98fcbea516cf06857215779fd812ca3bef1b32nocontroller()0xf73a..3249Aragon app (kernel 0xb8ff..88dc), ACL not derived?unclassified
ENS0xc18360217d8f7ab5e7c516566761ea12ce7f9d72noowner()0xfe89..44b7TimelockController 172800 s (48 h) <- PROPOSER 0x323a..b7e3 DAO Governor (votingPeriod 45818) ; PROPOSER 0x2acb..e051 (contract, level 2) ; open executor44
1INCH0x111111111117dc0aa78b770fa6a738034120c302noowner() = 0x0 (renounced or empty)0x0no holder?no role read
FRAX0x853d955acef822db058eb8505911ed77f175b99enoCOLLATERAL_RATIO_PAUSER0x8412..39caTimelock delay() 172800 s (48 h) <- admin() 0xb174..3f27 Safe 3/542
FRAX0x853d955acef822db058eb8505911ed77f175b99enoDEFAULT_ADMIN_ROLE0xb174..3f27Safe 3/522
FRAX0x853d955acef822db058eb8505911ed77f175b99enoCOLLATERAL_RATIO_PAUSER0xb174..3f27Safe 3/522
GHO0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fnoDEFAULT_ADMIN_ROLE0x5300..192aDAO Aave Executor lvl1 (owner = PayloadsController)52
GHO0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fnoFACILITATOR_MANAGER_ROLE0x5300..192aDAO Aave Executor lvl1 (owner = PayloadsController)52
GHO0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fnoBUCKET_MANAGER_ROLE0x5300..192aDAO Aave Executor lvl1 (owner = PayloadsController)52
GHO0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2fnoBUCKET_MANAGER_ROLE0x46aa..5409contract <- RISK_COUNCIL() 0x8513..4b60 Safe 2/3 ; owner() 0x5300..192a DAO Aave Executor lvl1 (owner = PayloadsController)22
RPL0xd33526068d116ce69f19a9ee46f0bd304f21a51fno--no privileged role read by the standard reads-no role read
sDAI0x83f20f44975d03b1b09e64809b757c47f942beeano--no privileged role read by the standard reads-no role read
STG0xaf5191b0de278c7286d6c7cc6ab6bb8a73ba2cd6noowner()0xbe63..5413contract with no controller read (immutable or registry not read)?unclassified
KNC0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202yes (admin1967,impl1967)proxy admin (admin1967)0x5001..f559contract <- owner() 0x7d4d..d9d9 (contract, level ?) [partly unclassified]?2 (+ unclassified)
KNC0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202yes (admin1967,impl1967)owner()0x3eb0..f650MultiSigWallet 3/522 (+ unclassified)
KNC0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202yes (admin1967,impl1967)minter()0x7d4d..d9d9contract with no controller read (immutable or registry not read)?2 (+ unclassified)
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)proxy admin (admin1967)0xcee8..0095contract <- owner() 0x055e..7e59 TimelockController 86400 s (24 h) <- PROPOSER 0x3f6b..a079 EOA ; PROPOSER 0x251a..4892 Safe 3/5 ; EXECUTOR 0x251a..4892 Safe 3/530
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)owner()0x055e..7e59TimelockController 86400 s (24 h) <- PROPOSER 0x3f6b..a079 EOA ; PROPOSER 0x251a..4892 Safe 3/5 ; EXECUTOR 0x251a..4892 Safe 3/530
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)MINTER_ROLE0x451c..0a2dcontract <- owner() 0x055e..7e59 TimelockController 86400 s (24 h) <- PROPOSER 0x3f6b..a079 EOA ; PROPOSER 0x251a..4892 Safe 3/5 ; EXECUTOR 0x251a..4892 Safe 3/5 ; proxy admin (admin1967) 0x6b06..cbb1 (contract, level 3)30
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)MINTER_ROLE0x9ece..21accontract <- CLAIMER_ROLE 0xcd1b..c01b EOA ; OPERATOR_ROLE 0xcd1b..c01b EOA ; role 0x843c3a00 0x8236..4494 (contract, level 0) ; + 6 other(s)00
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)CLAIMER_ROLE0xcd1b..c01bEOA00
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)OPERATOR_ROLE0xcd1b..c01bEOA00
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)PAUSER_ROLE0x251a..4892Safe 3/520
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)DEFAULT_ADMIN_ROLE0x055e..7e59TimelockController 86400 s (24 h) <- PROPOSER 0x3f6b..a079 EOA ; PROPOSER 0x251a..4892 Safe 3/5 ; EXECUTOR 0x251a..4892 Safe 3/530
BTC.b0xb0f70c0bd6fd87dbeb7c10dc692a2a6106817072yes (admin1967,impl1967)PAUSER_ROLE0xad67..fd44Safe 2/1110
USDe0x4c9edd5852cd905f086c759e8383e09bff1e68b3noowner()0xe8dc..7c94TimelockController 86400 s (24 h) <- PROPOSER 0x3b0a..1862 Safe 5/10 ; EXECUTOR 0x3520..0e8f EOA ; 0xa075..c344 Safe 3/6 ; 0x3b0a..1862 Safe 5/1010
USDe0x4c9edd5852cd905f086c759e8383e09bff1e68b3nominter()0xe349..62d3contract <- GATEKEEPER_ROLE 0xab91..a7dc EOA ; GATEKEEPER_ROLE 0x0f56..5bd9 EOA ; GATEKEEPER_ROLE 0x4960..8996 EOA ; + 44 other(s)00
USAT0x07041776f5007aca2a54844f50503a18a72a8b68yes (admin1967,impl1967)proxy admin (admin1967)0x3e4c..d9c7contract <- owner() 0x62b3..c5cb MultiSigWallet 3/522
USAT0x07041776f5007aca2a54844f50503a18a72a8b68yes (admin1967,impl1967)owner()0x62b3..c5cbMultiSigWallet 3/522
PAXGy0x6c6494fd9962eb98b94ffa48f6679058f820700enoowner()0x0dcc..df08TimelockController 86400 s (24 h) <- PROPOSER 0x0000..3f2f Safe 3/5 ; EXECUTOR 0x1d60..9312 EOA ; 0x317e..a024 EOA ; 0xfbf7..1a5e EOA ; + 3 other(s)33
PAXGy0x6c6494fd9962eb98b94ffa48f6679058f820700enoauthority()0xc444..99ddcontract <- owner() 0x0dcc..df08 TimelockController 86400 s (24 h) <- PROPOSER 0x0000..3f2f Safe 3/5 ; EXECUTOR 0x1d60..9312 EOA ; 0x317e..a024 EOA ; 0xfbf7..1a5e EOA ; + 3 other(s)33

Levels 0 and 1: what the framework would class as "weak security configuration" today

Among the first 25 reserves read:

  1. USDC: level 0. The proxy admin 0x807a96288a1a408dbc13de2b1d087d10356395d2, the owner 0xfcb19e6a322b27c06842a71e8c725399f049ae3a, the pauser 0x4914f61d25e5c567143774b76edbf4d5109a8566 and the blacklister 0x0a06be16275b95a7d2567fbdae118b36c7da78f9 have empty code at the frozen block (re-read with a separate curl, outside the script).
  2. cbETH: level 0, same FiatToken pattern (proxy admin, owner, masterMinter, pauser, blacklister: EOAs).
  3. USDT: level 1. Owner 0xc6cde7c39eb2f0f0095f41570af89efc2c1ea828, a MultiSigWallet, required() = 3, getOwners() = 6 addresses (re-read with curl).

Reserves listed outside the first 25 and measured: BTC.b (0) and USDe (0 through the minter() contract; 1 even without it, through the Safe 5/10 that proposes to the timelock).

Reading: a level 0 or 1 only says that a privileged role is held by a single key or by a minority multisig. For USDC and cbETH the custody may be off chain (HSM, procedures): the framework classes the on-chain configuration, and that is what is read here. The framework also states that pause and blacklist may call for faster paths than mint or upgrade; it does not take them out of the grid.

Reserves 25 to 66 (42) were not run, except BTC.b and USDe: 40 remain to be measured with --limit 67.

Differences with the LlamaRisk and Aave Labs sheets

Sheets read on governance.aave.com (Discourse JSON API), all published by LlamaRisk under the framework:

assetsheetwhat the sheet sayswhat is read at the blockagreement
BTC.bt/25652 (2026-09-16)upgrades under LombardTimeLock 1 day, executor Multisig1 3/5; PROPOSER = "EOA 2, Multisig1"; PAUSER = "Multisig1, Multisig2"; OPERATOR and CLAIMER = "EOA 1". Summary: "robust administrative safeguards"timelock getMinDelay = 86,400 s; PROPOSER = EOA 0x3f6b…a079 and Safe 3/5 0x251a…4892; EXECUTOR = that Safe alone; PAUSER = that Safe and a Safe 2/11 0xad67…fd44; OPERATOR and CLAIMER = EOA 0xcd1b…c01bagreement on the facts; the sheet does not give the threshold of Multisig2 (2/11, level 1). Difference in level: role by role, OPERATOR and CLAIMER as an EOA give 0 and the second pauser gives 1; the sheet's summary does not translate this into a level
USATt/25832 (2026-10-12)transparent proxy, ProxyAdmin 0x3e4C…9C7 and owner = legacy MultiSigWallet 0x62b3…c5cb 3 of 5; no timelockProxyAdmin 0x3e4c…d9c7, owner 0x62b3…c5cb, MultiSigWallet 3/5, no delayagreement (level 2)
PAXGyt/25831 (2026-10-12)24 h TimelockController owns all contracts; Safe 3/5 0x0000000000417626...3f2F is sole proposer and canceller; the Safe and its 5 signers can execute; a single operator key holds the freeze role on the role registryowner 0x0dcc...df08, 86,400 s, PROPOSER Safe 3/5 0x0000...3f2f, EXECUTOR that Safe plus 5 EOAsagreement on the owner chain (level 3). The script does not read the RolesAuthority roles; read by hand at the same block (see "Manual correction outside the script"), the rate updater, pause holder, order processor and freeze-list operator are EOAs, as the sheet says, and the same rule gives 0 (+ unclassified) for the asset. Difference in level: the sheet's level 3 is the owner chain, not the lowest role
USDeno Ethereum sheet foundUSDe sheets on Monad (t/25255), Avalanche (t/25669), X Layer (t/25827): other deployments, other administratorssee tablenot comparable
PAXGt/25359asset not listed on Core, not measured

Manual correction outside the script:

- role 4, updateExchangeRate(uint96) on the Accountant 0x397e..c1fd: EOA 0x1755..4b56 and the Safe 3/5 0x0000..3f2f; - role 6, pause() on the Accountant and on three other contracts: EOA 0xe5cc..cd9e, the same Safe 3/5, and the contract 0x07f9..d5f7 (not classified here; the sheet calls it the shared Pauser); - role 9, processOrders(uint256): EOA 0xaa0e..3372; - role 10, setFreezeList(address[],address[]) on 0x9124..870a, through a second RolesAuthority 0xfadd..0727: EOA 0x363c..a464. With the rule above (asset level = the lowest role read), PAXGy is 0 (+ unclassified), the unclassified part being the contract 0x07f9..d5f7 that holds role 6. Level 3 is the level of the path that changes roles (owner chain); it is not the level of the operational roles. Not read: the code of the Accountant (the sheet states that the rate write outside the timelock is at most 0.04% per update, with one hour between two updates; this was not re-read), the code of 0x07f9..d5f7, and the exact effect of processOrders and setFreezeList. An EOA holding a role is a level 0 by the grid; it says nothing about how that key is custodied.

Limits (what a green or a number here does not prove)

Witnesses

NOT READ

Final pass: 0 calls in error. Provider errors (Tenderly "rate limit exceeded" code -32005, HTTP 429) were absorbed by the script's retries before any classification. While building the script: a trial pass had eth_getCode 0xca06411bd7a7296d7dbdd0050dfc846e95febeb7 (WBTC Controller) NOT READ (HTTP 525 on eth.llamarpc.com); the retry logic was fixed and the call re-read afterwards (contract, owner MultiSigWallet 6/10). A cross-check on a second provider failed: publicnode HTTP 403 and llamarpc HTTP 525 when this report was written; the cross-checks cited above were therefore made with a separate curl on Tenderly, not on an independent provider.

Rerun

python3 mesure-aave-niveaux.py --block 26184127 --compact

Options: --limit 67 for all reserves, --no-extra without BTC.b, USDe, USAT and PAXGy, --json out.json for every row with full addresses. About 5 minutes. Endpoints tried in order: Tenderly, eth.llamarpc.com, ethereum-rpc.publicnode.com; the environment's HTTPS proxy is used if one is set.

Source of this page: the README of research/aave-levels-2026-10-13, rendered without changes. Not an audit, not investment advice. All readings · Back to the dashboard.