11 votes
Accepted

What are output descriptors?

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 ...
  • 63.3k
9 votes
Accepted

XPRIV/XPUB type for P2TR

There is no ypub/zpub similar thing for Taproot. The recommendation is to use xpriv/xpub along with some extra information indicating that the script to create is Taproot, (e.g. with a tr() descriptor)...
  • 63.3k
9 votes
Accepted

How can I create P2TR addresses with Bitcoin Core 22.0?

This functionality in the Bitcoin Core wallet has deliberately not been merged pre activation to prevent users from easily generating and giving out Taproot addresses prior to the Taproot rules being ...
9 votes
Accepted

Should the Bitcoin Core wallet (or any wallet) prevent users from sending funds to a Taproot address pre activation?

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 ...
  • 65.4k
5 votes

What are output descriptors?

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 ...
4 votes
Accepted

How do I create a descriptor wallet?

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 "...
  • 63.3k
4 votes
Accepted

Output Descriptor for an Arbitrary Script

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 ...
  • 63.3k
4 votes
Accepted

How do I get the private key of an address in descriptor wallets? How to dumpprivkey?

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 ...
  • 63.3k
4 votes

How many addresses can be generated from a ranged descriptor?

The range is determined by the context, or the caller. As far as the descriptor is concerned, there is no limit (apart from the inherent BIP32 limit of 231 keys); it defines a (practically) infinite ...
4 votes

Why isn't it possible to add an OP_RETURN (or some arbitrary script) inside a taproot script path with a descriptor?

It's not clear to me why one would want to commit to an OP_RETURN inside of a P2TR output construction, let alone inside of a descriptor. I feel like there might be a misunderstanding here. Using the ...
  • 65.4k
3 votes
Accepted

mainnet wallet will refuse to dump privkeys

As the error message says, the type of wallet you are using does not support the dumpprivkey command. You are using a descriptor wallet, and individual private keys cannot be exported from the wallet. ...
  • 63.3k
3 votes
Accepted

Can output descriptors be used to encode any Miniscript expression?

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 ...
  • 63.3k
3 votes

Would there ever be a reason to use a P2SH-P2WSH-P2PKH descriptor?

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 ...
  • 65.4k
3 votes
Accepted

What wallet support for Taproot will be included in Bitcoin Core v22.0?

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 ...
3 votes

Should the Bitcoin Core wallet (or any wallet) prevent users from sending funds to a Taproot address pre activation?

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 ...
3 votes

How to create descriptor watch-only wallet with bitcoin-cli in Bitcoin Core 0.21?

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 ...
  • 63.3k
3 votes
Accepted

Create multisignature wallet from xpub keys in bitcoin core

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 ...
3 votes
Accepted

How can a private key be imported to a descriptor wallet?

The migration tool has not been implemented yet, and it is not for manually importing keys. Rather it takes an existing wallet and migrates everything in that wallet. As the error message says, ...
  • 63.3k
3 votes
Accepted

Why isn't it possible to add an OP_RETURN (or some arbitrary script) inside a taproot script path with a descriptor?

The answer is twofold. First, the Bitcoin Core descriptors are in the process of being extended with Miniscript. In the upcoming version (24.0), Miniscript will only be supported in Segwit version 0 ...
3 votes
Accepted

How to represent a taproot output with more than 2 scriptleaves as a descriptor?

If you want a Merkle tree with script paths S1 and S2 on the second level of the Merkle tree and script path S3 on the first level of the Merkle tree the descriptor notation is: tr(KEY,{{S1,S2},S3}) ...
2 votes
Accepted

How will the migration tool from a Bitcoin Core legacy wallet to a descriptor wallet work?

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: ...
2 votes
Accepted

What is the link between address and use of the UTXO?

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 ...
  • 11.5k
2 votes

Please help out I send 109k to my client he was able to receive $50,000 please help

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 ...
2 votes
Accepted

`getdescriptorinfo` for private key

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 ...
2 votes

What is a descriptor in "generatetodescriptor"?

If it were a label then the parameter would be named label. Descriptor refers to output script descriptors which are described in this document as well as BIPs 380, 381, 382, 383, 384, 385, and 386,
  • 63.3k
2 votes
Accepted

Remove descriptor from a Bitcoin Core wallet

Bitcoin Core does not have any descriptor or key deletion functions because users may use them to accidentally delete the data that they need in order to spend their Bitcoin. The recommended way is to ...
  • 63.3k
2 votes
Accepted

Layout of new SQLite descriptor wallets in v0.21 and v22.0?

An extended public key contains the chaincode, so it is not stored separately. So the tpubs that you have found will contain the chaincode. The private keys are not encrypted, and unencrypted private ...
  • 63.3k
2 votes

How many addresses can be generated from a ranged descriptor?

It is possible to generate as many descriptors as child of a BIP32 extended public key. That is, 2^31 of the same kind (hardened or unhardened). 1000 is just the default gap limit of the Bitcoin Core ...
2 votes
Accepted

What's not standard in these descriptors?

The "musig" descriptor function has not been standardized. These descriptors also don't seem to contain valid key expressions (which need to be hex pubkeys, hex x-only pubkeys, xpubs, xprvs, ...

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