5

In sendmany there is a conf_target parameter with the comment "Confirmation target (in blocks)". Does that mean that Bitcoin Core implicitly calculates and sets a smart fee for a given block target?

If so what is the priorities if I:

  1. Set TX fee explicitly before
  2. Set conf_target == 1
  3. Set estimate_mode == UNSET

What will be the resulting fee rate on the transaction in each case?

2 Answers 2

2

Does that mean that Bitcoin Core implicitly calculates and sets a smart fee for a given block target?

Yes that's how fee estimation work (basically statistics are made out of the transactions you relay given their feerate and how many blocks it takes for them to be confirmed).

If so what is the priorities if I:

  1. Set TX fee explicitly before
  2. Set conf_target == 1
  3. Set estimate_mode == UNSET

Assuming you mean calling settxfee by "Set TX fee explicitly before".

The command parameters take precedence over globally-defined parameter, so the conf_target parameter will be used for fee calculation.

Setting estimate_mode to UNSET will make the decision of using conservative estimates depending on either you signal for RBF (use ECONOMICAL) or not (use CONSERVATIVE).

0

Judging by the source code, smartfee will be used (conf_target)

https://github.com/bitcoin/bitcoin/blob/6e9eda556717ad651a6a691db8d6dc68556285cb/src/wallet/fees.cpp#L38

/* User control of how to calculate fee uses the following parameter precedence:
   1. coin_control.m_feerate
   2. coin_control.m_confirm_target
   3. m_pay_tx_fee (user-set member variable of wallet)
   4. m_confirm_target (user-set member variable of wallet)
   The first parameter that is set is used.
*/

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.