Skip to content

What is the minRelayTxFee?

What is the minRelayTxFee? What is it used for, what's the default value and how does the value change?

Question Link



Answer

Answered by: Murch

The minRelayTxFee specifies a feerate acting as a lower bound for a node's mempool. A node will not admit unconfirmed transactions below that feerate to its mempool and thus will not relay them to its peers. The minRelayTxFee is a configuration setting and can be specified by each node operator independently. The value only impacts unconfirmed transactions, transactions included in a block are processed even when they do not meet the minRelayTxFee. Note that contrary to its name's implication, the minRelayTxFee is not an absolute fee, but a feerate.

The current default value for the minRelayTxFee in Bitcoin Core is 1000 satoshi/kB (= 1 sat/B). A node operator may specify a different value via the startup parameter -minrelaytxfee=<amt> or the configuration parameter minrelaytxfee=<amt> which takes an <amt> in [BTC/kB].

The minRelayTxFee also serves as the basis to calculate the minimum cost increments for replacement transactions per BIP-125 (Opt-in RBF). It was also previously used to calculate the dust limit which has since been decoupled into a separate feerate called DUST_RELAY_TX_FEE with a default value of 3000 sat/kvB (H/T Darius).

minRelayTxFee should not be confused with:

  • minTxFee, which is a wallet configuration setting that sets a lower bound when creating new transactions
  • mempoolminfee, which is an independent lower bound for mempool acceptance that dynamically increases when the mempool limit is exceeded

Bitcoin Core 0.13.0 introduced a new, optional feefilter P2P message, which will tell neighboring nodes not to send transactions below the filter's feerate. Older nodes do not communicate their minimum feerate, but rather just drop incoming transactions that doesn't pass it.

You may retrieve the current values for your node by calling the getmempoolinfo RPC.