Onboarding verification briefAave governance #25128
cirBTC (Circle): control-plane state at Ethereum Mainnet block 26,408,330
Read-only verification of who can change cirBTC (Circle) and the Aave V3 Core / V4 Core (Ethereum) it is proposed for, pinned to a canonical block and reproducible on any archive node. Forum thread: [ARFC] Onboard cirBTC on Aave v3 Core and Aave V4 Core ↗.
1. Findings
- Upgrade authority: proxy
admin()= 0xC9cE…a9BD, EOA (no contract code); 0 transactions sent. Implementation 0x4350…02dd;version()= “2”. - Operational roles:
owner()0xd501…5182 (EOA (no contract code); 0 transactions sent);pauser()0xabde…A222 (EOA (no contract code); 0 transactions sent);blacklister()0xb5BE…1D79 (EOA (no contract code); 495 transactions sent);masterMinter()0xC0Cc…87A2 (contract (5,346 bytes of code),owner()0x5183…2256: EOA (no contract code); 9 transactions sent). - None of these roles sits behind an on-chain TimelockController or multisig contract at the pinned block: upgrade, pause, blacklist and minter configuration take effect in the transaction that calls them. Key custody (HSM / MPC) is off-chain and not observable here.
2. Observed state at block 26,408,330
Block hash 0x8efc8256…979f4d; every read below used EIP-1898 {blockHash, requireCanonical: true} and returned byte-identical results on 2 independent RPC endpoints.
| Check | Contract | Value |
|---|---|---|
| cirBTC totalSupply() | 0x72DF…075E | 36148765681 |
| cirBTC decimals() | 0x72DF…075E | 8 |
| cirBTC version() | 0x72DF…075E | 2 |
| cirBTC paused() | 0x72DF…075E | false |
| proxy admin() | 0x72DF…075E | 0xC9cEe9efa5180597BB850A642aA75e5EC3B5a9BD |
| proxy implementation() | 0x72DF…075E | 0x43506849D7C04F9138D1A2050bbF3A0c054402dd |
| owner() | 0x72DF…075E | 0xd50154994Eac780c571FF5f7ceC0Ef2e60085182 |
| masterMinter() | 0x72DF…075E | 0xC0Cc159c07a99EeCC35C36f25fE7C1Aeeb3587A2 |
| pauser() | 0x72DF…075E | 0xabde92e0efE04a0c1469cD21Bf400Cb1969fA222 |
| blacklister() | 0x72DF…075E | 0xb5BE9AfA2ff55B8f9AE3e223b2F18ab6B84e1D79 |
| rescuer() | 0x72DF…075E | 0x0000000000000000000000000000000000000000 |
3. Reproduce
Reproduce every value on any archive node
# Ethereum Mainnet block 26408330 cast block 26408330 --field hash --rpc-url "$ETH_RPC_URL" # expect 0x8efc8256deb932e65b5117f040db264dc8200850636d90eecd5daccb99979f4d # cirBTC totalSupply() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "totalSupply()" --block 26408330 --rpc-url "$ETH_RPC_URL" # cirBTC decimals() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "decimals()" --block 26408330 --rpc-url "$ETH_RPC_URL" # cirBTC version() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "version()" --block 26408330 --rpc-url "$ETH_RPC_URL" # cirBTC paused() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "paused()" --block 26408330 --rpc-url "$ETH_RPC_URL" # proxy admin() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "admin()" --block 26408330 --rpc-url "$ETH_RPC_URL" # proxy implementation() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "implementation()" --block 26408330 --rpc-url "$ETH_RPC_URL" # owner() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "owner()" --block 26408330 --rpc-url "$ETH_RPC_URL" # masterMinter() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "masterMinter()" --block 26408330 --rpc-url "$ETH_RPC_URL" # pauser() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "pauser()" --block 26408330 --rpc-url "$ETH_RPC_URL" # blacklister() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "blacklister()" --block 26408330 --rpc-url "$ETH_RPC_URL" # rescuer() cast call 0x72DFB2E44f59C5AD2bAFE84314E5b99a7cd5075E "rescuer()" --block 26408330 --rpc-url "$ETH_RPC_URL"
4. Scope
- Observations of on-chain state only. They do not assess code correctness, reserves, legal structure or off-chain key custody, and they are not investment advice.
- Issuers can clear or document these findings with a 24h Collateral Onboarding & Delta Clearance Attestation ($5,000 USDC flat): block-pinned audit, docs / config reconciliation PR, Base EAS Aligned attestation and a Curator Diligence Dossier for the forum thread.
Issuing cirBTC (Circle)? Reconcile & Anchor 24h Institutional Clearance
Reconcile documentation drift, verify multisig and timelock control planes across archive RPCs, prepare an upstream docs reconciliation PR, and anchor a Base EAS Aligned Attestation + Curator Diligence Dossier within 24 hours.