9

TL;DR: Wallets SHOULD allow sending to all bech32m addresses at this point, but wallets MUST NOT request P2TR outputs before the Taproot spending rules are enforced on the network¹. The design of segwit anticipated the lengthy process that is the adoption of optional features. Case in point, segwit activated in August 2017, yet Blockchain.com, a wallet ...


8

An output descriptor (note that output descriptor and wallet descriptor refer to the same thing) is a human readable string that represents an output script (a scriptPubKey) and everything needed in order to solve¹ for that script. Descriptors also have a bech32-like checksum which allows for the descriptor to be given to others with less risk of ...


4

Output script descriptors do not currently support any arbitrary script. However once extended by Miniscript, descriptors will be able to support any script logically. Minscript is an extension of descriptors which allows for arbitrary scripts, within certain parameters. While you cannot specify any arbitrary script, you can use Minscript to create an ...


4

descriptors is a boolean argument, so it should either be true or false. As with all RPCs, the argument is positional by default. So your command would look like bitcoin-cli -signet createwallet "mywallet" false false "" false true You can specify that the arguments be named so you don't have to put the position correctly. In that case, ...


3

For a sender to send to a P2TR address pre activation they must have received that P2TR address from the receiver and so it would be an indirect safeguard to protect the receiver having given out P2TR addresses prematurely. The receiver's funds being vulnerable to being stolen pre activation isn't the sender's direct concern. There are already safeguards in ...


3

Yes. Such descriptors are referred to as ranged descriptors. In a descriptor, keys are provided in the form of a Key expression. Key expressions can be individual keys themselves, or BIP 32 extended keys, followed by derivation information. The derivation information can end with a * to indicate that child keys should be derived. In that case, the descriptor ...


3

There are lots of address types (P2PKH, P2SH, P2WSH etc), some are multisigs, some are BIP32. Descriptors help the wallet software figure out what the address string actually is. If this is abstracted away from the user then the user doesn’t need to know but they are really useful for the wallet software. They let the wallet software figure out how to spend ...


3

This will be mostly possible in the upcoming Bitcoin Core 0.18 release. First you need to understand that the sequence of such paired multisig addresses (with public keys generated from 2 xpubs in lockstep) can be described in the new descriptor language. The syntax is sh(multi(2,XPUB/*,XPUB/*)). The sh indicates P2SH embedding, multi refers to multisig, ...


2

Steps that I followed to do a transaction which creates a P2TR output: Copy XPUB from test vectors mentioned in BIP 86 xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ Convert XPUB (mainnet) to TPUB (testnet) using Bitcoin Extended Public Key Converter ...


2

Because the address you are using is a P2SH-P2WPKH address as you mention (sh (wpkh ())), you get the output "isscript": true, "iswitness": false It is talking only about the top level (P2SH), because it is a P2SH address, regardless of what the script "inside" it encodes. It doesn't "see" the underlying P2WPKH when ...


2

When transacting Bitcoin, especially large amounts, you should verify the amount in Bitcoin terms. So if it was worth 2.25 Bitcoin at the time, verify that with him. That you agree on the amount in terms of bitcoin. You can see the transaction hash or transaction ID in your wallet interface to see how much was sent and where it went to. You can also check ...


2

First create a descriptor wallet with createwallet: bitcoin-cli -named createwallet wallet_name=mywallet descriptors=true This will make a descriptor wallet named mywallet. Then import a descriptor into that wallet using `importdescriptors: bitcoin-cli -rpcwallet=mywallet importdescriptors '[{"desc": "wpkh([00000000/84h/0h/0h]xpub6DP....xyz/0/...


2

There is no reason to ever use this construction—other options would be able to achieve equivalent permissions much more weight efficiently. However, disallowing inefficient descriptors would complicate the implementation. I surmise that the example was only given as a sample of what would be possible, but one should not infer a recommendation to use it from ...


2

Descriptors with a private key (or xprv) in it are equivalent to their version with the public key instead, apart from also conveying the private key information. For what purpose? The descriptor field only reports the descriptor itself (i.e., without private key material). The checksum field reports the checksum for your input. This is also explained in ...


2

It is currently not possible to export private keys from a descriptor wallet. There is currently an open pull request which allows the listdescriptors command to optionally return descriptors with private keys. This will be the method by which private keys can be exported from a descriptor wallet. Note that only the master private key used in a descriptor ...


2

The migration tool will go through all the keys in the legacy wallet and create descriptors for them. This requires considering everything that IsMine matches on. From the Bitcoin Core release notes: IsMine refers to the function used to determine whether a script belongs to the wallet. This is used to determine whether an output belongs to the wallet. ...


1

This is a draft answer and may contain inaccuracies. I will update if it does. It is worth noting that it is looking likely that Taproot will be active on mainnet in November 2021 but until then Taproot rules will not be enforced on the network. Any attempted Taproot spends before then will be treated as anyone-can-spend by the network. Bitcoin Core v0.21.1 ...


1

getnewaddress on non-descriptor wallets does not work for non-single key things. Ad descriptor wallets have not yet been released, you are not using a descriptor wallet. When you use importmulti to import a descriptor, it does not actually import the descriptor. Rather it uses the descriptor to construct a bunch of keys and scripts and imports them into the ...


1

Descriptors in Bitcoin Core can have a suffixed checksum. sh(multi(2, [3c60330a/1]03061b79f20d49790c15bdaf15ec8db6d75275f62f04a56eaac31f5c2db48736fc, [d54e4481/1]0396bd8d30f0128dcc67e143cf46efd686bf9e4dc8587facc07f81bb248d1b0209, [1e132a06/1]03c77aa842edc8af76b76f5c29a1133b45b78c8c26a170090184e500232abd15a4)) #3qpdv9la You pass the checksum 3qpdv9la. ...


Only top voted, non community-wiki answers of a minimum length are eligible