# Charge per use with BSV micropayments: every rule

Every do and don't the guide states on the pages behind this skill. The costly ones come first; the full list follows, grouped by page. Quote them; do not paraphrase them.

46 rules: 4 that can cost money, 13 that can cost trust, 29 standard.

## Start here

- **DO** _(Costs money)_ Name the article being bought on the wallet's payment sheet, so the reader can see that the thing she tapped is the thing she is paying for.
  <https://www.bitcoinsv.design/guide/rule/dc76c094e7/>
- **DON'T** _(Costs money)_ Charge for an article the reader has already bought, whether she returns to it on the same day or a month later.
  <https://www.bitcoinsv.design/guide/rule/aa6089c9cb/>
- **DO** _(Costs money)_ Stop charging the moment the reader taps Stop, before any confirmation or animation, and say how much she spent today.
  <https://www.bitcoinsv.design/guide/rule/2981555d83/>
- **DON'T** _(Costs money)_ Show Try again on an article while the wallet reports its payment as still being sent.
  <https://www.bitcoinsv.design/guide/rule/08826b6288/>
- **DO** _(Costs trust)_ Show the running total against the allowance wherever the spending is happening, not only in a settings screen.
  <https://www.bitcoinsv.design/guide/rule/758fae5e4a/>
- **DO** _(Costs trust)_ Put a stop control next to that total. One action, no confirmation, effective immediately.
  <https://www.bitcoinsv.design/guide/rule/780419e009/>
- **DON'T** _(Costs trust)_ Renew an allowance that has ended without asking the user again. A limit that starts again each month within a live grant is normal, provided the reset date is shown beside what is left.
  <https://www.bitcoinsv.design/guide/rule/4399f2f0dc/>
- **DO** _(Costs trust)_ Make stopping obvious and instantaneous, and confirm that it stopped. "Stopped. You spent 340 sats." closes the loop.
  <https://www.bitcoinsv.design/guide/rule/0b795249b1/>
- **DO** _(Costs trust)_ Offer a ceiling before starting, not only an allowance. "Stop at 5,000 sats" is a different and more reassuring promise.
  <https://www.bitcoinsv.design/guide/rule/c46631d9e7/>
- **DO** _(Costs trust)_ Fail towards not charging. A user who got something free will forgive you; one charged twice will not.
  <https://www.bitcoinsv.design/guide/rule/41ccf96223/>
- **DO** _(Costs trust)_ Name the price, in satoshis and local currency, on the same panel as the connect button. The reader should know what the first tap costs before the wallet opens.
  <https://www.bitcoinsv.design/guide/rule/49340e32ba/>
- **DO** _(Costs trust)_ Ask for a key made for this site only at connection, and nothing else: no identity key, no Pass, no spending grant.
  <https://www.bitcoinsv.design/guide/rule/d0c330a5ba/>
- **DO** _(Costs trust)_ Give the allowance an end date in the request itself, and show that date on the wallet's sheet. When it ends, ask again and show what the last one was spent on.
  <https://www.bitcoinsv.design/guide/rule/7bf718fae1/>
- **DO** _(Costs trust)_ Say on the stopped state that the allowance still exists in the wallet, and where to remove it.
  <https://www.bitcoinsv.design/guide/rule/3cbfd2bd9e/>
- **DON'T** _(Costs trust)_ Describe a refund in the app as a payment being reversed or cancelled. Say "We've sent you 20 sats back".
  <https://www.bitcoinsv.design/guide/rule/fc4fae7aaf/>
- **DO** _(Costs trust)_ After a revocation, keep every article the reader already paid for readable once she connects the same wallet again, with no new payment.
  <https://www.bitcoinsv.design/guide/rule/db9aa2e469/>
- **DO** _(Costs trust)_ Always show the user what they're paying for, and the running total against their allowance. Small, frequent payments add up, and users should never be surprised by them.
  <https://www.bitcoinsv.design/guide/rule/2cc79b8eeb/>

## Every rule, by page

### Charging per use

https://www.bitcoinsv.design/guide/patterns/charging-per-use/

- **DO** _(Costs trust)_ Show the running total against the allowance wherever the spending is happening, not only in a settings screen.
  <https://www.bitcoinsv.design/guide/rule/758fae5e4a/>
- **DO** _(Costs trust)_ Put a stop control next to that total. One action, no confirmation, effective immediately.
  <https://www.bitcoinsv.design/guide/rule/780419e009/>
- **DON'T** _(Costs trust)_ Renew an allowance that has ended without asking the user again. A limit that starts again each month within a live grant is normal, provided the reset date is shown beside what is left.
  <https://www.bitcoinsv.design/guide/rule/4399f2f0dc/>
