Skip to content
bitcoinsv.design

Search the guide

Search the guide

Send fees

Why a BSV wallet has no fee picker, what to show instead, and the one place a fee still deserves a line.

A BSV wallet has almost no fee interface. The useful content here is what to leave out, and the few places a fee still deserves a line.

Why

Blocks have no fixed protocol size limit and miners raise capacity as demand grows, so users are not bidding against each other for space. A fee is a fraction of a penny, set by a rate per byte rather than by an auction, so it depends on the size of the transaction, not on the amount sent.

The practical consequence: the fee is not a decision. Nobody needs to trade speed against cost, because there is no queue to jump.

What to remove

Common wallet componentIn this wallet
A fee picker: slow, medium, fastNone
A fee estimate, with a confidence rangeNone
A "fees are high right now" warningNone
Fee bumping, replace-by-fee, child-pays-for-parentNone. There is no replace-by-fee to bump with
A stuck-transaction state and its recovery flowNone
A threshold, and hiding outputs below itNone. A one-satoshi is spendable

Don't

Keep a fee picker because the design system already has one. It asks the user a question with no wrong answer, which teaches them that your questions are decorative.

What to show instead

Usually nothing. A fee of a fraction of a penny on a payment of a few pounds is noise, and a line of noise on a review screen takes attention that belongs on the recipient. The review screen shows the total the user pays; the fee belongs in the payment's details.

Do

Leave the fee off the review screen entirely for ordinary payments, and put it in the transaction details afterwards for anyone who looks.

Do

In the payment's details, show the fee in local currency as one small line: "Fee: less than 1p". A figure in satoshis invites arithmetic nobody wanted to do.

Absorbing it

Because the amount is so small, a product can pay it.

Recommendation

Pay the fee on the user's behalf where the product can, and do not mention it. We suggest a shop absorb it as a cost of sale and an app fold it into its price. It is a real option because the fee is smaller than any price the user will see.

Where a fee still deserves a line

Three cases, all of them about scale rather than size:

Many small payments. An app paying per request makes hundreds of payments, and the fees add up into something a user should be able to see. Show the total in the allowance summary, not per payment. See Permissions and allowances.

Business accounting. A merchant needs the figure for their books, even though it is tiny. It belongs in an export, not in the till interface.

Sending to an exchange. The exchange's own deposit or withdrawal fees are usually far larger than the network fee, and the user will blame whichever one your screen showed them. Name whose fee it is.

What users should understand

One sentence, if anything:

Sending costs a fraction of a penny, however much you send.

That is the whole of it, and the easiest thing to say in this product.

Don't

Explain the fee model. A user who wanted to know about satoshis per byte will find it in the transaction details.

Written from: ts-stack fee model docs, ARC documentation.

Checklist

The rules on this page, in a form you can work through.

5 rules