Skip to content

feat(zcash): add ZcashDisplayAddress protocol (IDs 1308/1309)#24

Merged
BitHighlander merged 3 commits into
masterfrom
feat/zcash-display-address
Mar 25, 2026
Merged

feat(zcash): add ZcashDisplayAddress protocol (IDs 1308/1309)#24
BitHighlander merged 3 commits into
masterfrom
feat/zcash-display-address

Conversation

@BitHighlander
Copy link
Copy Markdown
Owner

Summary

  • Add ZcashDisplayAddress (wire_in 1308) and ZcashAddress (wire_out 1309) messages
  • Enables displaying Zcash unified address on device screen with FVK verification
  • Device derives FVK from seed, verifies against host-provided components, then displays address with QR code

Messages

  • ZcashDisplayAddress: address_n, account, address (u1...), ak/nk/rivk (32 bytes each)
  • ZcashAddress: confirmed address string after user approval

Test plan

  • Firmware builds with new proto definitions
  • nanopb generates correct headers (address max_size:128)
  • Emulator accepts ZcashDisplayAddress message

- PCZT streaming protocol: ZcashSignPCZT, ZcashPCZTAction, ZcashPCZTActionAck
- Orchard FVK: ZcashGetOrchardFVK, ZcashOrchardFVK
- Transparent shielding: ZcashTransparentInput, ZcashTransparentSig
- Wire IDs 1300-1307
- nanopb options for all fields

Multi-phase protocol: session init → action streaming → transparent signing.
Supports on-device Orchard digest verification via sub-digest fields.
New messages for displaying a Zcash unified address on the device screen
with FVK verification. The host provides the UA string and FVK components;
the device independently derives FVK from seed and verifies the match
before displaying the address with a QR code.

- ZcashDisplayAddress (wire_in 1308): address + ak/nk/rivk for verification
- ZcashAddress (wire_out 1309): confirmed address after user approval
- nanopb options: address max_size:128, key fields max_size:32
@BitHighlander BitHighlander merged commit edc3ae9 into master Mar 25, 2026
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