zcash / zips

Zcash Improvement Proposals
https://zips.z.cash
MIT License
272 stars 156 forks source link

ZIP request: UX standard for specifying where fees come from. #307

Open nathan-at-least opened 4 years ago

nathan-at-least commented 4 years ago

Every time I ever use any cryptocurrency wallet, I am never quite sure which amount or balance the miner's fee will come out of. Let's fix that in the Zcash ecosystem with a ZIP that specifies a standardized usability behavior for all conforming wallets.

My Preference:

To get the ball rolling, in my opinion, when a user requests that an amount X of ZEC is to be transferred to a recipient address, then the associated transaction(s) should result in precisely X ZEC arriving at the recipient address. This implies that any fees come from the sender's balance in addition to all requested ZEC transfers.

To clarify with an example:

Note: I tried to write this to account for wallets that might do fancy things like issue multiple transactions to meet a user's request for privacy or performance reasons, or any other reason. I think that basically boils down to focusing on a "transaction plan" to fulfill the user's request on the Zcash ledger over time. Is that general enough, while still obviously applicable to most present day wallets that have a very simplistic planning behavior?

Requests for Feedback:

Requests for Help:

It's likely I won't have time within the next several months to flesh out this ZIP. Is anyone else available to chip in? I can probably pop in on occasion to do reviews / edits or help in other ways.

defuse commented 4 years ago

A related problem I've had: When I'm trying to send all my ZEC somewhere, I copy-paste the same z_sendmany command I normally use for sending ZEC, and I usually screw up by subtracting 0.01 or 0.001 instead of 0.0001.

I really like the idea of having UX standard ZIPs!

adityapk00 commented 4 years ago

This makes sense to me, and is the current behaviour of Zecwallet. The fees are always paid by the sender, and the amount requested/shown in the UI is what is sent to the destination, with the additional ZEC 0.0001 coming from the sender.

daira commented 4 years ago

I support the proposed sender-pays-fee standard.