Contract Powers Registry / ethereum

stETH

0xae7ab96520de3a18e5e111b5eaab095312d7fe84 on ethereum

In one line: upgradeable proxy (etherscan-declared); retained powers: mint, pause.

UpgradeableYes
Source verifiedYes
Controlled byNo owner() found
Confirmed powers2

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.

Patternetherscan-declared
Current logic0x028271e30a695c0527a0c50ca30603fed004cdb0
Logic nameLido
Logic source verifiedYes
Raw storage evidence (1)

Who holds the keys?

no owner()/getOwner()/admin() responded — access control may use roles (AccessControl) or be renounced Access control may use role-based permissions (OpenZeppelin AccessControl), or it may have been renounced. This registry does not enumerate role holders.

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.

New tokens can be created

declared

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

Evidence (2)
  • mintExternalShares(address,uint256) implementation-abi
  • mintShares(address,uint256) implementation-abi

Transfers can be halted

declared

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

Evidence (1)
  • pauseStaking() implementation-abi

Is there a bug bounty on this?

The contract name matched 1 live program(s) in my Bounty Radar index. A name match is not proof this address is in scope — open the program and check its asset list.

ProgramPlatformMax bountyKYC
Lido immunefi$2,000,000 Not required

Raw facts

Chainethereum (chainId 1)
Contract nameAppProxyUpgradeable
Compilerv0.4.24+commit.e67f0147
LicenseGNU GPLv3
Bytecode size1,035 bytes (logic: 23,855)
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 1128 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/0xae7ab96520de3a18e5e111b5eaab095312d7fe84.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.