<p><code>-testactivationheight</code> is defined <a href="https://github.com/bitcoin/bitcoin/blob/master/src/chainparamsbase.cpp#L23" rel="nofollow noreferrer">here</a>.</p>
<pre><code>argsman.AddArg(&quot;-testactivationheight=name@height.&quot;, &quot;Set the activation height of 'name' (segwit, bip34, dersig, cltv, csv). (regtest-only)&quot;, ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST);
</code></pre>
<p><code>-vbparams</code> is defined <a href="https://github.com/bitcoin/bitcoin/blob/master/src/chainparamsbase.cpp#L25" rel="nofollow noreferrer">here</a>.</p>
<pre><code>argsman.AddArg(&quot;-vbparams=deployment:start:end[:min_activation_height]&quot;, &quot;Use given start/end times and min_activation_height for specified version bits deployment (regtest-only)&quot;, ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);
</code></pre>
<p><code>-testactivationheight</code> is setting the name (segwit, bip34, dersig, cltv, csv) of the soft fork and the activation height (on regtest) for each soft fork. It is not testing the deployment of a particular soft fork (miner signaling etc, how a
soft fork can get activated), just the block heights at which soft forks activate.</p>
<p><code>-vbparams</code> is setting the start, end and min_activation_height of a deployment (on regtest). It is testing the deployment of a particular soft fork rather than just setting the activation height for various soft forks.</p>

CC BY-SA 4.0
2022-03-26T12:13:15.663Z
2022-03-26T12:40:31.727Z
2022-03-26T12:40:31.727Z
Michael Folkson
<p>Taproot test use the argument <code>-vbparams</code> , but other test like SegwWit use -<code>testactivationheight</code>, what is the use of each one and the difference for using one or the other?</p>
<pre><code>class WalletTaprootTest(BitcoinTestFramework):
    &quot;&quot;&quot;Test generation and spending of P2TR address outputs.&quot;&quot;&quot;

    def set_test_params(self):
        self.num_nodes = 3
        self.setup_clean_chain = True
        self.extra_args = [['-keypool=100'], ['-keypool=100'], [&quot;-vbparams=taproot:1:1&quot;]]
        self.supports_cli = False
</code></pre>
<pre><code>class SegWitTest(BitcoinTestFramework):
    def set_test_params(self):
        self.setup_clean_chain = True
        self.num_nodes = 3
        # This test tests SegWit both pre and post-activation, so use the normal BIP9 activation.
        self.extra_args = [
            [
                &quot;-acceptnonstdtxn=1&quot;,
                &quot;-rpcserialversion=0&quot;,
                &quot;-testactivationheight=segwit@432&quot;,
                &quot;-addresstype=legacy&quot;,
            ],
</code></pre>

<bitcoin.conf><activation-mechanism><functional-test>
What is -vbparams argument and what its the difference with -testactivationheight on Bitcoin functional tests?
Bitcoin_1o1
# What is -vbparams argument and what its the difference with -testactivationheight on Bitcoin functional tests?

(Asked by: username_0 on 2022-03-26)

Taproot test use the argument `-vbparams` , but other test like SegwWit use -`testactivationheight`, what is the use of each one and the difference for using one or the other?

```
class WalletTaprootTest(BitcoinTestFramework):
    """Test generation and spending of P2TR address outputs."""

    def set_test_params(self):
        self.num_nodes = 3
        self.setup_clean_chain = True
        self.extra_args = [['-keypool=100'], ['-keypool=100'], ["-vbparams=taproot:1:1"]]
        self.supports_cli = False

```

```
class SegWitTest(BitcoinTestFramework):
    def set_test_params(self):
        self.setup_clean_chain = True
        self.num_nodes = 3
        # This test tests SegWit both pre and post-activation, so use the normal BIP9 activation.
        self.extra_args = [
            [
                "-acceptnonstdtxn=1",
                "-rpcserialversion=0",
                "-testactivationheight=segwit@432",
                "-addresstype=legacy",
            ],

```

**Tags:** bitcoin.conf, activation-mechanism, functional-test


---

## 1 answers

### Answer by username_1 on 2022-03-26. Score: 2 | Accepted answer

`-testactivationheight` is defined [here](https://github.com/bitcoin/bitcoin/blob/master/src/chainparamsbase.cpp#L23).

```
argsman.AddArg("-testactivationheight=name@height.", "Set the activation height of 'name' (segwit, bip34, dersig, cltv, csv). (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST);

```

`-vbparams` is defined [here](https://github.com/bitcoin/bitcoin/blob/master/src/chainparamsbase.cpp#L25).

```
argsman.AddArg("-vbparams=deployment:start:end[:min_activation_height]", "Use given start/end times and min_activation_height for specified version bits deployment (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);

```

`-testactivationheight` is setting the name (segwit, bip34, dersig, cltv, csv) of the soft fork and the activation height (on regtest) for each soft fork. It is not testing the deployment of a particular soft fork (miner signaling etc, how a
soft fork can get activated), just the block heights at which soft forks activate.

`-vbparams` is setting the start, end and min\_activation\_height of a deployment (on regtest). It is testing the deployment of a particular soft fork rather than just setting the activation height for various soft forks.


---

