Contract Powers Registry / ethereum

PYUSD

0x6c3ea9036406852006290770bedfcaba0e23a0e8 on ethereum

In one line

upgradeable proxy (zeppelinos.implementation); admin key is a plain EOA; retained powers: blacklist, mint, ownership, pause, upgrade; 8 further owner-only function(s) the engine could not categorise (listed under coverage).

UpgradeableYes
Source verifiedYes
Controlled byA single key
Confirmed powers5 +8 uncategorised

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 logic0x8c35caa5fd5bdc64b6b11344ad57594a3676256a
Logic namePYUSD
Logic source verifiedYes
Raw storage evidence (1)

Who holds the keys?

Owner / admin0x3af3e85f4f97de7ad0f000b724fb77fe5ffc024b
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 (3)
  • freeze(address) implementation-abi
  • freezeBatch(address[]) implementation-abi
  • freeze(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 (4)
  • grantRole(bytes32,address) implementation-abi
  • revokeRole(bytes32,address) implementation-abi
  • revokeRole(bytes32,address) implementation-bytecode
  • grantRole(bytes32,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

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

What this page did not categorise

8 more functions here are restricted to a privileged role, and this engine has no category for them. The list above matches function names against a fixed set of power categories. These ones are gated in the published source — an only… modifier or a sender check — but their names match nothing, so no card was written for them. They are named here in full rather than dropped, because a report that looks complete is worse than one that says where it stops.

FunctionRestricted byRead from
acceptDefaultAdminTransfer() require(_msgSender() == newDefaultAdmin, "")implementation source
beginDefaultAdminTransfer(address) onlyRole(DEFAULT_ADMIN_ROLE)implementation source
cancelDefaultAdminTransfer() onlyRole(DEFAULT_ADMIN_ROLE)implementation source
changeDefaultAdminDelay(uint48) onlyRole(DEFAULT_ADMIN_ROLE)implementation source
reclaimToken() onlyRole(DEFAULT_ADMIN_ROLE)implementation source
rollbackDefaultAdminDelay() onlyRole(DEFAULT_ADMIN_ROLE)implementation source
setSupplyControl(address) onlyRole(DEFAULT_ADMIN_ROLE)implementation source
wipeFrozenAddress(address) onlyRole(ASSET_PROTECTION_ROLE)implementation source

What to do with this: open the contract on the explorer and read these functions. The gate shown is the exact text found in the source. This engine does not guess what the function does. Of the 44 state-changing functions in the published interface, 12 matched a known category and 8 are listed here.

Is there a bug bounty on this?

No live bug-bounty program matched this contract’s name in my index (183 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 nameAdminUpgradeabilityProxy
Compilerv0.4.24+commit.e67f0147
LicenseMIT
Bytecode size1,506 bytes (logic: 18,334)
DELEGATECALLpresent
SELFDESTRUCTabsent
CREATE2absent
Explorerview on block explorer ↗

Has any of this changed?

This page is rebuilt from the chain and diffed against the previous day. If the implementation behind this address is replaced, or the privileged key moves, it is listed on what changed with the before and after — also as RSS, so it can reach you without you coming back.

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 644 ms on 2026-09-19.

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/0x6c3ea9036406852006290770bedfcaba0e23a0e8.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.