What is needed to generate a bech32 address? So I wrote a vanity address generator in c# with the NBitcoin lib. When I use the private key used to generate the address and input it in Mycelium it outputs a different address. This does not occur when working with legacy addresses, so I'm guessing I need something more than just a private key in order to generate a segwit address. Was it a redeem script or something? How can I make sure I get the same address in a wallet when I input the privkey?
var bitcoinPrivateKey = new BitcoinSecret(&quot;cPof7e5g6xfgB6AZrc6XVTVwA4efLJurh9kVxa6FRChbr8Jyqaon&quot;, Network.TestNet);

            var legacy_address = bitcoinPrivateKey.GetAddress(ScriptPubKeyType.Legacy);
            var segwitp2sh_address = bitcoinPrivateKey.GetAddress(ScriptPubKeyType.SegwitP2SH);
            var nativesegwit_address = bitcoinPrivateKey.GetAddress(ScriptPubKeyType.Segwit);

            Console.WriteLine(&quot;Private Key :&quot; + bitcoinPrivateKey);
            Console.WriteLine(&quot;Legacy Address :&quot; + legacy_address);
            Console.WriteLine(&quot;Segwit-P2SH Address :&quot; + segwitp2sh_address);
            Console.WriteLine(&quot;Bech32 Address :&quot; + nativesegwit_address);


Mycelium testnet bitcoin wallet: