Bitcoin-Core-App icon indicating copy to clipboard operation
Bitcoin-Core-App copied to clipboard

Milestone 1.7: Send bitcoin - specs & progress

Open GBKS opened this issue 1 year ago • 5 comments

This is a tracker/discssion issue for the 1.7 milestone (design docs).

Goal is to add send features, including address/contacts and coin selection. Due to the complexity of this screen and user flow, we need to split design & development into smaller parts:

  • MVP
  • First launch
  • Iterative future additions

Requirements by phases: Note that this is more of a guess. We can refine this as we go.

MVP

  • Send form
    • Amount
    • Address
    • Description
    • Fee selection (custom)
  • Transaction preview
  • Single-key signing

Launch

  • Send form
    • Address label (contact)
    • Fee selection (fast, medium, slow)
  • Contacts screen
  • Coin selection
  • Data import
    • URI scheme link click
    • Automatic clipboard detection
    • Manual pasting
    • PSBT import (drag & drop, menu option)
  • View-only wallet note (option to add private key?)
  • Load state

Future additions

  • Batch transactions
  • Input & output visualization
  • Various signing procedures
    • Multi-key
    • External signer
    • PSBT export/import
  • Batch transactions
    • Import file with amounts and addresses (CSV, XLSX...)
    • Pagination and/or table view
  • Include fee in amount
  • Enable replace-by-fee
  • Test transaction option

GBKS avatar Jul 26 '23 12:07 GBKS

#28 is an older issue on this topic form our design discovery in September 2022. Closing that one now in favor of this new one here that is in-line with our milestone schedule.

GBKS avatar Aug 04 '23 18:08 GBKS

Minor thing, we could indicate which characters are wrong when there are typos in addresses (under certain circumstances). Sees this PR.

GBKS avatar Mar 27 '24 10:03 GBKS

Listened to this podcast, and they mentioned how it would be nice to have a feature for automated test transactions. Here's how it would work:

  • You set up a regular transaction, let's say for 1 ₿
  • You toggle the "Do a test transaction" feature on and hit send
  • It sends a small amount (e.g. 0.001 ₿)
  • The transaction for the remaining amount stays at the top of your activity feed as a to-do
  • You check when it's arrived in the destination wallet
  • You go back to the transaction and hit "Send the rest"

Reason for this feature is that there is anxiety around making a mistake setting up the follow-up transaction. That anxiety could be removed by making this simple logic a formal wallet feature. This might lead to more people doing test transactions and therefore fewer losses related to them. Of course, there's the downside of paying fees for two transactions.

This idea is probably more of future addition beyond the MVP, etc. But we could still do a quick exploration on it and document it, for reference, and to ask around if it would be useful.

GBKS avatar Jun 24 '24 08:06 GBKS

Taking another look at this, I think the scoping for the MVP makes sense. But why split up the fee selection into two parts? Is it too much work on the development side?

rabbitholiness avatar Aug 22 '24 16:08 rabbitholiness

Post-MVP we should probably also include child-pays-for-parent

stackingsaunter avatar Sep 04 '24 12:09 stackingsaunter