Skip to content

feat: TRON, TON, Zcash Orchard, and BIP-85 support (device-protocol 7.14.0)#31

Merged
BitHighlander merged 8 commits intomasterfrom
feature-7.14.0
Mar 20, 2026
Merged

feat: TRON, TON, Zcash Orchard, and BIP-85 support (device-protocol 7.14.0)#31
BitHighlander merged 8 commits intomasterfrom
feature-7.14.0

Conversation

@BitHighlander
Copy link
Collaborator

@BitHighlander BitHighlander commented Mar 11, 2026

Summary

  • Add TRON chain support (SLIP-44: 195, secp256k1, wire IDs 1400-1403)
  • Add TON chain support (SLIP-44: 607, Ed25519, wire IDs 1500-1503)
  • Add Zcash Orchard shielded transaction support (ZIP-32 FVK + PCZT signing)
  • Add BIP-85 child mnemonic derivation (wire IDs 120-121)
  • Update device-protocol to 7.14.0 via npm alias

Wire ID Allocation (device-protocol 7.14.0)

Chain / Feature GetAddress / Request Address / Response SignTx SignedTx
TRON 1400 1401 1402 1403
TON 1500 1501 1502 1503
Zcash uses messages-zcash_pb protos
BIP-85 120 (GetBip85Mnemonic) 121 (Bip85Mnemonic)

BIP-85 Details

  • hdwallet-core: Bip85Wallet interface, Bip85GetMnemonicMsg type, supportsBip85() type guard
  • hdwallet-keepkey: bip85GetMnemonic({ wordCount: 12|18|24, index }) via firmware msg 120/121
  • Uses LONG_TIMEOUT (5 min) for device interaction

Test plan

  • TypeScript compiles clean (BIP-85 portion)
  • Wire IDs verified against device-protocol 7.14.0
  • Prettier/lint passes for BIP-85 files
  • E2E device test with BIP-85 firmware
  • E2E device test with TRON/TON/Zcash firmware

BitHighlander and others added 2 commits March 11, 2026 15:31
Wire IDs (device-protocol 7.14.0):
- TRON: 1400-1403 (GetAddress, Address, SignTx, SignedTx)
- TON: 1500-1503 (GetAddress, Address, SignTx, SignedTx)

SLIP-44: Tron=195 (secp256k1, m/44'/195'/0'/0/0)
         Ton=607 (Ed25519, m/44'/607'/account')

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Device-protocol 7.14.0 wire IDs:
- TRON: 1400-1403 (GetAddress, Address, SignTx, SignedTx)
- TON: 1500-1503 (GetAddress, Address, SignTx, SignedTx)
- Zcash: uses messages-zcash_pb (GetOrchardFVK, SignPCZT)

SLIP-44: Tron=195 (secp256k1, m/44'/195'/0'/0/0)
         Ton=607 (Ed25519, m/44'/607'/account')
         Zcash=133 (ZIP-32, m/32'/133'/account')

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@vercel
Copy link

vercel bot commented Mar 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hdwallet-sandbox Ready Ready Preview, Comment Mar 20, 2026 8:43am

Request Review

- hdwallet-core: Bip85Wallet interface, Bip85GetMnemonicMsg type, supportsBip85() guard
- hdwallet-keepkey: bip85GetMnemonic() using firmware msg types 120/121

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@BitHighlander BitHighlander changed the title feat: TRON, TON, and Zcash Orchard support (device-protocol 7.14.0) feat: TRON, TON, Zcash Orchard, and BIP-85 support (device-protocol 7.14.0) Mar 11, 2026
- keepkey.ts: fix import sort order (Ton/Tron/Zcash alphabetical)
- ton.ts: add eslint-disable for protobuf namespace pattern, fix prettier
- tron.ts: add eslint-disable for protobuf namespace pattern, fix prettier

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ress encoding

- BIP-85: return Bip85DisplayResult (displayed: boolean) instead of Bip85Mnemonic,
  firmware no longer sends mnemonic over USB
- TON: add bounce, memo, isDeploy fields to TonSignTx proto bindings (fields 9-11)
- TRON: use getWrapperField for transfer sub-message serialization (was silently
  dropping transfer data), use Base58 toAddress instead of hex (firmware rejects hex)
@BitHighlander BitHighlander merged commit 67bf7d5 into master Mar 20, 2026
4 checks passed
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