Skip to content

feat(zcash): add deviceVersion to ZcashAccounts#39

Open
czarcas7ic wants to merge 1 commit intoKeystoneHQ:masterfrom
valargroup:adam/zcash-accounts-device-version
Open

feat(zcash): add deviceVersion to ZcashAccounts#39
czarcas7ic wants to merge 1 commit intoKeystoneHQ:masterfrom
valargroup:adam/zcash-accounts-device-version

Conversation

@czarcas7ic
Copy link
Copy Markdown

@czarcas7ic czarcas7ic commented Apr 12, 2026

Closes KeystoneHQ/keystone3-firmware#2147

Summary

  • Add optional deviceVersion: String? to the Swift ZcashAccounts model
  • Backwards compatible: Codable treats absent JSON fields as nil
  • Zodl will read this during Keystone pairing to cache the firmware version

Before merge

Update Package.swift binaryTarget URL and checksum to point to the new URRegistryFFI.xcframework.zip release created after KeystoneHQ/keystone-sdk-rust#127 merges. The current checksum references sdk-0.2.3 which doesn't have device_version in the FFI layer.

Depends on

Testing

Using all three device version PRs I have opened

KeystoneHQ/keystone-sdk-rust#127
#39
KeystoneHQ/keystone3-firmware#2138

I tested against a zodl app that prints a debug line when connecting the keystone. We see that the keystone version is correctly communicated when connecting the hardware wallet:

debug-show-version-when-connected.mp4

Docs

I wrote up a short doc on how we will use QR pairing and data added when responding with the signed PCZT in order to achieve version negotiation for the upcoming quantum recoverability feature in zcash

https://hackmd.io/@valargroup/H1pGeaFh-l

Add optional deviceVersion field to the Swift ZcashAccounts model.
Parsed from the CBOR encoding when present, nil for old firmware
that doesn't include it. Backwards compatible via Codable optionals.
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.

feat(zcash): surface firmware version in ZcashAccounts pairing QR

1 participant