Skip to content

[Feature Request] Enter mnemonic using BIP39 word numbers #311

Description

@oroderico

Summary

I would like to propose adding an optional mnemonic entry method that lets users input a recovery phrase by entering BIP39 word numbers instead of typing the words directly.

This would be useful in two places:

  • setting up a new Jade from an existing recovery phrase
  • restoring an already initialized Jade from an existing recovery phrase

The existing word-based setup/restore flow would remain available. QR-based restore would also remain unchanged for Jade models with a camera. This would simply add another manual entry option for users who already have their recovery
phrase recorded as BIP39 wordlist indexes.

Motivation

Many users choose to back up or verify BIP39 mnemonics using wordlist indexes rather than full words, especially when working with metal backups, printed BIP39 tables, or numbered recovery records.

This is already a familiar workflow in parts of the Bitcoin self-custody ecosystem. For example, Krux and Kern supports manual mnemonic input via BIP39 word numbers from 1 to 2048:

Adding this option to Jade would make setup and restore easier for users who already maintain numbered BIP39 backups, without changing the existing word-entry or QR restore flows.

Proposed behavior

  • When entering a 12- or 24-word mnemonic during setup or restore, offer a method selection step.
  • Keep the current word-entry flow unchanged.
  • Keep the current QR restore flow unchanged for models with a camera.
  • Add a word-number entry flow where each word is entered as a number from 1 to 2048.
  • Resolve each number to the corresponding BIP39 English word.
  • Ask the user to confirm the resolved word before moving to the next one.
  • Validate the completed mnemonic with the existing BIP39 validation path.
  • Preserve the existing advanced/final-word behavior where applicable.

Implementation approach

The prototype reuses existing Jade UI elements where possible, including the existing digit-entry and word-confirmation style flows. This keeps the change smaller, avoids introducing a separate custom input system, and reduces the
amount of new UI code needed.

The feature is intended as an additive manual-entry path, not a replacement for the existing restore methods.

UX notes

The flow should avoid silently accepting a number without showing the resolved word, since a mistyped number could otherwise be hard to notice.

The number-entry screen should not always start from zero. A randomized initial state is preferable so the interaction does not always begin from a fixed predictable value.

Validation and demo

I tested a local implementation on a TTGO T-Display build using ESP-IDF and configs/sdkconfig_display_ttgo_tdisplay.defaults.

I am attaching a short demo video showing the current prototype running on device.

The expected acceptance criteria are:

  • 12-word mnemonic entry by word numbers works end to end.
  • 24-word mnemonic entry by word numbers works end to end.
  • The flow works when setting up a new Jade from an existing recovery phrase.
  • The flow works when restoring an already initialized Jade.
  • Invalid word numbers are rejected.
  • Invalid final mnemonics are rejected by the normal BIP39 validation.
  • Existing word-entry flows remain unchanged.
  • QR restore remains unchanged on camera-capable models.

Implementation note

I have prototype branch implementing this flow and can open a PR if maintainers are interested in the approach.

jade_input_numbers.mp4

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