Skip to content

NIP-46 get_device_info method for signer metadata #375

@kwsantiago

Description

@kwsantiago

Problem

After NIP-46 register_wallet completes, keep knows the signer Nostr pubkey and an opaque HMAC token but has no over-the-wire way to learn the device kind, firmware version, or master key fingerprint. Any UI that wants to display "Coldcard Mk4" instead of a raw 32-byte pubkey has to ask the user to type it.

Solution

Extend keep-nip46 to support a get_device_info method that returns structured metadata from the signer.

{
  "kind": "Coldcard" | "Ledger" | "BitBox02" | "Jade" | "Trezor" | "Other",
  "firmware_version": "1.2.3",
  "fingerprint": "deadbeef",
  "capabilities": ["miniscript", "tapminiscript", "multisig"]
}

Reference

  • keep#333: parent feature (register_wallet protocol, CLI, desktop UI)
  • liana: HWI integration calls device.device_kind() and device.get_version() for the same purpose

Scope

  • NIP-46 get_device_info request/response (typed, with deny_unknown_fields and size cap)
  • CLI: call after connect(), populate new fields on DeviceRegistration (see companion issue)
  • Desktop: populate the device kind input automatically if the signer responds
  • Integration test stub in keep-nip46/tests/

Non-goals

  • Implementing the server side; hardware signers implement this, we are the client
  • Making get_device_info required for register_wallet to succeed (must remain best-effort)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestnip46NIP-46 remote signer protocolnostr-frostNostr FROST coordination protocolp4Backlog PrioritywdcWallet Descriptor Coordination

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions