Basic send flow
Status: Early design exploration
Overview
From a user’s perspective, the send flow consists of three basic steps:
- Enter the transaction information
- Review & sign the transaction
- Broadcast the transaction to the bitcoin network
Send form
On the send form users specify the details of the transaction. They can do this in a few different ways:
- Fill out the form manually
- Click on an invoice URI link
- Paste an invoice from the clipboard
- Scan a QR code
- Import the invoice from a file. Either via drag and drop or by selecting a file.
The goal is to keep the primary screen simple and focused for regular transactions, and hide less frequently used options in the menu, accessed easily via the ellipsis button.
After all the information has been provided, the screen looks like this.
Clipboard detection
To make it easier for users to fill out the form, the application automatically detects if payment information is saved on user’s clipboard. Specifically, the following types of information are detected:
- A full invoice (URI format)
- A bitcoin address
Additional information
Payment requests can contain additional information that the recipient wants the sender to know, such as a personal message or their name. Check out the receive page for how this works.
If such information is present in the payment request, it is displayed at the top of the form. Note that the additional information will not be included in the transaction data.
Note that when importing a payment request, the address cannot be changed manually.
Validation errors
Review transaction
Before the transaction is broadcast, the user has another chance to review it.
Transaction confirmation
After the transaction has been broadcast to the network, a success message is displayed.
Error handling
There are scenarios in which the broadcasting of a transaction fails.
Replace-By-Fee
If Replace-By-Fee (RBF) is enabled, users can edit a transaction as long as it has not been confirmed by the network yet. There are two main use cases for this feature:
- accelerate the transactions
- cancel the transaction
In all cases, the initial transaction gets replaced with a new transaction that has a higher fee then the initial one. The new transaction will be confirmed first, which in turn invalidates the original transaction.
Accelerate transaction
Based on the fee selected in the initial transaction, users have a differenet timeframe available to edit a transaction. The application displays a countdown with an estimated confirmation time to let users know how much time they have.
When accelerating transactions, users only need select the new fee option or set a custom fee rate. By default, the application chooses the highest fee from the fee option.
Cancel transaction
If a user chooses to cancel a transaction, the application replaces the initial transaction with new transaction that spends the funds back into their own wallet.