need a way to delete a wallet. propose options. #13

Closed
opened 2026-02-27 21:07:57 +01:00 by sneak · 2 comments
Owner
No description provided.
clawbot was assigned by sneak 2026-02-27 21:07:57 +01:00
sneak added this to the 1.0.0 milestone 2026-02-27 21:08:37 +01:00
Collaborator

Wallet Deletion — Proposed Options

Add a "Delete wallet" button to the settings view for the currently selected wallet.

Flow:

  1. Settings → "Delete Wallet N" button (red/danger styling)
  2. Confirmation dialog: "Are you sure? This will permanently delete Wallet N and all its addresses from AutistMask. If you don't have your recovery phrase backed up, your funds will be unrecoverable."
  3. Require password entry to confirm (proves ownership, prevents accidental deletion)
  4. Remove wallet from state.wallets[], update selectedWallet/selectedAddress/activeAddress
  5. If no wallets remain, show welcome screen
  6. If the deleted wallet was active, switch to the first remaining wallet

Pros: Simple, consistent with how users manage wallets. Password requirement prevents accidental/unauthorized deletion.

Option B: Long-press / Swipe on Wallet List

Add a delete action to the wallet list on the main view (long-press to reveal delete, or swipe-to-delete).

Pros: More discoverable, quicker.
Cons: Harder to implement well in a popup extension, risk of accidental triggers. Still needs confirmation dialog.

Option C: Edit Mode on Wallet List

Add an "Edit" button to the main view that enters edit mode (showing X buttons on each wallet).

Pros: Familiar iOS-style pattern.
Cons: More UI complexity for a rarely-used action.


My recommendation: Option A

Simplest to implement, safest (password-gated), and the settings view is the natural place for destructive operations. Implementation is ~50 lines of JS:

  • Add "Delete wallet" button to settings view HTML
  • Handler: validate password → splice wallet from array → update active state → save → re-render
  • Edge case: clear allowedSites/deniedSites/connectedSites entries for deleted addresses

Should I proceed with Option A, or do you prefer a different approach?

## Wallet Deletion — Proposed Options ### Option A: Settings → Delete Wallet (Recommended) Add a "Delete wallet" button to the settings view for the currently selected wallet. **Flow:** 1. Settings → "Delete Wallet N" button (red/danger styling) 2. Confirmation dialog: "Are you sure? This will permanently delete Wallet N and all its addresses from AutistMask. If you don't have your recovery phrase backed up, your funds will be unrecoverable." 3. Require password entry to confirm (proves ownership, prevents accidental deletion) 4. Remove wallet from `state.wallets[]`, update `selectedWallet`/`selectedAddress`/`activeAddress` 5. If no wallets remain, show welcome screen 6. If the deleted wallet was active, switch to the first remaining wallet **Pros:** Simple, consistent with how users manage wallets. Password requirement prevents accidental/unauthorized deletion. ### Option B: Long-press / Swipe on Wallet List Add a delete action to the wallet list on the main view (long-press to reveal delete, or swipe-to-delete). **Pros:** More discoverable, quicker. **Cons:** Harder to implement well in a popup extension, risk of accidental triggers. Still needs confirmation dialog. ### Option C: Edit Mode on Wallet List Add an "Edit" button to the main view that enters edit mode (showing X buttons on each wallet). **Pros:** Familiar iOS-style pattern. **Cons:** More UI complexity for a rarely-used action. --- ### My recommendation: **Option A** Simplest to implement, safest (password-gated), and the settings view is the natural place for destructive operations. Implementation is ~50 lines of JS: - Add "Delete wallet" button to settings view HTML - Handler: validate password → splice wallet from array → update active state → save → re-render - Edge case: clear `allowedSites`/`deniedSites`/`connectedSites` entries for deleted addresses Should I proceed with Option A, or do you prefer a different approach?
clawbot removed their assignment 2026-02-27 21:09:03 +01:00
sneak was assigned by clawbot 2026-02-27 21:09:03 +01:00
sneak was unassigned by clawbot 2026-02-27 21:09:42 +01:00
clawbot self-assigned this 2026-02-27 21:09:42 +01:00
Collaborator

Proposed options for wallet deletion

Option A: Delete from Home screen (inline)

  • Long-press or swipe on a wallet row in the Home wallet list → reveals "Delete" button
  • Tap → confirmation dialog: "Delete wallet [name]? This removes the wallet from this device. Your funds are safe if you have your recovery phrase."
  • Requires password to confirm (prevents accidental deletion)
  • Pros: discoverable, fast. Cons: long-press/swipe gestures aren't visible affordances (violates clickable affordance rule)

Option B: Delete from Settings

  • Add wallet list to Settings (currently only has "+ Add wallet")
  • Each wallet row has a [delete] text link
  • Tap → same confirmation dialog + password
  • Pros: consistent with existing Settings pattern, visible affordance. Cons: extra navigation

Option C: Delete from wallet [info] context

  • On the Home screen, each wallet already has address-level [info] buttons. Add a wallet-level [info] or [manage] link next to the wallet name
  • Tapping it shows wallet details: name (editable), recovery phrase (password-gated), [Delete wallet] link
  • Confirmation dialog + password
  • Pros: groups all wallet management together, follows existing info pattern. Cons: new screen

My recommendation: Option C

It fits the existing UI patterns best — the [info] button is already established for addresses, extending it to wallets is natural. It also gives a home for the TODO item "Show wallet's recovery phrase (requires password)" from the README. The wallet management screen would have:

  • Rename wallet
  • Show recovery phrase (password-gated)
  • Delete wallet (password-gated, with warning)
  • For HD wallets: delete individual addresses

All three actions from the README TODO list (delete wallet, delete address, show recovery phrase) could live on this one screen.

## Proposed options for wallet deletion ### Option A: Delete from Home screen (inline) - Long-press or swipe on a wallet row in the Home wallet list → reveals "Delete" button - Tap → confirmation dialog: "Delete wallet [name]? This removes the wallet from this device. Your funds are safe if you have your recovery phrase." - Requires password to confirm (prevents accidental deletion) - Pros: discoverable, fast. Cons: long-press/swipe gestures aren't visible affordances (violates clickable affordance rule) ### Option B: Delete from Settings - Add wallet list to Settings (currently only has "+ Add wallet") - Each wallet row has a `[delete]` text link - Tap → same confirmation dialog + password - Pros: consistent with existing Settings pattern, visible affordance. Cons: extra navigation ### Option C: Delete from wallet `[info]` context - On the Home screen, each wallet already has address-level `[info]` buttons. Add a wallet-level `[info]` or `[manage]` link next to the wallet name - Tapping it shows wallet details: name (editable), recovery phrase (password-gated), `[Delete wallet]` link - Confirmation dialog + password - Pros: groups all wallet management together, follows existing info pattern. Cons: new screen ### My recommendation: Option C It fits the existing UI patterns best — the `[info]` button is already established for addresses, extending it to wallets is natural. It also gives a home for the TODO item "Show wallet's recovery phrase (requires password)" from the README. The wallet management screen would have: - Rename wallet - Show recovery phrase (password-gated) - Delete wallet (password-gated, with warning) - For HD wallets: delete individual addresses All three actions from the README TODO list (delete wallet, delete address, show recovery phrase) could live on this one screen.
sneak closed this issue 2026-02-27 23:04:45 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/AutistMask#13
No description provided.