Neptune-Crypto/neptune-core

Multi-Coin Hardware Wallet Support

Offen

#362 geöffnet am 04.02.2025

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Rust (45 Forks)auto 404
dependenciesenhancementgood first issuequestion

Repository-Metriken

Stars
 (110 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

If you want to use an external, multi-coin hardware wallet to safeguard your Neptune coins, then you quickly run into problems. Here is a probably incomplete and possibly inaccurate summary.

  • Basically all wallets support BIP-32 in some or other capacity and this simply does not apply to Neptune because we don't use elliptic curves.
  • Users may want to use the same 24 words they have already backed up for other cryptocurrencies to backup the Neptune Cash holdings also. However, neptune-cli only supports 18-word seed phrases, and it will likely fail if you omit the last 6 words. Or alternatively, users who are appropriately distrustful of their machines may want to generate the seed on a secure hardware device and then copy it over by first exporting it as 24 BIP-39 words. These hardware devices rarely support the non-standard option of 18 words.
  • BIP-39 has optional passphrases, which we do not support. In fact, supporting optional passphrases would mean either importing SHA2-512 or breaking the standard and use Tip5 instead. I tend to prefer the former option as the relevant mechanics take place before conversion to BFieldElements.
  • There is a standard for deriving a coin-specific master seed from a multi-coin übermaster seed: BIP-44/SLIP-44. Multi-coin hardware wallets generally support this standard and supply the coin-specific master seed to the wallet software.

If that summary is accurate, I derive the following tasks:

  • support importing 24-word BIP-39 seed phrases
  • support BIP-39 passwords
  • register a SLIP-44 derivation number
  • support import-and-derive-key via SLIP-44 derivation path

Contributor Guide