Upgradeable vs non-upgradeable contracts

Hi, I would like some help in understanding proxied and upgradeable contracts. If the implementation contract has a proxy (let's say it's using the UUPS proxy pattern), what would be the difference between using the @openzeppelin/contracts and the @openzeppelin/contracts-upgradeable libraries? Isn't the proxy used to delegate calls to the implementation contract, which should allow the implementation contract to be changed/upgraded?

Hey!
I believe the main difference is handling how the contracts are deployed. In upgradable contracts, you have to shift from the constructor to the initialize function. Read more:

1 Like

Hi, I'm facing similar issues, to check out this link. What's the difference between upgradable and non upgradable Initializable contracts? Aren't all proxies meant to be support upgradable implementation contract?