feat: #1255 Add Web3 Authentication for Crypto-Newbies #1302
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR for 🏆 0xHack Adoption Bounty on Gitcoin
Best crypto-newbie friendly app
Work plan 📆
Chosen Persona 👩🏽
Sung, 23, South Korea
![](https://user-images.githubusercontent.com/4076573/118256495-d0c75b80-b4ad-11eb-9bbd-d5236984872f.png)
A philosophy student. She can't imagine a life without modern technology but has never tried anything related to crypto. She finally got convinced to try out your application by a fellow university student.
Video 🎥
Submission video: https://youtu.be/cpjhEMrjkas
![](https://user-images.githubusercontent.com/15718174/120166099-edc99180-c204-11eb-8446-97247ffacdf4.png)
MVP 📱
The MVP has been made available for testing at http://hin.elimu.ai/sign-on
Before the hackathon, we only had two authentication options; Google & GitHub.
![Screen Shot 2021-05-31 at 10 29 07 AM](https://user-images.githubusercontent.com/15718174/120164646-73e4d880-c203-11eb-8118-8386517c1d72.png)
During the hackathon, we added a third authentication option: "Web3".
![Screen Shot 2021-05-31 at 10 30 22 AM](https://user-images.githubusercontent.com/15718174/120164810-9f67c300-c203-11eb-9f6e-d4b1b33251df.png)
Code 👩💻
This Git branch has already been merged a few times during the hackathon in order to deploy the changes to a TEST/PROD server so that anyone can change test a live version of the MVP. The code changes can be seen here:
The most interesting code can be seen in these files:
isSignatureValid
method: https://github.com/elimu-ai/webapp/blob/master/src/main/java/ai/elimu/web/SignOnControllerWeb3.java#L107Summarized
Innovation
The innovative part of this solution, is that it's a very smooth transition into the world of cryptocurrencies for people who are new to Web3/Ethereum. It's an example of not using Ethereum for financial reasons, but rather as a way of identifying oneself for signing onto an existing Web2 website. It's a way to draw more people into the Web3 ecosystem, and it might trigger people's interest to learn more about Web3.
Added value
![Screen Shot 2021-05-31 at 10 49 52 AM](https://user-images.githubusercontent.com/15718174/120167389-5a915b80-c206-11eb-8a51-20e7db6d2007.png)
One type of value added to the user with this method, is increased privacy. By using only an Ethereum address as the identifier of a person, we do not need to collect their e-mail address or name, which protects the user's privacy.
The only thing other people on the website will see, is the user's Ethereum address:
Technical
The code works (see live MVP at http://hin.elimu.ai/sign-on). During the hackathon, we focused mainly on MetaMask, and in the future we will add support for other Web3 browsers as well. For code developed during the hackathon, see the "Code" section above.
We think presenting Web3 as a user authentication option side-by-side with existing centralized identity providers (like Google), is a user-friendly way to introduce crypto-newbies to Web3 technologies. Signing onto website via 3rd-party identity providers has been a common practice on Web2 websites for over a decade now, so this user-flow is already well known by most people on the Internet.