Taproot testnet wallet [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2021-10-15T14:12:23+00:00


Summary:

The email discusses the implementation of Bitcoin's Taproot addresses in bitcoinj and the need for testing against a wallet that can receive to P2TR and spend back. The author shares a transaction they did days ago which creates a P2TR output and provides detailed steps taken for the transaction. They suggest adding test vectors in BIP 86 for TPRV as suggested by Anthony Towns in a previous email.On October 15th, 2021, Anthony Towns posted on the bitcoin-dev forum discussing whether any testnet faucets would accept bech32m addresses directly. Although unsure, he mentioned that the same process works with testnet. It is noted that there are faucets that accept such addresses, including Bitcoin Faucet, but they require the use of a bech32 checksum instead of bech32m.Bitcoin Core users can create a taproot-capable wallet following several steps. Firstly, they need to have or create a descriptor wallet with descriptors=true using the createwallet RPC command. Secondly, they should import a taproot descriptor in the form "tr(KEY)", where KEY can be a tprv.../* or any other supported key expression. Thirdly, they can get a new address with addresstype=bech32m. It is mentioned that this process is currently somewhat cumbersome, especially prior to taproot activating on mainnet.To create a taproot-capable wallet in Bitcoin Core using the master branch, there are five steps involved. First, users should create a descriptor wallet using the command 'bitcoin-cli -signet -named createwallet wallet_name=descwallet descriptors=true load_on_startup=true'. Second, they need to get the associated bip32 tprv private key using 'TPRV=$(bitcoin-cli -rpcwallet=descwallet -signet listdescriptors true | jq '.descriptors | . [].desc' | sed 's/^.*(//;s/[)/]. *//' | uniq | head -n1)'. Note that this step requires an updated version of bitcoin-cli due to PR#21500. Third, users should construct the taproot descriptor per BIP 86 using 'DESC="tr($TPRV/86'/1'/0'/0/*)"' and 'CHK="$(bitcoin-cli -rpcwallet=descwallet -signet getdescriptorinfo "$DESC" | jq -r .checksum)"'. Fourth, import the descriptor using 'bitcoin-cli -rpcwallet=descwallet -signet importdescriptors "[{\"desc\": \"$DESC#$CHK\", \"active\": true, \"timestamp\": \"now\", \"range\": [0,1000], \"next_index\": 1}]"'. Finally, get an address using 'bitcoin-cli -rpcwallet=descwallet -signet getnewaddress '' bech32m'.Andreas Schildbach via bitcoin-dev is trying to finish off bitcoinj's implementation for sending to taproot addresses. They are requesting a testnet wallet that can receive to P2TR and spend back in order to complete this task. Despite their efforts, they have been unable to obtain a taproot address from Bitcoin Core 22.0. Pieter has responded to Andreas' request by providing instructions on how to construct a taproot-capable wallet in Bitcoin Core. This involves having or creating a descriptor wallet with descriptors=true, importing a taproot descriptor (of the form "tr(KEY)") as active descriptor with active=true, where KEY can be a tprv.../* or any other supported key expression, and getting a new address with addresstype=bech32m. Pieter has also provided a taproot address for testing purposes: tb1p84x2ryuyfevgnlpnxt9f39gm7r68gwtvllxqe5w2n5ru00s9aquslzggwq. If testnet coins are sent there, Pieter has requested an email address to return them.The individual working on implementing bitcoinj's sending feature for taproot addresses is requesting a testnet wallet that can receive to P2TR and spend back. They have been unable to obtain a taproot address from Bitcoin Core 22.0 and are seeking assistance. They do not care about the safety of their testnet coins, so there is no need to worry about compromised private keys.


Updated on: 2023-08-02T04:53:55.510803+00:00