PACTAby Fractal Neurons
Pacta / Onboarding briefs / circle-cirbtc-eth
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 ↗.

Asset
cirBTC (Circle)
Venue
Aave V3 Core / V4 Core (Ethereum)
Pinned block
Ethereum Mainnet #26,408,330 · 2026-11-13 20:07:23 UTC Canonical (EIP-1898)
Block hash
0x8efc8256…979f4d
Data
/api/v1/onboarding.json · slug circle-cirbtc-eth
Upgrade authority
EOA
0 txs sent
Owner
EOA
No timelock
Supply
361.49 cirBTC
8 decimals
Paused
false
FiatToken v2

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.

CheckContractValue
cirBTC totalSupply()0x72DF…075E36148765681
cirBTC decimals()0x72DF…075E8
cirBTC version()0x72DF…075E2
cirBTC paused()0x72DF…075Efalse
proxy admin()0x72DF…075E0xC9cEe9efa5180597BB850A642aA75e5EC3B5a9BD
proxy implementation()0x72DF…075E0x43506849D7C04F9138D1A2050bbF3A0c054402dd
owner()0x72DF…075E0xd50154994Eac780c571FF5f7ceC0Ef2e60085182
masterMinter()0x72DF…075E0xC0Cc159c07a99EeCC35C36f25fE7C1Aeeb3587A2
pauser()0x72DF…075E0xabde92e0efE04a0c1469cD21Bf400Cb1969fA222
blacklister()0x72DF…075E0xb5BE9AfA2ff55B8f9AE3e223b2F18ab6B84e1D79
rescuer()0x72DF…075E0x0000000000000000000000000000000000000000

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.
For issuers

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.

Read-only on-chain analysis. Not investment advice. Exploit-sensitive vulnerabilities are never published here; they go through Immunefi or Cantina bounty programmes.Clear these findings in 24h · $5,000 USDC →