Skip to main content

Questions tagged [taproot]

Taproot is a Bitcoin softfork activated in 2021. It introduced a new output type, P2TR (Pay to Taproot), which uses the Schnorr signature scheme and combines a public key with an optional script tree. The public key can additionally be an aggregation of multiple keys, which enables cheaper and more private multisignature transactions.

Filter by
Sorted by
Tagged with
1 vote
1 answer
48 views

Does a OP_CHECKSIGADD and OP_EQUAL script for a threshold signature fail if you provide too many valid signatures in the unlocking script?

For this CHECKSIGADD script for a 2-of-3 multisig: <pk1> OP_CHECKSIG <pk2> OP_CHECKSIGADD <pk3> OP_CHECKSIGADD OP_2 OP_EQUAL What happens if you provide more than the 2 required ...
Michael Folkson's user avatar
3 votes
1 answer
66 views

Help! About how to spend OP_checksigadd Multi-sig

I write a simple taproot-based script in bitcoinjs, like: <pk1> OP_CHECKSIG <pk2> OP_CHECKSIGADD <pk3> OP_CHECKSIGADD OP_2 OP_EQUAL It should be a 3-2 threshold account, that require ...
user152745's user avatar
-1 votes
0 answers
30 views

asking suggestion? [closed]

Hello groups need help i need to exchange btc from taproot but when checking only few exchanges was accepting taproot for received btc from taproot in secureshift you see any one know any exchange ...
Sanket Mishra's user avatar
1 vote
0 answers
21 views

Spending paths for subset of n-of-n multisig

I would like to achieve the following. A group of N people come together and create an n-of-n multisig. Each of them funds this multisig with a custom amount of bitcoin. At some point in the future, ...
Neo's user avatar
  • 53
1 vote
0 answers
30 views

Why is Taproot important to Ordinals? [duplicate]

I've learned SegWit, Taproot, Schnoor and Ordinals recently. I can understand all these terms. But I don't understand why people say Taproot makes Ordinals possible. Taproot is actually the version 1 ...
Yan's user avatar
  • 133
0 votes
0 answers
29 views

P2tr transaction with musig2 rust

I'm trying to build a p2tr that spends a 2-2 musig aggregated address. My process is as follow: Create SecretKey, PublicKey pair from each party Aggregate those 2 public keys Create and publish a ...
Trí Lương's user avatar
1 vote
0 answers
37 views

Is there a public descriptor equivalent for taproot?

Output descriptors allow the use of (extended) public keys in order to create watch-only descriptors that can be used to configure watch only-wallets. I wonder, is there an equivalent for taproot that ...
max's user avatar
  • 255
0 votes
0 answers
16 views

How to spend one or more p2tr inputs in python?

