5

I see this question time and time again, but I only find answers for calculating the fees in creating raw transactions.

I am using sendtoaddress and would like to be able to calculate the tx fee needed prior to calling the api. I would like to avoid creating a raw transaction if reasonably possible.

how might i do this using the json-rpc api? (i'm using bitcoind)

Jon B
  • 207
  • 3
  • 9

2 Answers2

5

If you call

bitcoin-cli settxfee <fee>

just before call

bitcoin-cli sendtoaddress "1LipeR1AjHL6gwE7WQECW4a2H4tuqm768N" <value>

Then the fee will be <fee>.

Important note: make sure in the graphic mode (when you start with bitcoin-qt command) the "custom" is selected, otherwise your command settxfee will be ignored (see image bellow).

Also, I'm not sure if this option is selected by default, and I am not sure as well if it you can set "custom" via API. If someone knows that, please edit this answer and fix it.

Note 2: I'm not sure if this is strictly necessary, maybe not. I didn't make many tests. The test I made was starting bitcoin with bitcoin-qt -txindex -server & and then letting the interface open. If "recommended" is selected the command settxfee will be ignored. I didn't tested e.g. what if let the "recommended" option selected, close the interface and then start with bitcoind -txindex for example.

enter image description here

Felipe
  • 1,738
  • 3
  • 19
  • 33
  • But what if you want to use the floating recommend fee and simply get a rough approximation of it before sending the coins? The question is about calculating the fee, not setting it. I can't believe using raw transactions is the only way to solve it. – Martin Braun Dec 03 '21 at 17:32
0

A bit late but you might take a look at https://github.com/bitcoin/bitcoin/pull/5503 It's not merged (yet) but it would give you the opportunity to get the fee before sending the transaction (with 4 steps: createrawtransaction, fundrawtransaction [get fee], signrawtransaction, sendrawtransaction)

Jonas Schnelli
  • 6,052
  • 1
  • 21
  • 34