- **DO** Put the cost on the thing: "about 1p (20 sats)" on the article link, "5 sats per request" on the endpoint.
  <https://www.bitcoinsv.design/guide/rule/2b56360d79/>
- **DO** Lead with local currency for anything a person chooses to buy, and with satoshis for anything software decides, with the other figure beside it. "About 1p" means something to a reader; "20 sats" means something to a developer.
  <https://www.bitcoinsv.design/guide/rule/953f6e5714/>
- **DON'T** Round a per-use price up to something tidy because the real number looks odd. The real number is the product's best argument.
  <https://www.bitcoinsv.design/guide/rule/c438b741e1/>
- **DO** Group by what the user was doing, not by transaction. "The Satoshi Vision, 14 articles, about 14p (280 sats)" is one row they understand.
  <https://www.bitcoinsv.design/guide/rule/9f5e2cbddf/>
- **DO** Let that row open into the individual payments, for the person who wants them and the accountant who needs them.
  <https://www.bitcoinsv.design/guide/rule/c9e64e1560/>
- **DO** Lead with the period total. "About 24p today" answers the question they actually have.
  <https://www.bitcoinsv.design/guide/rule/c3d6ec0f9a/>
- **DON'T** Show a notification per payment. The first one is informative, the fortieth is why the feature gets switched off.
  <https://www.bitcoinsv.design/guide/rule/e84ab93e7c/>
- **DO** Show the rate and the elapsed cost together, and update at a pace a person can read. A figure changing ten times a second is not information.
  <https://www.bitcoinsv.design/guide/rule/fbbf1fb8c9/>
- **DO** _(Costs trust)_ Make stopping obvious and instantaneous, and confirm that it stopped. "Stopped. You spent 340 sats." closes the loop.
  <https://www.bitcoinsv.design/guide/rule/0b795249b1/>
- **DO** _(Costs trust)_ Offer a ceiling before starting, not only an allowance. "Stop at 5,000 sats" is a different and more reassuring promise.
  <https://www.bitcoinsv.design/guide/rule/c46631d9e7/>
- **DO** Decide what happens when one payment in a hundred fails: retry, skip, or stop. Then tell the user which, once, rather than reporting each one.
  <https://www.bitcoinsv.design/guide/rule/e1b5b1016a/>
- **DO** _(Costs trust)_ Fail towards not charging. A user who got something free will forgive you; one charged twice will not.
  <https://www.bitcoinsv.design/guide/rule/41ccf96223/>

### First visit and connecting

https://www.bitcoinsv.design/guide/pay-per-use-reader/first-visit/

- **DO** Mark free articles as plainly as paid ones on the front page, so the absence of a price is never mistaken for a missing label.
  <https://www.bitcoinsv.design/guide/rule/6021bc871a/>
- **DON'T** Put a connect prompt, a sign-in button or a wallet logo on the front page. Nothing there costs money, so nothing there needs a wallet.
  <https://www.bitcoinsv.design/guide/rule/d271628011/>
- **DO** Show enough of a paid article before the price for the reader to judge it: at least the headline, the standfirst and the opening paragraphs.
  <https://www.bitcoinsv.design/guide/rule/bfc87fd11b/>
- **DO** _(Costs trust)_ Name the price, in satoshis and local currency, on the same panel as the connect button. The reader should know what the first tap costs before the wallet opens.
  <https://www.bitcoinsv.design/guide/rule/49340e32ba/>
- **DO** _(Costs trust)_ Ask for a key made for this site only at connection, and nothing else: no identity key, no Pass, no spending grant.
  <https://www.bitcoinsv.design/guide/rule/d0c330a5ba/>
- **DON'T** Treat "Not now" as an error. Keep the reader on the article they chose, with the free paragraphs still showing.
  <https://www.bitcoinsv.design/guide/rule/4addaa532c/>
- **DO** _(Costs money)_ Name the article being bought on the wallet's payment sheet, so the reader can see that the thing she tapped is the thing she is paying for.
  <https://www.bitcoinsv.design/guide/rule/dc76c094e7/>
- **DO** Open the rest of the article in place the moment the wallet reports the payment accepted, at the paragraph where the free part ended.
  <https://www.bitcoinsv.design/guide/rule/b1c3558127/>
- **DON'T** Show the allowance offer before the reader has finished her first paid article, or on any free article.
  <https://www.bitcoinsv.design/guide/rule/a6aa7562f5/>
- **DO** Treat "No thanks" as final for the visit. The reader goes on paying per article with a wallet prompt each time, and the card does not return until her next visit.
  <https://www.bitcoinsv.design/guide/rule/a65df43c2e/>
