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 ...
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 ...
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, ...
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 ...
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 ...
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 ...
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 ...
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 ...
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.
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 ...
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 ...
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 ...
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.
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 ...
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, ...
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 ...
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 ...
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 ...
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,...
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 ...
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 ...
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 ...
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 ...
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.
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 ...
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 ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
bip174-psbt × 54bitcoin-core × 15
bitcoinjs × 6
raw-transaction × 5
bitcoin-cli × 5
json-rpc × 4
multi-signature × 4
wallet × 3
bitcoind × 3
electrum × 3
segregated-witness × 3
signature × 3
signrawtransaction × 3
coldstorage × 2
hardware-wallet × 2
taproot × 2
trezor × 2
watch-only × 2
output-script-descriptors × 2
sighash × 2
coldcard × 2
p2tr × 2
transactions × 1
transaction-fees × 1
security × 1