I see that bitcoinlib does not support taproot yet. Is there any good lib out there to spend one or more taproot inputs? I would like to create txs like this: ... "inputs": [ { &...
user80100's user avatar
1 vote
0 answers
71 views

Xverse Wallet. Logs into an account with a different wallet

Such a disaster happened. I created an Xverse wallet on April 20, copied the address and sent Ordinals tokens to it (address - bc1p...). I logged in today, I was kicked out of my wallet and asked to ...
Sergio's user avatar
  • 11
5 votes
1 answer
337 views

What is Tapscript?

What is Tapscript? How is it different from script? Is it the same thing as "Leaf script"? How does it relate to Witness Script, miniscript and any other type of script used in Bitcoin ...
Lee's user avatar
  • 877
0 votes
2 answers
66 views

How do pre-Segwit nodes interpret transactions containing Taproot OP_CHECKSIGADD?

When pre-Segwit nodes encounter blocks with Segwit transactions, they'll see them as "spent anyone can spend" transactions and so can validate them and move on to the next block. However, ...
Lee's user avatar
  • 877
1 vote
1 answer
31 views

What did the opcode 0xba do prior to creation of OP_CHECKSIGADD?

From BIP0342: The opcode 186 (0xba) is named as OP_CHECKSIGADD. What did 0xba do prior to this?
Lee's user avatar
  • 877
1 vote
0 answers
35 views

How can I sign custom tapscript leaf using bitcoind `walletprocesspsbt` rpc endpoint?

I have taproot output which can be spend through 3 different script paths. In general all of those script paths are some kind of multisig. In my wallet I have key which is part of those multi-sigs. ...
Konrad Staniec's user avatar
1 vote
1 answer
158 views

How is tapscript different than P2PKH using opcodes from a developer perspective?

I'm going to use ordinals as an example because they illustrate my question the most effectively. My understanding is that ordinals are created by writing opcodes into the transaction just like you ...
ChristianOConnor's user avatar
0 votes
1 answer
87 views

How can taproot transactions manage to store so much data?

I don't quite understand how ordinals are able to store so much data on chain. I know about the ordinals envelope. OP_FALSE OP_IF OP_PUSH "ord" OP_PUSH 1 OP_PUSH "text/plain;...
ChristianOConnor's user avatar
1 vote
1 answer
63 views

spending P2TR script path output using python bitcoinutils library

I am currently trying to spend a P2TR output using one of the scripts used to create the address. Below is the python code I tried to construct raw transaction in order to spend the UTXO. The address ...
paranoid's user avatar
4 votes
1 answer
385 views

Why does BIP-340 use secp256k1?

If the entire Taproot/Schnorr soft-fork was going to implement an entirely new signing scheme anyway that was completely independent from the previous ECDSA scheme, why did it use secp256k1? Couldn't ...
fiatjaf's user avatar
  • 631
0 votes
1 answer
78 views

Computing HASH160 of a Taproot X-only 32 byte Public Key

I know that Taproot does not use pubkey hashes, but I want to compute a HASH160 of a 32 byte Taproot X-only public key anyway. The rationale is to compare it to an existing 20 byte HASH160 from a ...
Alec Matusis's user avatar
2 votes
1 answer
43 views

Question about MAST tree in book "mastering bitcoin"

On page 174, 3th edition, book "mastering bitcoin", what does the following statement means? thanks "we could also have four commitments for the same cost." Do the four commitments ...
fa william's user avatar
1 vote
0 answers
104 views

Issue with constructing a correct Schnorr Signature for a Taproot transaction

I'm experimenting with creating and sending Taproot transactions programmatically and encountered an issue with the Schnorr signature. I'm trying to send simple transaction with one V1_P2TR input and ...
Skwern's user avatar
  • 13
2 votes
1 answer
116 views

Which private key is used in Taproot transactions?

The transaction only has one input, where its scriptPubKey is --> Op_1 Q , where Q is the tweaked public key. Let p = private key, P = Public key, q = p + tweak, Q = tweaked Public key To create ...
J S's user avatar
  • 35
3 votes
0 answers
52 views

Why hasn't Graftroot been part of the covenant soft fork discussion thus far? What are the downsides to this proposal?

I haven't heard much about Graftroot in the context of the covenant/vault discussion since around the time the Taproot soft fork was being finalized. The idea was initially posted on the bitcoin-dev ...
Michael Folkson's user avatar
0 votes
0 answers
50 views

NFT/data insertion transactions in bitcoin (Taproot)

I want to find transactions in Bitcoin which are of data insertion type. The new taproot and scripting feature in Bitcoin allows for NFT data insertion. I am wondering how I can detect these types of ...
Motiv's user avatar
  • 109
2 votes
3 answers
298 views

Where can I see Taproot scripts?

I am trying to look more into Taproot scripts and was wondering if someone could help me on how to access them? I was thinking of using a blockchain explorer that decodes Taproot scripts but I can't ...
mark's user avatar
  • 35
0 votes
1 answer
658 views

Accidently sent BTC to taproot wallet on Phantom. Wondering how i can get it back to Segwit so i can buy ordinals with it

Hey Guys i sent BTC to my Phantom Taproot account, but now i realize i should have sent it to my segwit acccount. Im wondering how i can transfer it over and if its even possible on Phantom. It was 0....
john's user avatar
  • 1
0 votes
0 answers
50 views

How are NFTs stored in the bitcoin blockchain? [duplicate]

I'm new to bitcoin and am looking into how NFTs are stored into the blockchain. I saw somewhere that Taproot Script-Path Spend Scripts is where NFT data is stored but I'm not sure how. Can someone ...
mark's user avatar
  • 35
1 vote
1 answer
410 views

Unable to get Taproot address using bitcoinlib

I tried several ways to get a Taproot address from a Private Key with bitcoinlib, but I kept getting different addresses than those I get with Taproot wallets such as Unisat and OKX Wallet. Then, ...
Tprt's user avatar
  • 11
0 votes
0 answers
59 views

Export a taproot multisig wallet

I have created a wallet, added a descriptors to make it multisig with tr(KI, multi_a(2,pub1,pub2,pub3) command. Now, I want to import this to some UI but since the wallet doesn't have a private key I ...
Shadow's user avatar
  • 9
0 votes
1 answer
67 views

Signmessage with Raspiblitz

For an absolute beginner, how do I sign the new adress formats (taproot e.g.)? In Ride the Lightning (RTL) there is the possiblity to sign messages for lightning. But I need to sign from a specific ...
b.volution's user avatar
3 votes
1 answer
113 views

Is the Taproot script tree commitment quantum safe?

If an attacker in posession of a quantum computer can break the ECDLP, they can of course spend every Taproot output using the key path. However, do they also have the ability to construct a valid ...
Vojtěch Strnad's user avatar
1 vote
1 answer
186 views

non-mandatory-script-verify-flag (Invalid Schnorr signature)

I try to put this into a Psbt: Alice make payment to purchase an amount of BRC-20 from Bob Bob request to inscribe a transfer of BRC-20 by using Burner account Burner inscribe the transfer of BRC-20 ...
LikKee 沥祺 Richie's user avatar
0 votes
0 answers
36 views

Do multiple issuances of a taproot asset, using the same group_key, count conceptually as the same asset, even if they have different asset_ids?

I am trying to understand the minting of Taproot Assets. In particular I want to understand how to mint more of an existing asset, i.e. add to the existing supply of that asset. I am experimenting ...
alexg's user avatar
  • 263
1 vote
1 answer
140 views

Is the signature check performed when the signature is the empty vector?

In this answer Vojtěch Strnad wrote the following: OP_CHECKSIGADD always performs one check per signature, since unused public keys are required to be paired with an empty witness item and are ...
Cosmos's user avatar
  • 309
1 vote
1 answer
127 views

What are the all benefits/advantages of OP_CHECKSIGADD over OP_CHECKMULTISIG?

What are all the benefits of introducing OP_CHECKSIGADD in Taproot instead of OP_CHECKMULTISIG? I assume the first benefit is the following. For example, in pre-taproot approach, if we have 3-of-10 ...
Cosmos's user avatar
  • 309
2 votes
1 answer
78 views

What would happen if we provide witness program different than 32 bytes for SegWit 1?

If the witness program (at the time of writing this question) is greater than 1, it is considered as anyone-can-spend output. Also, if the witness version is 1 and the witness program is 32 bytes, ...
LeaBit's user avatar
  • 980
0 votes
1 answer
111 views

Do we need a taproot commit for multisignatures if there is no script path, but we are using the MuSig2 protocol?

I read in some article for Taproot that if there is no need for a script path spending and a number of participant (multisignature with key aggregation) create together a taproot output key (key for a ...
LeaBit's user avatar
  • 980
1 vote
0 answers
111 views

Bip32 Root Key in Metamask Signature? [closed]

I recently fell victim to an inferno contract that took a significant amount of my ERC-20 coins. I realize that this is a Bitcoin site, but a white hat hacker approached and offered to help, and told ...
rnaka's user avatar
  • 11
0 votes
1 answer
99 views

Enforcing PSBT Signature Rules: Finalizer/Extractor and Deserialization Implementation

Should PSBT finalizers/extractors and deserialization functions enforce the rule that a taproot schnorr signature should only append a SIGHASH_* unless it is SIGHASH_DEFAULT (0), or is it left to the ...
solar's user avatar
  • 25
2 votes
1 answer
84 views

Is it true that we don't care about parity with the key path, but it is not case with the script path? (Taproot)

I am reading materials related to the Taproot (specially, BIP341) and I know that there is two possible ways to spend the output: via key path via script path I also know that the Taproot output ...
LeaBit's user avatar
  • 980
0 votes
1 answer
121 views

What is the leaf version in Taproot and how is it used?

I asked a few questions within this one. They are all related to the leaf version, so I didn't find it necessary to split them into multiple separate questions as they can all be answered in 1/2 a ...
LeaBit's user avatar
  • 980
2 votes
1 answer
156 views

non-mandatory-script-verify-flag (Invalid Schnorr signature) when trying to reveal a TR output

I'm building a Bitcoin wallet, and I'm trying to spend a Taproot output via a script spend path, but I keep running into this "Invalid Schnorr signature" error from my RPC node: { "...
Sherwin Li's user avatar
0 votes
0 answers
359 views

how to spend ordinals/inscriptions?

so, i have some sats with ordinals and brc20 tokens in them. useless. might as well treat them as ordinary btc. question is - how do i spend them? ie send them to a btc address? unisat wallet wont ...
TheCatTehCat's user avatar
0 votes
2 answers
310 views

How to get x-only public key from the private key, and what does the obtained value represent?

In ECDSA, the public key is the result of multiplying the private key (some random 256-bit value) with a generic point (G). So the public key would be one of the points (X,Y) of the elliptic curve ...
LeaBit's user avatar
  • 980
0 votes
2 answers
91 views

Why there duplicated transactions on the blockchain? (with different hashes)

I just found a couple of transactions that looks very similar, they have different hashes, but are exactly equal in everything else: 3d69534a43b4396faac62e84ba6092d539335dd1c6601da626020f69082280c1 (...
eloyesp's user avatar
  • 202
1 vote
1 answer
266 views

How to get signature for tweaked public key in P2TR in case of multiple signature?

EDIT: Can we just tweak the signature with the root MAST as well? As I understand, the public key in scriptPubKey for P2TR is obtained by tweaking (let's call it original public key) and the root of ...
LeaBit's user avatar
  • 980
1 vote
1 answer
349 views

What is the way to create public key in P2TR?

I've started learning Taproot and I'm having trouble understanding some of the general story behind how it works in the context of a public key in scriptPubKey. The segWit v1 (Taproot) scriptPubKey ...
LeaBit's user avatar
  • 980
1 vote
1 answer
276 views

Verifying a zkSNARK on Bitcoin/Hope for a future with OP_MUL

I am trying to write a script that can verify a SNARK, but from what I understand OP_MUL is still disabled in TapScript. Is anyone working on a BIP to provide OP_MUL or OP_MUL64? It seems ...
Carter Feldman's user avatar
0 votes
2 answers
143 views

Example of key-path BIP-0341 signature message computation

Is there an example of key-path BIP-0341 signature message computation, perhaps? Or, could you tell what is incorrect in the example below, please? deriveaddresses "rawtr(...
Greg Tonoski's user avatar
2 votes
1 answer
347 views

"Witness program hash mismatch" code -26 when broadcasting a transaction

I'm trying to broadcast a transaction to my RPC provider: curl https://my-quicknode-rpc-provider/ \ -X POST \ -H "Content-Type: application/json" \ --data '{"method": &...
Sherwin Li's user avatar
3 votes
1 answer
157 views

How many recipients can fit in a single Ark shared output?

It's the only boundary the taproot/MAST limitation of 128 levels of the tree, ie. 2^128?
Marco Argentieri's user avatar

1
2 3 4 5 6