- **DO** _(Costs trust)_ Give the allowance an end date in the request itself, and show that date on the wallet's sheet. When it ends, ask again and show what the last one was spent on.
  <https://www.bitcoinsv.design/guide/rule/7bf718fae1/>

### Reading and the meter

https://www.bitcoinsv.design/guide/pay-per-use-reader/reading/

- **DO** Show what the article just cost and what is left of today's allowance on the article itself, above the headline, every time the allowance pays for one.
  <https://www.bitcoinsv.design/guide/rule/ab4b564bd6/>
- **DO** Mark articles the reader has already bought as read, without a price, so she never wonders whether opening one again will charge her.
  <https://www.bitcoinsv.design/guide/rule/3d6603a269/>
- **DON'T** _(Costs money)_ Charge for an article the reader has already bought, whether she returns to it on the same day or a month later.
  <https://www.bitcoinsv.design/guide/rule/aa6089c9cb/>
- **DO** List what today's spending bought by article title, with the total first in local currency and the remaining allowance beneath it.
  <https://www.bitcoinsv.design/guide/rule/152e39fc89/>
- **DO** _(Costs money)_ Stop charging the moment the reader taps Stop, before any confirmation or animation, and say how much she spent today.
  <https://www.bitcoinsv.design/guide/rule/2981555d83/>
- **DO** _(Costs trust)_ Say on the stopped state that the allowance still exists in the wallet, and where to remove it.
  <https://www.bitcoinsv.design/guide/rule/3cbfd2bd9e/>
- **DO** Explain a used-up allowance on the article the reader was trying to open, with the free paragraphs still showing, and offer a one-time payment for that article.
  <https://www.bitcoinsv.design/guide/rule/56fe52035b/>
- **DON'T** Raise the limit for the reader, or suggest a larger figure as the default. A new limit is a new request that she types or chooses.
  <https://www.bitcoinsv.design/guide/rule/f4449e6daa/>
- **DON'T** _(Costs money)_ Show Try again on an article while the wallet reports its payment as still being sent.
  <https://www.bitcoinsv.design/guide/rule/08826b6288/>

### Receipts, refunds and leaving

https://www.bitcoinsv.design/guide/pay-per-use-reader/receipts-and-leaving/

- **DO** Describe each payment request with the article's title, short enough to read in one line of a wallet's activity list.
  <https://www.bitcoinsv.design/guide/rule/214f7fdb04/>
- **DO** Let the reader reach every article she has paid for from its receipt, so a receipt doubles as her reading history.
  <https://www.bitcoinsv.design/guide/rule/c2d019f36d/>
- **DO** Put a way to report a faulty article next to each receipt line, not on a separate support page.
  <https://www.bitcoinsv.design/guide/rule/1e0ace6556/>
- **DO** Name the article in the refund's note, so the incoming payment in the reader's wallet explains itself without a visit to the app.
  <https://www.bitcoinsv.design/guide/rule/9b7facd737/>
- **DON'T** _(Costs trust)_ Describe a refund in the app as a payment being reversed or cancelled. Say "We've sent you 20 sats back".
  <https://www.bitcoinsv.design/guide/rule/fc4fae7aaf/>
- **DO** Show the price-change notice to every reader with an active allowance before the new price applies, with the date it takes effect.
  <https://www.bitcoinsv.design/guide/rule/2e3dc44697/>
- **DO** _(Costs trust)_ After a revocation, keep every article the reader already paid for readable once she connects the same wallet again, with no new payment.
  <https://www.bitcoinsv.design/guide/rule/db9aa2e469/>
- **DON'T** Ask for the allowance again in the same panel that tells the reader she is no longer connected. Reconnecting and granting an allowance are two decisions, made at two moments.
  <https://www.bitcoinsv.design/guide/rule/c9932e2e3f/>

### Payments

https://www.bitcoinsv.design/guide/how-it-works/payments/

- **DO** Show "Paid" or "Received" as soon as the recipient's wallet replies "accepted". Do not wait for the payment to be mined.
  <https://www.bitcoinsv.design/guide/rule/e3a51dbe82/>
- **DO** Don't show derived payment addresses in the main interface. Show the person, handle or app the payment relates to. Keep raw transaction details in an advanced view.
  <https://www.bitcoinsv.design/guide/rule/b81a18d899/>
- **DO** _(Costs trust)_ Always show the user what they're paying for, and the running total against their allowance. Small, frequent payments add up, and users should never be surprised by them.
  <https://www.bitcoinsv.design/guide/rule/2cc79b8eeb/>
