Coinbase have started allowing merchants to set discounts for purchasing with Bitcoin. Seeing an individual discount is not very motivating as they tend to be small. Seeing them stack up over time can be more motivating because it feels like free money. Many businesses exploit this effect with loyalty points, etc. Bitcoin should do this too - show the user how much they're saving by using Bitcoin instead of credit cards.

I suggested to Charlie Lee (who pushed this through at Coinbase) and Stephen Pair the following minor BIP 70 extension:


message PaymentDetails {
    // Size in satoshis of any discount provided by the merchant ONLY
    // because the user chose to pay using Bitcoin or other similar 
    // digital currency. Other kinds of discounts, loyalty bonuses and 
    // so on should not be recorded here, rather they could be mentioned
    // in the memo field. This field exists so wallets can show the user
    // a running total of how much money they have saved by avoiding
    // credit cards and bank payments; the goal is to encourage people to
    // use Bitcoin. Putting other kinds of discounts here would make the
    // running total calculated meaningless; so don't do it!
    optional uint64 currency_usage_discount_size = 8;
}

Wallets would then be able to persist this data to disk and compete on cool visualisations for how much money you saved over time.

We haven't formalised how to extend BIP 70 yet, that's my fault. We should do that. In the meantime, what do people think of this proposal?