Multi level account and improving the user flows for all users

Here you can find the original spec for the Multilevel account → Read more

The problem

Right now the only way to authenticate users is by connecting wallets and signing a signature! this is problematic for some users, especially those who aren’t native web3 users and want to start using Giveth.

Here you can take a look at some user flows like giving heart, creating a project, and donations → FigJam

Let me point out some issues from a user experience perspective with this way of authenticating

1. Giving heart to a project
A user who wants to give heart to a project needs to connect a wallet and then we have to ask for a Signature just to let them tap the Like button, which is not a perfect ux, especially for beginner users in the web3 space!
** Note: Signing the signature is a total headache on browsers like Safari and mobile devices for new users!

2. Creating a project
We want to onboard more creators and let them create projects with ease! but, when a new user jumps into Giveth and starts creating a project since we don’t have a proper way of authenticating after they go through all the process to connect a wallet and sign the signature, then they have to complete a profile and add an email address and connect social media,…
this whole process is so long for new users and they may get tired of it and prevent them from creating a project or continuing using Giveth!

3. Donation
Right now we have a one wallet one account structure and it make things more complex for users to keep track of all donations!

Hard donation management and loss of data between addresses - what was the address I was using for Giveth? oh man, I had an account there already, I connected 3 addresses why 2 of them have profiles and the others don’t?

User groups

We know there are different types of users who are using the Giveth,

  1. Native web3 pro user
    They are worried about their privacy and they don’t like to lose it easily, they can create projects, donate to them or interact with GIVeconomey and other projects.

  2. Project creators
    They want to create projects and receive donations. they can also interact with GIVeconomey and other projects, but they mostly focused on creating a project and managing it.

  3. Donors
    They mostly want to donate and interact with the GIVeconomey.

The solution

So by keeping all of the Giveth user groups in mind we are trying to make things easier for beginner users and also give pro users more control.

In order to fix all the issues related to the user flow we have to implement new ways for authenticating and also improving the current flows to make it easy for users to achieve their goals easier and faster!

1. Sign in by email or social media

Connecting a wallet is not a proper way of authenticating users! we are not trying to make it required for users to sign in with email or social media but we are trying to introduce different Levels to achieve different goals, here is the map:

Note: Users can still do a lot with just connecting a wallet but in order to do some things like giving heart or creating a project they need to sign in with an email or social account.

2. Let user connect multiple wallets

Having multiple accounts in web3 is a norm but since we treat each wallet as a new wallet users might end up having multiple accounts with different profiles and in the end, they might forget which wallet was connected to Giveth! So by letting the user connect different wallets to one account they can easily keep track of all their donation and prevent them from creating different profiles.

Here you can take a look at different improved user flows and see how they are working,

1. Web3 native donating
in this flow, users can donate by just connecting wallets and we won’t stop them to create an account and donate

2. Sign up with an email account
In this flow, you can see how users can sign up with an email account or social media account

3. Sign in & connecting a wallet
In this flow, you can see how users can sign in with an email address and then connect multiple wallet addresses.

at last

With these improvements, we are trying to decrease the learning curve for our beginner users and also give more control and help more advanced users to be able to have a more intuitive user flow when donating and interacting with GIVeconomey.

If you need to take a closer look at the whole process you can find the Figma design here → Multi-level account design on Figma

And again, you can find all the user flow maps for current flow and the improved flow here → Multi-level account on FigJam

Please share your feedback, thoughts and comments on Figma or FigJam or here or send direct or whatever :wink: We are open to all feedback.


This is awesome, nice work!

Question: Can a wallet be linked to more than one user account?
I see wallets being shared more often now within orgs and it would be a huge benefit to see which user administered a change on a wallet (harvested, staked in the economy, for example) within the app, or at least ensure that different people logging into the wallet can still perform actions.

In the future, limiting what actions based on the user type will be epic… such as edit project description and create updates being a separate permission from transacting with the GIVeconomy.

1 Like

TBH, we didn’t think about this specific situation! I have to see how we can sort it out.
Thanks, Dani :blush:

Yes, if it is not possible to have a wallet address linked to multiple user accounts we will have to account for the messaging in the event a user attempts to link a wallet already in use.

looks good @msaeedi I wonder if we should share that diagram showing permissions with users? Like what they can do as a table under FAQ or something like that?

1 Like

for Current users: onboarding flow - we need to list all the use-cases.

just an update: @msaeedi finished the onboarding of current users for verifying their email or at least adding a social, this onboarding flow starts sooner than the actual release date to let the people know about changes and enable them to log in via web2 authentication.

With this new flow, will be people be allowed to just connect their wallet, and therefore connect to their profile without needing to ever add an email & password? (like we have now)

Yeah it’s possible, but in this case, we need this bad-UX of sign a wallet again after the connect, so I want to keep sign-in “call to action” button to encourage users to provide email verification (or socials) for better UX
(In web2 authentication we can make them login with only 2 clicks and we don’t need to ask for sign-wallet again.) @karmaticacid
I also love your comments on this @Griff and @markop

1 Like