Saturday 27 November 2021

[HowTo] Create and use a Taproot wallet on Testnet in Bitcoin Core v22.0


Disclaimer: This guide describes a Windows-10 setup, uses the Testnet network and requires an external tool to generate a BIP32 extended private key \"xprv" / "tprv"). If you know a good way to generate a "tprv" in v22.0, please let me know.)With the activation of Taproot, it is likely a good time to get familiar with the taproot addresses and wallets. Since the surfacing of taproot in the bitcoin-core GUI is still in the early stages, some of this how-to will feel a bit kludgey. Things will get simpler in subsequent releases I'm sure.The basic goal of this walkthrough will be to create a Taproot wallet using the descriptor wallet feature and the bech32m config option. This is in no way "required", it is simply a way to familiarize yourself with the new features released this year in bitcoin core.Here are the general steps. Feel free to skip ahead as needed:[0] TLDR; This got longer than I intendedInstall bitcoin v22Launch in testnetCreate a new descriptor walletUse importdescriptors to make a Taproot descriptorProfitIf that makes perfect sense, your done, if not, read the detailed steps.I. Download Bitcoin-Core v22.0If you are already at version 22.0 or v0.21 you can skip this step. This will layout the steps for Window-10. Obviously you shouldn't trust my links, but I'll provide them anyway. The installer hash should be: 9169989d649937c0f9ebccd3ab088501328aa319fe9e91fc7ea8e8cf0fcccedeDownload Bitcoin-Core version 22.0 Installer \Onion link for UK folks))Download the v22.0 checksum file \Onion link for UK folks))Download the v22.0 checksum signature file \Onion link for UK folks))Verify the installer download \Onion link for UK folks))II. Install Bitcoin-Core v22.0The Authenticode thumbprint on the installer should be: 47cda868c6e7c97b54963041922cfd283c2c961dIf this is an upgrade, close any existing copy of bitcoin in execution.Launch bitcoin-22.0-win64-setup.exe downloaded previouslyOn the installer UAC verification warning click Show more detailsIn the expanded details click Show information about publisher's certificateIn the certificate page, click the Details tabIn the details list, click Thumbprint near the bottomVerify the Thumbprint matches 47cda868c6e7c97b54963041922cfd283c2c961dClose the certificate window and accept the warning to start the installIII. Launch Bitcoin-Core v22.0 on TestnetWe will run and configure on testnet since the coins have no cost. In step #5, you will need to add the following lines to the bitcoin.conf file:test.addresstype=bech32m test.changetype=bech32m On the start menu, search or run "Bitcoin Core (testnet, 64-bit)"Once loaded, select Options from the Settings menuClick Open Configuration File and accept the warningA text editor should open with a blank file called bitcoin.conf.In the bitcoin.conf file, add the two lines mentioned above, save, and close the fileExit, close and and restart "Bitcoin Core (testnet, 64-bit)"If you are stuck downloading testnet blocks, you can still proceed through step IV and step VIV. Generate a testnet tprv to use in Bitcoin Core v22.0You can make a tprv any way you want, this is one of the easier ways I know of. For this section, open a blank text file and copy the following three lines to it, we will edit it as we progress.your_mnemonic: __mnemo__ getdescriptorinfo "tr(__tprv__/86'/1'/0'/0/*)" importdescriptors "[{\"desc\":\"tr(__tprv__/86'/1'/0'/0/*)#__chksum__\",\"active\":true,\"timestamp\":\"now\",\"range\":[0,1000],\"next_index\":1}]" Go to Ian's BIP39 siteChange the "Words" selection from 15 to 12 and click GenerateChange the "Coin" selector to BTC - Bitcoin TestnetIn your text file replace __mnemo__ with the text in "BIP39 Mnemonic"In your text file replace both instances of __tprv__ with the text in "BIP32 Root Key"V. Create a Taproot WalletWe will make one final edit to your text file so keep it open...Back in Bitcoin-Core, pick Create Wallet from the File menuName your wallet descwalletSelect the "Make Blank Wallet" and "Make Descriptor Wallet" checkboxes, then click CreatePick Console from the Window menuAt the top of the console window, set the wallet selector to descwalletFrom your text file copy the completed getdescriptorinfo command (second line) and paste it in the console (hit enter)You'll get an 8 character checksum from the command, use it to replace the __chksum__ tag in your text fileFrom your text file copy the completed importdescriptors command (third line) and paste it in the console (hit enter)If you get a "success": true response, it worked, you can close your console window.For reference, your final importdescriptors command should look something like this, though the __tprv__, and __chksum__ fields will be different, obviously.importdescriptors "[{\"desc\":\"tr(tprv8ZgxMBicQKsPdD3rvZEHuMSXTFGG399p6rMxnqyqFnDuNbMLc7xCfLUryJnLqYUHUiRFJKhDpGXJyz5nVsgkidh65PDC5AVWoNEKA2XLSLf/86'/1'/0'/0/*)#czml648s\",\"active\":true,\"timestamp\":\"now\",\"range\":[0,1000],\"next_index\":1}]" VI. Get some Testnet coins from a faucetYou will need to have completed your testnet block download, so if it is still downloading, go to bed and resume this in the morning. If you don't like sketchy faucet sites, just post a testnet-bech32 or testnet-bech32m address and maybe someone on thread will send you some.From the main Bitcoin-core wallet screen, set the wallet selector (in top right) to descwalletClick the Receive tab on the mail wallet screenMake sure to UNCHECK Generate native segwit (Bech32) addressClick Create new receiving address to get a taproot bech32m address (starts with tb1p)Visit https://bit.ly/3CT8Gih and answer the captcha (hint: the "plus" sign often looks like "x")Use the tb1p address you just generated to receive coins from the faucetConclusionThis was as thorough and simple an explanation as I could manage for using the importdescriptors command to make a Taproot wallet. Ultimately you will likely want to generate some change-addresses and possibly do a keypoolrefill, but if you got this far you can likely figure the rest out. Credit for all of this goes to u/pwuille and bitcoin-dev mailing list for pointing me in the right direction on my previous thread. via /r/Bitcoin https://bit.ly/3D04mOe

No comments :

Post a Comment