9 votes
Accepted

Expected use model for PSBT

It is important to note that with this process, you will want to use a wallet that does not have private keys. Otherwise, you could accidentally be sending Bitcoin to an address that is in the online ...
user avatar
  • 62.5k
6 votes
Accepted

What is the difference between PSBT support in Coldcard and Trezor?

The Coldcard handles PSBT directly and natively. A PSBT can given to the device by writing it to a microSD card and inserting the card into the device. It will be able to load the PSBT and process it ...
user avatar
  • 62.5k
5 votes
Accepted

What does PSBT stand for?

It stands for "Partially Signed Bitcoin Transaction". Bitcoin Core's documentation describes it as: PSBT is an interchange format for Bitcoin transactions that are not fully signed yet, ...
user avatar
  • 4,327
4 votes

Signing a bitcoin transaction OFFLINE fails

signrawtransactionwithwallet uses the wallet for two purposes: Finding the private keys necessary to sign with (which you dealt with by importing) Finding the transaction outputs that are being spent ...
user avatar
4 votes

Segwit & Offline Signing

Answered on Twitter The hash of the provided prevtx must match the prevtx hash given in the input. The attacker is unable to construct a fake prevtx that hashes to a predefined value. The prevtx ...
user avatar
4 votes
Accepted

Why was the bip32 fingerprint used for bip174 psbt?

Why was the fingerprint chosen for psbt instead of the full hash? Collisions aren't that rare for just 4 bytes of data and adding mitigations in the psbt transaction parsing for such a case seems ...
user avatar
  • 62.5k
4 votes
Accepted

How to convert PSBT transaction (base64) to raw/serialized (hex) transaction?

Yes, once the PSBT is finalized you can extract a fully-signed raw transaction from it (using the finalizepsbt RPC). As your PSBT does not have signatures yet, there is no point in constructing an ...
user avatar
3 votes

Problem making multisig PSBT on walletcreatefundedpsbt

Create a multisig with bitcoin-cli createmultisig 2 "["pubkey1", "pubkey2"]" Here is your problem. createmultisig is a utility function that only computes the multisig ...
user avatar
3 votes
Accepted

`createpsbt` RPC call doesn't provide PSBT inputs & outputs

It's not supposed to. createpsbt does not have access to the wallet so it cannot fill in any input or output information. If you want those to be filled in, you can use walletcreatefundedpsbt.
user avatar
  • 62.5k
3 votes
Accepted

Why did the core developers choose base64 for PSBT encoding?

Since PSBTs can be fairly large, I wanted to use an encoding that compressed better than hex and was already in use and implemented by many clients. Base64 was already in use by other clients as ...
user avatar
  • 62.5k
3 votes
Accepted

What is the exact difference between combinepsbt and joinpsbts

combinepsbt takes multiple PSBTs that have different input data and merges them. The base transaction must be exactly the same, i.e. the same inputs are consumed and the same outputs are created. The ...
user avatar
  • 62.5k
3 votes
Accepted

PSBT (BIP-174, Partially Signed Bitcoin Transaction) Ordering of keys

There is no mandatory ordering. If you assume your parser is correct, then it is fine to compare the objects themselves. However, to be sure everything is correct, I would suggest that you compare the ...
user avatar
  • 62.5k
3 votes

Is it possible to broadcast psbt in bitcoin core?

No, it is not possible without using finalizepsbt first to get the raw transaction. This is intentional as PSBTs will primarily be incomplete and thus cannot be broadcast.
user avatar
  • 62.5k
2 votes

Why is not possibile to convert a signed transaction into psbt?

Given just a signed transaction, it is difficult to extract all of the data in the scriptSig or scriptWitness into PSBT's input fields. This requires having the UTXO and then interpreting and ...
user avatar
  • 62.5k
2 votes
Accepted

`walletcreatefundedpsbt` with unconfirmed inputs

Bitcoin Core will never select unconfirmed incoming outputs. These are always considered to be untrusted and not safe for coin selection. This applies to any transactions that Bitcoin Core creates, ...
user avatar
  • 62.5k
2 votes
Accepted

How to sign a PSBT transaction?

As I commented, with the psbt package from btcsuite/btcutil it is possible. I have created an example of how to use it. I don't know if this is the best/most efficient way of doing it. But I hope ...
user avatar
2 votes

Why isn't my PSBT considered complete after walletprocesspsbt and finalizepsbt?

To get more details about the next steps for a PSBT, you can use the analyzepsbt RPC. Additionally, decodepsbt will tell you what information is in a PSBT so you can use that to inspect the PSBT to ...
user avatar
  • 62.5k
2 votes
Accepted

WitnessScript vs. Script Witness

PSBT_IN_WITNESS_SCRIPT is specifically the actually executed script for a P2WSH or P2SH-P2WSH scriptPubKey being spent. It is added by an Updater who knows it. PSBT_IN_FINAL_SCRIPTWITNESS is the ...
user avatar
2 votes
Accepted

Handling 'Has SIGHASH_SINGLE' flag for psbt2 (BIP370)

Figuring out how to handle SIGHASH_SINGLE inputs in PSBTv2 was one of the major problems when designing it. Unfortunately, when this was brought up on the mailing list, there was little to no response,...
user avatar
  • 62.5k
2 votes
Accepted

How would a PSBT signer identify a non-bip32 key?

PSBT_*_BIP32_DERIVATION can and should be used even for keys that are not BIP32 derived. It would simply be the fingerprint of the key itself, followed by a derivation path of 0 length. Every key can ...
user avatar
  • 62.5k
2 votes
Accepted

Create a .psbt using the BitcoinCore client

The "Create Unsigned" button is only available to wallets with private keys disabled (i.e. watch only wallets). So you will need to create a new wallet and choose the "Disable private ...
user avatar
  • 62.5k
2 votes
Accepted

Taproot signing with PSBT: How to determine signing method?

Yes, that looks correct. I suppose you are correct that PSBT_IN_TAP_INTERNAL_KEY is not strictly necessary, but one of the main ideas with PSBTs is to include as much information as possible, and to ...
user avatar
  • 62.5k
2 votes
Accepted

Can a transaction be dependent on another in the same block?

To accomplish this you could create a single transaction that you both supplies inputs to, and that creates an output paying to your multi sig address. In order for the transaction to be valid you ...
user avatar
  • 17.4k
1 vote
Accepted

Sign PSBT for 2 of 3 multisig

The command you want to use is walletprocesspsbt. The only argument you need is the PSBT itself.
user avatar
  • 62.5k
1 vote
Accepted

PSBT encoding : what's the aim of convertBytes function?

PSBT uses Base64 encoding. As every Base64 character has 64 = 26 possibilities, they can store 6 bits of information. The ConvertBits function you link to takes input bytes (which consist of 8 bits ...
user avatar
1 vote

How to create unsigned tx in a watch-only wallet?

Hi it's moral_agent from the reddit post. https://www.reddit.com/r/Bitcoin/comments/ir308h/watch_only_balance_not_spendable_in_bitcoin_core/g5gg33f/ I do not know whether this will help you or not but ...
user avatar
1 vote
Accepted

Why does BIP174 take Xpubs but no addresses?

How does an updater, signer, or finalizer know what this XPub is for? It's not just an xpub. It's an xpub with key origin information. The fingerprint of the master public key and the derivation path ...
user avatar
  • 62.5k
1 vote

How to properly combine PSBTs for CoinJoin?

I am very embarrassed, just circling back to share, the above workflow works perfectly. My problem was I had an incorrect vout value in one of my inputs. Basically I was trying to spend money I don't ...
user avatar

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