Skip to content

feat: add BIP-85 child mnemonic derivation - #22

Closed
BitHighlander wants to merge 6 commits into
developfrom
feature-bip85
Closed

feat: add BIP-85 child mnemonic derivation#22
BitHighlander wants to merge 6 commits into
developfrom
feature-bip85

Conversation

@BitHighlander

Copy link
Copy Markdown
Owner

Summary

  • BIP-85 deterministic entropy from BIP32 keychains
  • Derives child mnemonics at m/83696968'/39'/0'/word_count'/index'
  • Supports 12, 18, and 24-word derived mnemonics
  • On-device confirmation before revealing mnemonic
  • Message types: GetBip85Mnemonic (120), Bip85Mnemonic (121)
  • BTC-native feature (works in BTC-only builds)
  • device-protocol submodule → fork/develop (all v7.14.0 protos)

Dependencies

Test plan

  • Build firmware with BIP-85 enabled
  • Test 12-word mnemonic derivation at index 0
  • Test 24-word mnemonic derivation at index 0
  • Verify derived mnemonics are valid BIP-39
  • Verify deterministic — same seed+index = same mnemonic
  • Test on-device confirmation prompt

BitHighlander and others added 6 commits March 6, 2026 17:46
Remove QTUM, BNB, ZIL, GTO, IOST, CMT, MCO, and ODEM from tokens.def.

These tokens were listed as ERC-20 entries in the legacy coin table but
their contract addresses no longer exist in the generated uniswap_tokens
table (they migrated to their own L1 chains or were delisted). This
causes Coins.TableSanity unit test to fail because tokenByTicker()
finds them in coins[] but tokenByChainAddress() cannot locate them in
tokens[], returning UnknownToken.

The native chain entries for QTUM, BNB, etc. in coins.def are unaffected
(they have has_contract_address=false).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4-stage fail-fast pipeline: gate (lint, secrets, submodules) → build
(emulator + ARM cross-compile) → test (unit + Python integration) →
publish (manual DockerHub push). Downloadable firmware artifacts with
version-tagged naming. CircleCI config removed.
Remove unused variant builds (salt, fox, kaspersky, blockpit, dash) that
compiled on every build but are no longer shipped. Add KK_BITCOIN_ONLY
cmake option to produce a BTC-only firmware with altcoin sources and
crypto excluded. Add parallel CI job for BTC-only ARM cross-compilation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove dead white-label variants, add BTC-only build
Derive child mnemonics from the device's master seed using BIP-85:
  m/83696968'/39'/0'/word_count'/index'

- Supports 12, 18, and 24-word derived mnemonics
- HMAC-SHA512 key derivation with BIP-39 entropy conversion
- On-device confirmation before revealing derived mnemonic
- Message types: GetBip85Mnemonic (120), Bip85Mnemonic (121)
- device-protocol submodule → fork/develop (all v7.14.0 protos)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant