<p><code>minRelayTxFee</code> was used for a few different notions of minimum feerates until these concepts got separated out in <a href="https://github.com/bitcoin/bitcoin/pull/9380" rel="nofollow noreferrer">2017</a>. Although all these variables end in <em>…Fee</em>, they actually refer to a fee for one kilovbyte of transaction data, so they should be thought of as <em>feerates</em>.</p>
<ul>
<li><code>minRelayTxFee</code> (default: 1 ṩ/vB) sets the minimum feerate required by the node to accept transactions to its mempool (and relay them)</li>
<li><code>blockMinTxFee</code> (default: 1 ṩ/vB) sets the minimum feerate for transactions to be selected into the block template</li>
<li><code>incrementalRelayFee</code> (default: 1 ṩ/vB) sets the feerate a replacement transaction has to at least pay <em>on-top</em> of paying at least as much fees absolutely as all transactions it replaces</li>
<li><code>dustRelayFee</code> (default: 3 ṩ/vB) sets the feerate used to calculate a node’s <a href="https://bitcoin.stackexchange.com/a/41082/5406">dust limits</a></li>
</ul>
<p>Arguably, both <code>minRelayTxFee</code> and <code>incrementalRelayFee</code> enforce a cost for relaying transaction data on the network, except the former only applies to transactions replacing nothing, while the latter only applies to transactions replacing other transactions, so it has been questioned whether they should have been split at all. However, having separate values allows a user for example to set a minimum feerate for unconfirmed transactions they keep track of in the first place, while allowing replacements to follow the same rules as every other node.</p>

CC BY-SA 4.0
2023-12-05T14:18:30.617Z
2023-12-05T14:32:01.730Z
2023-12-05T14:32:01.730Z
Murch
<p>In an answer to my previous <a href="https://bitcoin.stackexchange.com/a/120774/145749">question</a>, <em>Murch</em> used the term: <strong>incremental relay feerate</strong>.</p>
<p>On first, I thought that's the same as <strong>minimum relay fee</strong> (<code>minRelayTxFee</code>) - minimum feerate (sat/VB) that transaction must have in order to be included in mempool and relayed. My conclusion was based on the fact that <a href="https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki" rel="nofollow noreferrer">BIP125</a> is using that term. Cite:</p>
<blockquote>
<p>The replacement transaction must also pay for its own bandwidth at or
above the rate set by the node's minimum relay fee setting.</p>
</blockquote>
<p>However, the Bitcoin Core documentation related to RBF uses the term <strong>incremental relay feerate</strong> for the same condition. Cite:</p>
<blockquote>
<p>The additional fees (difference between absolute fee paid by the
replacement transaction and the sum paid by the original transactions)
pays for the replacement transaction's bandwidth at or above the rate
set by the node's incremental relay feerate.</p>
</blockquote>
<p>Same documentation also mentioned:</p>
<blockquote>
<p>The incremental relay feerate used to calculate the required
additional fees is distinct from <code>-minrelaytxfee</code>...</p>
</blockquote>
<p>So, my question is what is the <strong>incremental relay feerate</strong> and how is that tied (if it is) with the minimum relay fee?</p>
<p>Thanks!</p>

<bitcoin-core-development><terminology><replace-by-fee>
What is incremental relay feerate?
LeaBit
# What is incremental relay feerate?

(Asked by: username_0 on 2023-12-05)

In an answer to my previous [question](https://bitcoin.stackexchange.com/a/120774/145749), *username_1* used the term: **incremental relay feerate**.

On first, I thought that's the same as **minimum relay fee** (`minRelayTxFee`) - minimum feerate (sat/VB) that transaction must have in order to be included in mempool and relayed. My conclusion was based on the fact that [BIP125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki) is using that term. Cite:

> The replacement transaction must also pay for its own bandwidth at or
> above the rate set by the node's minimum relay fee setting.

However, the Bitcoin Core documentation related to RBF uses the term **incremental relay feerate** for the same condition. Cite:

> The additional fees (difference between absolute fee paid by the
> replacement transaction and the sum paid by the original transactions)
> pays for the replacement transaction's bandwidth at or above the rate
> set by the node's incremental relay feerate.

Same documentation also mentioned:

> The incremental relay feerate used to calculate the required
> additional fees is distinct from `-minrelaytxfee`...

So, my question is what is the **incremental relay feerate** and how is that tied (if it is) with the minimum relay fee?

Thanks!

**Tags:** bitcoin-core-development, terminology, replace-by-fee


---

## 1 answers

### Answer by username_1 on 2023-12-05. Score: 2 | Accepted answer

`minRelayTxFee` was used for a few different notions of minimum feerates until these concepts got separated out in [2017](https://github.com/bitcoin/bitcoin/pull/9380). Although all these variables end in *…Fee*, they actually refer to a fee for one kilovbyte of transaction data, so they should be thought of as *feerates*.

* `minRelayTxFee` (default: 1 ṩ/vB) sets the minimum feerate required by the node to accept transactions to its mempool (and relay them)
* `blockMinTxFee` (default: 1 ṩ/vB) sets the minimum feerate for transactions to be selected into the block template
* `incrementalRelayFee` (default: 1 ṩ/vB) sets the feerate a replacement transaction has to at least pay *on-top* of paying at least as much fees absolutely as all transactions it replaces
* `dustRelayFee` (default: 3 ṩ/vB) sets the feerate used to calculate a node’s [dust limits](https://bitcoin.stackexchange.com/a/41082/5406)

Arguably, both `minRelayTxFee` and `incrementalRelayFee` enforce a cost for relaying transaction data on the network, except the former only applies to transactions replacing nothing, while the latter only applies to transactions replacing other transactions, so it has been questioned whether they should have been split at all. However, having separate values allows a user for example to set a minimum feerate for unconfirmed transactions they keep track of in the first place, while allowing replacements to follow the same rules as every other node.


---

