Send form inputs

Status: Early design exploration

Our application uses inline validation checks in many form fields to minimize errors. These checks fall into two categories: warnings and errors.

Warnings inform users of potential issues but still allow them to proceed. They encourage informed decisions, such as when a user pastes a legacy address type or sets an unusually low or high transaction fee.

Errors block users from proceeding due to invalid or unprocessable inputs, like entering a transaction ID into the address field.

Address

To improve readability and address verification, the address input field formats bitcoin addresses into chunks of four characters each.

List of the address input field in different states.

Inline validation checks include:

  • Sending to Own/Loaded Wallet: Info - Sending to [Wallet name]
  • Legacy Address: Warning - Support for legacy addresses may be deprecated in certain wallets.
  • Taproot Address: Warning - Taproot addresses may not be widely supported across wallets or exchanges.
  • Lightning address: Error – Cannot pay Lightning invoices.
  • Wrong Format: Error – This is not a valid Bitcoin address.
  • Potentially more
Layout blocks of the address input component.

Amount

The transaction amount can be entered in two denominations: bitcoins or Satoshis. Users also have the option to send the full wallet balance.

List of the address input field in different states.

Inline validation checks include:

  • Insufficient Balance: Error – Not enough funds to complete the transaction.
  • Full Send: Warning – You are sending your entire balance.
  • Potentially more
Layout blocks of the amount input component.

Note to self

The note to self is recommended for each transaction. It can have up to 255 characters, as recommended in BIP-329.

List of the note to self input field in different states.
Layout blocks of the note to self input component.

Fee selection

The application offers three standard fee options, each corresponding to a different confirmation speed. In rare cases where all three options have the same fee, the fastest option is selected by default.

Standard fee

List of the fee selection input field in different states.
Layout blocks of the fee selection component.

Custom fees

Users can enable the custom fee option from the send options dropdown. By default, the custom fee field is pre-filled with the value of the default option in the standard fee selection.

List of the custom fee input field in different states.

Special scenarios may arise when setting custom fees. For example, entering a very low or extremely high fee triggers a warning message, guiding users to make informed choices.

List of the custom fee input field in different states.

Inline validation checks include:

  • Low fee: Warning - This is a very low fee. It might result in the transaction never confirming.
  • High fee: Warning - You are overpaying by [x] sat/vbyte
  • Below confirmation limit: Error - The fee is below confirmation limit