User stories are incomplete, but they cover the main features of MSQ with main guarantees that it provides.
1 Authorization
1.1 Login to a website via MSQ
I want to be able to log in to any website having nothing more than my regular MetaMask extension.
I don’t want any website to know my identity on other websites.
I don’t want any third party to track me across websites I use.
I don’t want any website to know my other identities from the same website, if I want to log in another account.
I don’t want any website to be able to sign messages with key pairs I use for other websites.
Pre-requisites
I have a web browser with MetaMask extension installed and set up (meaning, I have a wallet).
1.1.1 I don’t have MSQ extension yet, this is my first time logging in to website X
- I navigate to website X and click on
Login with MetaMask
button.
- MetaMask popup is shown, it requests me to connect MetaMask with this website. I click “Connect”.
- Another MetaMask popup is shown, it requests me to connect to a snap called
MSQ - Safe ICP Wallet
. I approve.
- Another browser window opens up at
https://msq.tech
. It also requests me to connect to a snap called MSQ - Safe ICP Wallet
. I Approve.
- A webpage is shown, which says “Choose a mask to wear” and lists one pre-created mask for me to select.
- I click on that mask.
- The webpage with MSQ is closed immediately and I’m again at the website X. But now I’m authorized.
- My principal ID on website X is the same as was shown by the mask I selected at MSQ.
- After that website X can sign messages with my key pair, that corresponds to the principal ID of the selected identity (mask) on my behalf, without me noticing it.