MetaMask / MetaMask/metamask-extension
[Bug]: Cannot add more than one QR code wallet when importing a QR-code based hardware wallet (Keystone Pro)
- Dominant language
- TypeScript
- Stars
- 13.2k
- Forks
- 5.6k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 451
Description
### Describe the bug
I have a Keystone Pro hardware wallet, which communicates with wallet frontends over QR codes.
I have a couple passphrases set up on the Keystone, as well as the normal, passphrase-free default wallet. I want to add a couple addresses from each of these wallets to my Metamask. Since the Keystone sees these as separate wallets as I switch between them, it gives me different QR codes for each wallet.
In Metamask, first, I choose the "Connect hardware wallet" option, select "QR-based", and scan the QR code of the first, regular (no passphrase) wallet. Then it gives me the option to choose which addresses I want to import.
Now I want to import one of the wallets with a passphrase. So I first go back to Metamask and select "Connect hardware wallet" again, then select "QR-based" again, except this time it won't let me scan the QR code of a new wallet, instead it just displays the same list of addresses from the first QR code/wallet.

**I was expecting there to be a way to scan in multiple QR code wallets.**
Only way to add it seems to be clicking "Forget this device" which entirely resets your ipv4 connection.
### Steps to reproduce
see "Describe the bug" section
### Error messages or log output
```shell
n/a
```
### Version
10.32.0-flask.0
### Build type
None
### Browser
Chrome
### Operating system
Windows
### Hardware wallet
Keystone
### Additional context
This happens on both the browser extension and on the iOS app.
I run the Flask browser extension and the iOS app is v6.3.0 (1095).
The hardware wallet is a Keystone Pro on the latest update (M-10.8).
Contributor guide
Research direction
Start by reproducing the Connect hardware wallet > QR-based flow with separate Keystone passphrases in the browser extension. Trace how the first QR wallet and its address list are retained, then verify that a second QR scan can be imported without using Forget this device; the issue reports the same behavior on iOS.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100