Hello there! The
ProxyAdmin is a central feature of the Transparent Proxy Pattern, and its role is to be the sole address that can interact with the proxy methods, rendering the proxy “transparent” to every other address.
The ProxyAdmin contract is deployed by the Upgrades plugin the first time you deploy a proxy, then it’s stored in the manifest file under the
.openzeppelin/ directory and reused for future proxy deployments.
From the Upgrades Plugins documentation:
Both plugins provide two main functions,
upgradeProxy , which take care of managing upgradeable deployments of your contracts. In the case of
deployProxy , this means:
- Validate that the implementation is upgrade safe.
- Deploy a proxy admin for your project.
- Deploy the implementation contract.
- Create and initialize the proxy contract.