What is the ProxyAdmin?

Hey, I want to know what these mean in the .json file in the .openzeppelin folder:

 "solidityLibs": {},
  "proxies": {
    "dice-contract/Dice": [
      {
        "address": "0xB980d073cef7072Fefac9ac1213C3C6c12c2F7B2",
        "version": "1.0.0",
        "implementation": "0xCB56C1c653827279077b2368F22e78fe0E27F4A3",
        "admin": "0x3c83E186b4a31141Fd91c6bF383B44AA2D5C3D61",
        "kind": "Upgradeable"
      }
    ]
  },
  "manifestVersion": "2.2",
  "version": "1.0.0",
  "proxyAdmin": {
    "address": "0x3c83E186b4a31141Fd91c6bF383B44AA2D5C3D61"
  }

I get that the first address is the address of the Proxy contract
implementation is the address of the logic contract

what is the “admin”/proxyadmin however? Is it a contract? What is its role? And where is my wallet address in all this?

If I want to see my implementation contracts in etherescan for every upgraded version, is there a simpler or easier way to keep track of all of them w/o using version control? like a cli command that shows all the implementation instances or likewise… ?

1 Like

Hi @asmeedhungana,

The files stored in the .openzeppelin directory are described in the Configuration Files documentation.

ProxyAdmin is a contract that is an admin contract for your proxy contracts.
See ProxyAdmin for details.

The recommendation is to keep your public network files under version control. See Configuration Files in Version Control.

The proxy will emit an Upgraded event with the new implementation address so you could get all the events to see the implementations but there isn’t a way to do this in the CLI.

1 Like