-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ledger: Define authentication flows #2355
Comments
Here's a draft of the User flows for the Connect wallet feature:
I will draft a prototype based on this flow so we can review it. cc/ @kyranjamie @markmhx |
Based on feedback, the Connect wallet flow is now much more simple because there's no need to involve the Ledger during the account selection flow anymore. We changed the branching decision between Auth and Request account. Now its based on wether the dApp needs Authentication or just the public keys. |
There's one possible flow we are not covering, that can be triggered when the user is on a dApp and clicks Connect Wallet (and the Hiro wallet has not yet been setup). This seems part edger case, part something totally feasible, right?
Wdyt @markmhx @kyranjamie ? Here's a video on how the flow looks with the current build. Ledger.-.Legacy.authentication.mp4A simulation of what the user would see when Connecting though an app a brand new Wallet |
I don't think so
A warning/tooltip, at least, would be nice
Umm 🤨 . It think it might be possible to go off to full screen mode and return to the popup following onboarding. This wouldn't be super trivial, though. |
Thanks @kyranjamie. Will try these solutions first and see how they look |
There's a more in depth solution for connecting an dapp to a brand new Wallet (without account created) here |
I've updated the prototype based on this proposal and with help of @kyranjamie. This prototype shows authenticated and non-authenticated scenarios with both Auth and Request accounts methods, from the point of view of a user interacting with a dApp. Here are the new updates:
Question Check the Figma prototype, where each use-case/flow has a flowchart as well. |
Is this screen to be shown specifically when the user tries to sign a transaction having not yet set up their wallet yet? Or are there other cases in which this is shown?
We last looked into this a couple of months ago upon which @fbwoolf flagged some difficulties and @landitus was going to investigate Metamask's approach further, if I'm not mistaken. Do we have a better sense these days of how we'd go about this?
Our current plan is to release Ledger support with app authentication support, leveraging Zondax's upgrade to the Stacks app that enables this. So, Ledger should be supported fine in this STXNFT case? |
Yes, and also if they try to connect and authenticaticate with a wallet that was not set up.
I forgot about looking into MetaMask. But I'll take a look!
If it's supported fine, there would be no issues. Would you like me to update the mocks assuming we get Ledger supported? |
For both transaction signing and authenticate, clicking "Setup Hiro Wallet" goes to the landing page ("Explore world of Stacks") with options to generate key or sign in? If so, perhaps it's best to send the user directly there and simply show a message on the top saying "Please set up your wallet by choosing an option below before proceeding to [sign into Testing App|sign a transaction with Testing App]". That way we save the user a step and save ourselves the need for an entirely new screen. wdyt?
Yep I believe so. @kyranjamie can you confirm?
🙏 |
This referred to handling the returning to app scenario when user initially installs the wallet. That is not presented here. This flow describes wallet installed but not set up yet scenario.
This change is not necessarily a golden ticket to full hardware wallet support. I'm not sure yet if auth alone without an |
Ah I see, got it. Should we break this out into its own issue, separate from Ledger since it's not strictly needed for it? Same question for the new setup screen or message upon auth or signing for users who haven't completed setup. It seems we could tackle these as a non-Ledger-dependent enhancement.
Let's test ASAP so we can get clarity on this. |
Sounds good to me
This one is intended for the Ledger setup UX. As we've identified here, we'd like to route all onboarding flows to a new tab, especially as Ledger is better set up that way. We could do a quick fix for this (and delay building this new screen) if we set the "I have a Ledger" link to open in a new tab. This way, at least, Ledger is not set up in the pop-up window, but in a full tab. |
Yep, this is what I'd suggest here in support of the initial release of Ledger. I think we also discussed converting the Ledger connection overlay below into its own page view so we can avoid loading the "Explore the world of Stacks" landing page first, only to display the overlay immediately on top of it in this scenario. That sounds like a good enhancement to me as well for this initial release, assuming it doesn't require a lot of code change. |
When connecting to dApps, we need to go through the Ledger connection flow. There are technical limitations to the current Authentication flow, so we are proposing a new method for connecting with Ledger (and we plan to deprecate the current Auth code).
In order to build the Ledger authentication flow, we should cover the following:
The text was updated successfully, but these errors were encountered: