Skip to content

epic: Trezor Hardware Wallet UI #998

@ovitrif

Description

@ovitrif

Design: Figma — Trezor Screens

Related (iOS): synonymdev/bitkit-ios#589

Context

Bitkit is adding a Hardware Wallet balance type alongside Savings (on-chain) and Spending (Lightning), backed by Trezor. The hardware balance is a watch-only view of funds held on a paired Trezor: Bitkit displays the amount and the device's on-chain activity but never holds the keys. Removing a device just stops Bitkit from displaying its balance.

The home-screen parents already exist (Savings/Spending tiles, suggestion carousel, Settings list), but the hardware/Trezor side of each is missing.

Device naming & connection indicator

  • Display name = label ?: model ?: "Trezor"label is the device name set on the Trezor (editable on-device / in Trezor Suite), model is the hardware model (e.g. "Safe 3" / "Safe 7").
  • The Figma "LABEL FUNDS" field is a Bitkit-side display name for the balance, defaulting to the resolved device name; persisted per device so the user can rename within Bitkit without touching the device.
  • Connection indicator = connection type (Bluetooth or USB), tinted green while the device is currently connected. Figma examples: bluetooth · usb.

Subtasks

  • 1. Home Screen hardware-wallet updates — (a) full-width device row below the Savings|Spending tiles (<device name> [conn-type indicator, green when connected] ₿ <balance>, blue BTC icon; empty state ₿ 0), hardware funds included in the headline total, device activity merged into the home activity list; (b) new "HARDWARE / Connect device" suggestion card in the carousel → opens the Connect Hardware flow.
  • 2. Hardware Wallet detail screen — Savings/Spending-style overview: top bar = device name + blue BTC icon; balance header; Transfer To Spending button; grouped activity list; Remove <device name> → confirm dialog ("Don't worry, your funds are safe and your coins won't be deleted. Bitkit will simply stop displaying the amounts in the wallet." / Cancel / Remove). Empty state = ₿ 0, Send/Receive only.
  • 3. Hardware Wallet settings — (a) new row in Settings ▸ General ▸ Payments, value = paired-device count → (b) Hardware Wallets Settings Screen: list of paired devices (name + balance + green connection indicator when connected + per-row delete) + Add Hardware Wallet button → Connect flow.
  • 4. Connect Hardware flow (bottom-modal, 4 steps) — Intro (ADD YOUR HARDWARE WALLET) → Searching (SEARCHING FOR DEVICES, USB or Bluetooth) → Found (FOUND TREZOR, pair prompt) → Paired (PAIRED TREZOR, editable LABEL FUNDS field defaulting to the device name, Finish). Entered from the suggestion card or from Hardware Wallets Settings ▸ Add.
  • 5. Transfer to Spending from HW device flow (bottom-modal, 4 steps) — watch-only: channel funding is a send signed on the Trezor device. Amount (numpad; AVAILABLE = savings limit; 25% shortcut; MAX = savings − fees/reserve or the Blocktank limit; over-max resets + error toast) → Review & Sign (SIGN WITH YOUR DEVICE; network/service fees, to-spending, total; Open Trezor Connect; disconnected → "Reconnect Hardware Device" error) → Transaction Signed (checkmark; auto-forwards after a short delay) → Processing Payment (existing frame). Figma frame.
  • 6. Automated testing — UI test hooks (testTags / accessibility ids) on the new hardware screens + a hardware-wallet e2e shard so the connect / transfer flows are runnable by AI agents and in CI, driven by a Trezor emulator (no physical device).

Android implementation notes are in the comment below.

Metadata

Metadata

Assignees

Labels

epicGroup of tickets

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions