How can I get a deployed proxy contract's implementation address from inside solidity?

Hi @gitpusha,

The ZeppelinOS 2.4.0 released announcement covers EIP1167 minimal proxies:

Cheap EIP1167 minimal proxies

We have added experimental support for EIP1167 minimal proxies . These proxies rely on the same delegatecall pattern as the usual ZeppelinOS proxies, but have two main differences:

  • They cannot be upgraded to a different version of the code
  • They are incredibly cheap to deploy: about 1/10th of the standard proxy!

These features make minimal proxies an ideal choice when you want to spawn many copies of the same contract, without worrying about maintaining them in the future. They also play nicely with EVM packages: since the package developer pays the deployment cost of the logic contracts, you only need to pay for the minimal proxies.

You can try deploying one of these proxies by adding the --minimal flag when running zos create . Remember that these proxies will not be upgradeable to a different version of the code: the reduced deployment gas fee comes at a cost!

1 Like