Skip to content

[Feature Request] Add passphrase QR-code #308

Open

Description

@15i15

Please add the option to enter a BIP39-passphrase via a QR code; I really miss this feature in your wonderful wallet.

Activity

  1. jgriffiths commented on Jul 11, 2026

    @jgriffiths
    Collaborator

    Hi @15i15 Do you have a sample qrCode of the expected format (not with your real passphrase of course), or a link to a specification/examples of other wallets that allow this?

  2. 15i15 commented on Jul 11, 2026

    @15i15
    Author

    As far as I know, SeedSigner and Coldcard Q have this feature. I don't have any links, sorry.

  3. oroderico commented on Jul 14, 2026

    @oroderico
    Contributor

    Krux supports this flow as well. Their docs describe adding/replacing a wallet passphrase by choosing between typing it or scanning it, and the implementation has a Scan BIP39 Passphrase path that reads the QR payload as the passphrase.

    Docs: https://github.com/selfcustody/krux/blob/main/docs/getting-started/usage/navigating-the-main-menu.en.md#passphrase

    Implementation: https://github.com/selfcustody/krux/blob/main/src/krux/pages/wallet_settings.py#L70-L79 and https://github.com/selfcustody/krux/blob/main/src/krux/pages/wallet_settings.py#L140-L166

  4. bitcoinhelp commented on Jul 16, 2026

    @bitcoinhelp
    Contributor

    We already have two different options for entering a passphrase, so I'd imagine we could add a 3rd to the selection carousel
    (BIP39 Passphrase -> Method -> Manual | WordList | QR)

    Right now Jade only generates CompactSeedQRs but it can read (AFAIK) plain text QR, StandardSeedQR, and CompactSeedQR

    Is there a specific QR type you would find useful to support for this? @15i15 @oroderico

    Because you can always create a new CompactSeedQR through the Temp Signer flow, that probably makes the most practical sense since Jade can help you create one instead of needing to make it elsewhere

  5. oroderico commented on Jul 31, 2026

    @oroderico
    Contributor

    I think plain-text QR would be the most appropriate format. The QR payload should be interpreted directly as the BIP39 passphrase, as Krux does. StandardSeedQR and CompactSeedQR represent mnemonic seeds, so using those formats for a passphrase could mix two different concepts. @bitcoinhelp

  6. oroderico commented on Aug 1, 2026

    @oroderico
    Contributor

    I've started working on an implementation for this. The current approach adds QR Code as a third passphrase method on camera-enabled devices and treats a plain-text QR payload directly as the BIP39 passphrase, keeping it separate from SeedQR formats.

    I'm currently validating confirmation and cancellation flows, persistence and backward compatibility, ASCII handling, and the UI on the
    Waveshare S3 Touch before opening a PR. I'll share the PR here once the branch is ready for
    review.

    WIP branch (not ready for formal review yet):
    https://github.com/oroderico/Jade/tree/feature/bip39-passphrase-qr-code

  7. Tracachang commented on Aug 14, 2026

    @Tracachang

    We already have two different options for entering a passphrase, so I'd imagine we could add a 3rd to the selection carousel (BIP39 Passphrase -> Method -> Manual | WordList | QR)

    Right now Jade only generates CompactSeedQRs but it can read (AFAIK) plain text QR, StandardSeedQR, and CompactSeedQR

    Is there a specific QR type you would find useful to support for this? @15i15 @oroderico

    Because you can always create a new CompactSeedQR through the Temp Signer flow, that probably makes the most practical sense since Jade can help you create one instead of needing to make it elsewhere

    Why the wordlist method passphrase input is capped at 10 words even though the underlying limit is 100 characters?

    I've started working on an implementation for this. The current approach adds QR Code as a third passphrase method on camera-enabled devices and treats a plain-text QR payload directly as the BIP39 passphrase, keeping it separate from SeedQR formats.

    I'm currently validating confirmation and cancellation flows, persistence and backward compatibility, ASCII handling, and the UI on the Waveshare S3 Touch before opening a PR. I'll share the PR here once the branch is ready for review.

    WIP branch (not ready for formal review yet): https://github.com/oroderico/Jade/tree/feature/bip39-passphrase-qr-code

    While implementing the QR flow, did you run into any issues with Jade’s existing 10-word limit for the wordlist method passphrase entry, or is that constraint fully bypassed when the passphrase is provided through QR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions