Existing wallet login w/ seed phrase

Is your feature request related to a problem? Please describe.

A way for users with existing wallets (eg. metamask) to use the same flow to connect their wallet via seed phrase

Describe the solution you'd like

Adapter which allows users to input a seed phrase, which is stored encrypted locally on their computer. This does not have to convert their PK to be usable with openlogin, just an option to allow existing crypto users to not have to create a new wallet for apps that use the web3 auth flow.

Describe alternatives you've considered

Separate integration to have the user input an existing seed phrase. This for sure works, but would be good to have all users in the same single auth flow. I'm guessing this could be accomplished by writing your own adapter, but I'd imagine that this would be a pretty common task for all apps looking to use something like web3auth. Currently AFAIK all existing login methods for web3auth require you to make a new account rather than use an existing wallet. There are External wallet options for Metamask or Coinbase extension, but the current use case I'm exploring is for use in an Electron where neither of the 2 are available.

Additional context

The web3auth site seems to indicate that this is possible, but I might have just missed how this is done:





Originally posted by: ryunik

Check the discussion at: https://github.com/orgs/Web3Auth/discussions/551

Hey Nick,

Sorry for not getting back to you promptly around this question. We are constantly developing new adapters. Somehow this particular adapter was not prioritized according to our community needs. We'll add this to our development cycle as soon as possible and update you accordingly.

In the meantime you can utilise the following options of implementing it directly:

  • Web3Auth never saves your private key within any server, it is dynamically reconstructed within your application. You can use the Web3Auth Self Host to get your user to input a private key and save the shares somewhere within your servers and dynamically reconstruct it within your frontend. You can also use the browser local storage to share keys (as Web3Auth does with the device share) and utlise it directly. There are dedicated modules available for that.
  • For this login, we can expect a user to enter their private key on every new session, you can safely store their private key within the session storage.
  • For directly using the private key for making transactions, you can refer to the particular documentation of the chain you're building upon. You can also refer to a few common chains that we have highlighted in our documentation
  • For EVM and solana chains, web3auth has a dedicated provider. This provider can be imported as separate modules as ethereum-provider and solana-provider where you can pass your private key and get a provider for making RPC Calls.

Originally posted by: yashovardhan