Skip to content

Feature Parity 21: External Signer / HWI Flow #525

@johnny9

Description

@johnny9

Summary

Deliver external signer flow parity for transaction signing with hardware/external devices.

Complexity

  • XL

Dependencies

  • 18
  • 16
  • 10
  • 02

Global Constraints

  • All implementation lives under gui-qml/.
  • No GUI runtime dependency on bitcoin/src/qt components. Reused logic must be moved/ported into gui-qml/.
  • Do not change interfaces::Wallet or interfaces::Node in this version.
  • Issue completion must satisfy DefinitionOfDone.md.

Scope

  • Add signer detection surface using Node::listExternalSigners.
  • Integrate send + PSBT flow for external signing path.
  • Expose signer configuration guidance and unavailable-state handling.
  • Support partial-sign and finalize loops.

Acceptance Criteria (DoD-Aligned)

  1. User can detect available external signer and complete supported signing flow.
  2. Missing signer, multiple signer, and signer error conditions are explicit and recoverable.
  3. PSBT/external signer interoperability is validated end-to-end.

Required Tests

  • C++ unit tests: Unit tests with signer mocks/stubs for detection and flow branching.
  • QML QTest: QTests for signer state UI and action enablement.
  • Python E2E (qml/test/testbridge.h): E2E flow with mocked external signer path including failure/retry behavior.

Implementation Notes

  • Treat this as late-stage parity once PSBT core flow is stable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions