Contract Powers Registry / ethereum

USDC

0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 on ethereum

In one line: upgradeable proxy (zeppelinos.implementation); admin key is a plain EOA; retained powers: blacklist, mint, ownership, pause, sweep, upgrade.

UpgradeableYes
Source verifiedYes
Controlled byA single key
Confirmed powers6

Can this code be replaced?

Yes — this is a proxy. The address you interact with holds no logic of its own; it forwards calls to a second contract. Whoever holds the upgrade right can point it somewhere else, and every behaviour described on this page changes with it.

Patternzeppelinos.implementation
Current logic0x43506849d7c04f9138d1a2050bbf3a0c054402dd
Logic nameFiatTokenV2_2
Logic source verifiedYes
Raw storage evidence (1)

Who holds the keys?

Owner / admin0xfcb19e6a322b27c06842a71e8c725399f049ae3a
Found viaowner()
That address isA plain wallet (EOA)

owner is a plain externally-owned account — a single private key controls it. In practice: one private key, held by someone, can exercise every power listed below. There is no on-chain delay and no second approver.

What the privileged role can still do

Each card is a capability found in the code. declared = the contract’s published interface exposes it. bytecode-heuristic = the 4-byte selector appears in the compiled code, which often means the contract implements it — but it can equally be a function this contract calls on another contract. Only a verified source settles that.

Addresses can be frozen

declared

A specific address can be blocked from moving its own balance.

Evidence (4)
  • blacklist(address) implementation-abi
  • unBlacklist(address) implementation-abi
  • blacklist(address) implementation-bytecode
  • isBlacklisted(address) implementation-bytecode

New tokens can be created

declared

Supply is not fixed by the code — the privileged role can issue more.

Evidence (2)
  • mint(address,uint256) implementation-abi
  • mint(address,uint256) implementation-bytecode

Control can be transferred

declared

The privileged role itself can be handed to another address, or renounced.

Evidence (2)
  • transferOwnership(address) implementation-abi
  • transferOwnership(address) implementation-bytecode

Transfers can be halted

declared

A privileged role can stop activity, including your ability to exit.

Evidence (4)
  • pause() implementation-abi
  • unpause() implementation-abi
  • pause() implementation-bytecode
  • unpause() implementation-bytecode

Tokens can be pulled out

declared

A rescue/sweep path exists that moves tokens held by the contract.

Evidence (2)
  • rescueERC20(address,address,uint256) implementation-abi
  • updateRescuer(address) implementation-abi

Code can be replaced

declared

The logic behind this address can be swapped for different code. Everything below can change with it.

Evidence (4)
  • upgradeTo(address) abi
  • upgradeToAndCall(address,bytes) abi
  • changeAdmin(address) abi
  • upgradeTo(address) bytecode-selector

Is there a bug bounty on this?

No live bug-bounty program matched this contract’s name in my index (186 Immunefi + 52 Cantina programs, rebuilt daily). Matching is by name, not by address — a program can cover this contract without the names lining up. Browse the full index at Bounty Radar.

Raw facts

Chainethereum (chainId 1)
Contract nameFiatTokenProxy
Compilerv0.4.24+commit.e67f0147
License
Bytecode size2,186 bytes (logic: 23,464)
DELEGATECALLpresent
SELFDESTRUCTabsent
CREATE2absent
Explorerview on block explorer ↗

How this was produced, and what it cannot tell you

Storage slots, bytecode and eth_call results were read from public RPC nodes; where the source is verified, the published interface was read too. Nothing here is copied from another site’s opinion. Generated in 776 ms on 2026-08-29.

What would change the answer: an upgrade after the date above; a power reachable only through a contract this one trusts; or role-based access control, whose holders this registry does not enumerate. Re-read the chain before you rely on it.

Machine-readable

Same facts as JSON, free, no key: /c/ethereum/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48.json. Live lookups for any address (not just this list) are $0.05 per call.

Want a human-grade read?

This page is automated pattern-matching. If you need someone to actually read the code and tell you what breaks, I do fixed-scope micro-audits — you pay after you read the report.