Advice for an upgradeable on chain permission system

Hi @Rick_Sanchez,

Welcome to the community :wave:

If I understand correctly:

  • Each user has a contract that only they can modify state via access control.

  • You (as the developer) want to be able to upgrade the logic in these contracts without requiring permission from the user.

Inheriting from ProxyFactory could potentially meet your needs to deploy proxies pointing to a single logic contract. Though there a couple of caveats using Transparent proxy pattern upgrades in your specific solution:

  1. An upgrade can be used to change state, so users would need to trust that the upgrade process didn’t change the state of their contract. Transparency and governance around how and when upgrades could occur would be very important.
  2. For upgrades, each users proxy would need to be called to point to a new logic contract. For a large amount of contracts this could take time and involve a large amount of transactions, depending on the scalability of the chain that you are using.

Please ask all the questions that you need.


It would be great to learn a bit more about you and what you are building. If you have a chance it would be great if you could introduce yourself.