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)

2 Answers 2


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

  • 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. Dec 3, 2021 at 17:32

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)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.