Itheum / datametaverse-evm

SDK to power Itheum's EVM web3 identity sub-system, SBT and DeSoc features.
GNU General Public License v3.0
1 stars 1 forks source link

Version 1: identity Sub System as a Gnosis Safe App #10

Open newbreedofgeek opened 1 year ago

newbreedofgeek commented 1 year ago

We'd like to have version 1 of the identity Sub System (i.e. the current identity factory + identity contract design) via within the Gnosis Safe App interface.

i.e https://docs.gnosis-safe.io/build/sdks/safe-apps

On 24 Oct 2022, @0xpeho and @newbreedofgeek discussed a few approaches to get Version 1 of the identity Sub System to a state that can work on a mainnet. The biggest concern we had with the current design where each identity included a "owners" concept, where we felt that people will start using our identity sub-system as a form of "multi-sig" wallet. We dont want this to happen as we prefer to "seperate the concerns" between multi-sig owners of identity and the identity itself (i.e claims holding).

We feel it's best we use Gnosis as the "multi-sig" owners part.

We discussed 3 designs which are included below for reference, of these - we will be going for option c.

Option A - Using Gnosis fully Programatically via Itheum's Data DEX UI to create SAFE and propose and execute TXs programmatically via SDK as well.
- User comes to Data DEX and clicks on "deploy new identity"
- Using the Gnosis smart contract SDK, we 1st deploy the safe and ask user to configure settings all from within the Data DEX. basically we reproduce all of Gnosis safe UI inside our UI.
- We deploy the identity contract with the "Safe as the owner". the safe is the single owner of the identity.
- All follow up interactions with the identity can go via the new safe within the Data DEX

Options B - using Gnosis only partially programatically.  Where a user first needs a SAFE on Gnosis website and thereafter ONLY propose TXs can be done programmatically via SDK. After proposals the user needs to go to Gnosis website to finalise and execute.
- User comes to Data DEX and clicks on "deploy new identity"
- Data DEX asks for Gnosis Safe address.. somehow we verify they own the safe
- We deploy the identity contract with the "Safe as the owner". the safe is the single owner of the identity.
- All follow up interactions with the identity can be proposed via the Data DEX but the user needs to go to the Gnosis website to sign and finalise them.

Option C - Create the "identity Sub System" (hosted on route datadex.itheum.io/identity) as a Gnosis Safe APP. If you want to interact with your Itheum identity, you need to go and login via the Gnosis Safe app store.
- User comes to datadex.itheum.io/identity via Gnosis App Store as above and clicks on "deploy new identity" (if the user already deployed identity, they should see their existing identity)
- We deploy the identity contract with the "Safe as the owner". the safe is the single owner of the identity.
- All follow up interactions happen within the Gnosis safe app store UI. Users are also given an option to execute any TX via ERC725X using Gnosis native UI/UX.. 
newbreedofgeek commented 1 year ago

@0xpeho to use his POC React app to get the above Option C working. The POC app can be hosted via Github Pages for free and trialled within the Gnosis testnet. Any smart contract changes can also be made.

ONCE we get the existing identity sub-sustem working as a Gnosis Safe App.. we can do more testing in UI/UX and then make the following changes:

newbreedofgeek commented 1 year ago

Dev work is in https://github.com/Itheum/datametaverse-evm/tree/gnosis