Questions tagged [bip174-psbt]

Use this tag for questions related to BIP 174 - Partially Signed Bitcoin Transactions (PSBT).

Filter by
Sorted by
Tagged with
0 votes
1 answer
27 views

TX decode failed Separator is missing at the end of an output map: iostream error

import requests url = "http://127.0.0.1:18332/wallet/w3" headers = { 'Authorization': 'Basic dXNlcjpwYXNz', 'Content-Type': 'text/plain' } def combinetx(): payload = "{\&...
0 votes
1 answer
44 views

testnet output address has no matching Script?

Here is my code to create a PSBT on the testnet: const bitcoin = require("bitcoinjs-lib") const privKey1 = "..." const address1 = "mkVPHMR5euGTcvpFj6tfyVERstDdH4RtQs" ...
1 vote
1 answer
54 views

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

Say I'm creating a multi-sig wallet with a friend to bet on the election. Can my deposit to the multi-sig wallet be dependent on the my friends deposit to the wallet? Say I'm Alice, and my friend is ...
4 votes
1 answer
72 views

Which wallets or libraries besides core support (or will support) P2TR descriptors?

I want to help test the WIP Bitcoin Dev Kit "Add support for Taproot and tr() descriptors", PR #593 against other implementations besides Bitcoin Core (already testing again Core 22.0). In ...
3 votes
1 answer
142 views

Taproot signing with PSBT: How to determine signing method?

As far as I can tell there are three ways you can produce a valid Schnorr signature in a Taproot environment: For a p2tr output that uses a BIP-0086 commitment (key spend, sign with internal key, ...
  • 228
1 vote
1 answer
74 views

Is it possible to broadcast psbt in bitcoin core?

Is it possible to broadcast psbt in bitcoin core without converting to raw transaction?
2 votes
1 answer
61 views

Why is Electrum able to generate .psbt from the address only but BitcoinCore requires a Public Key/Descriptor?

When generating a .psbt it suffices to merely import the address (hashed Public Key) in Electrum while in BitcoinCore (for the same address) I also would have to import either a corresponding Public ...
  • 152
1 vote
1 answer
95 views

Create a .psbt using the BitcoinCore client

I am trying to create a .psbt using BitcoinCore on mainnet. The use-case is that I want to be able to export the unsigned transaction, import it into my cold-storage wallet (using BitcoinCore) and ...
  • 152
1 vote
1 answer
62 views

Handling 'Has SIGHASH_SINGLE' flag for psbt2 (BIP370)

BIP370 specifies a bit flag (bit 2) in PSBT_GLOBAL_TX_MODIFIABLE field, that "indicates whether the transaction has a SIGHASH_SINGLE signature who's input and output pairing must be preserved&...
1 vote
1 answer
39 views

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

In a PSBT, version 0 or 2, how would a signer know what keypair to use for an input or an output if the keypair isn't derived through bip32? For inputs, assuming p2wpkh for simplicity, I suppose one ...
1 vote
0 answers
72 views

Add inputs and outputs to a transaction signed with sighash SINGLE | ANYONECANPAY

I created a transaction with one input and one output, and signed it using sighash SINGLE | ANYONECANPAY. Can I add further inputs and outputs with another wallet using bitcoin-cli?
1 vote
0 answers
294 views

Sign psbt with software wallet. [electrum & others]

So I've been looking for days to sign a PSBT transaction but upon to all my research i failed or i just haven't searched in the right place. The PSBT content is generated from a payment gateway that I'...
  • 11
3 votes
0 answers
45 views

What are the malleability threat vectors when passing PSBTs to other actors?

If I am passing a PSBT (Partially Signed Bitcoin Transaction) between multiple people, and I pass on my signature for my UTXOs for given inputs, can someone take advantage of malleability and cheat me ...
  • 1,399
4 votes
0 answers
80 views

Sign lightning channel creation PSBT with Golang

I'm trying to open a channel on regtest with LND v0.13.0-beta.rc3 using their PSBT workflow to allow for remote signing. I've done the following steps: I create a regtest wallet using the BIP39 ...
0 votes
1 answer
86 views

Bitcoin core trying to sign a transaction loaded from psbt file, but getting "could not sign any more inputs" error

I am trying to sign a transaction loaded from psbt file, but I'm getting could not sign any more inputs error. I did it successfully on the first try. However I cannot do it any more now. I changed my ...
  • 227
0 votes
0 answers
49 views

RPC to sign PSBT with private key

What is the PSBT related RPC which works similar to signrawtransactionwithkey ?
user avatar
5 votes
1 answer
890 views

What does PSBT stand for?

What is PSBT? What does it stand for? bitcoin-qt has menu items "Load PSBT from file…" and "Load PSBT from clipboard…"; the dialog box says the file format is "Partially ...
  • 4,357
1 vote
1 answer
107 views

Sign PSBT for 2 of 3 multisig

Creating an unsigned PSBT: { "jsonrpc": "1.0", "id": "curltest", "method": "walletcreatefundedpsbt", "params": [ [ { "txid": "...
1 vote
1 answer
236 views

WitnessScript vs. Script Witness

In BIP 174/PSBT, there is a PSBT Input key-value pair called "PSBT_IN_WITNESS_SCRIPT" (0x05) and another called "PSBT_IN_FINAL_SCRIPTWITNESS" (0x08). What is the difference between ...
2 votes
1 answer
646 views

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

Bitcoin Core's CLI has a converttopsbt command used to convert from raw transaction to PSBT transaction but how is it possible to convert from PSBT transaction to raw transaction using Bitcoin Core (...
  • 23
6 votes
1 answer
861 views

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

The 10x Security Bitcoin Guide says that the only two hardware wallets support BIP174 (partially signed Bitcoin transactions, or PSBT). However, this Reddit thread says that "You can use PSBT ...
0 votes
1 answer
368 views

Can we sign a psbt raw tx having multiple inputs created from BTC node with bitcoinjs lib?

Due to secruity reasons, unavailablity of private keys on my end and as per project requirements I need to build back end apis where I will provide a PSBT raw transaction hex (having multiple inputs) ...
1 vote
1 answer
51 views

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

I'm currently working on PSBT and I try to understand all the part of the original implementation. Dealing with base64 PSBT encoding: it seems that we convert the buffer from a base 8 to a base 6 ...
1 vote
0 answers
85 views

How can I use PSBT in a JavaScript project?

I am trying to use PSBT in a Bitcoin project. The idea is to generate keys and sign transactions client-side. I am already familiar with bitcoinjs-lib but I find the API rather complicated. It would ...
1 vote
1 answer
1k views

Create unsigned tx (PSBT) in a watch-only wallet using bitcoin core, sign it in electrum and broadcast using bitcoin core

What are the steps that we can follow to create an unsigned tx for watch-only cold storage address using bitcoin core? How can we sign the transaction and broadcast it later?
user avatar
1 vote
2 answers
714 views

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

UPDATE: The issue is resolved and I have mentioned the steps in Create unsigned tx (PSBT) in a watch-only wallet using bitcoin core, sign it in electrum and broadcast using bitcoin core Below are the ...
user avatar
2 votes
2 answers
201 views

Problem making multisig PSBT on walletcreatefundedpsbt

I'm fighting with PSBT to do a 2: 2 multisig with bitcoin-cli on testnet. Those are the steps I follow: Create a multisig with bitcoin-cli createmultisig 2 "["pubkey1", "pubkey2&...
  • 31
2 votes
1 answer
137 views

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

I created a transaction using createrawtransaction spending a UTXO that I own the keys to and then converted it to PSBT using converttopsbt, then I used walletprocesspsbt and finalizepsbt. After ...
0 votes
1 answer
43 views

Why does BIP174 take Xpubs but no addresses?

I have a few questions on BIP 174: XPUBs: I am looking at BIP174, and I see that I can define a global XPub. How is this used. How does an updater, signer, or finalizer know what this XPub is for? ...
6 votes
1 answer
198 views

Segwit & Offline Signing

Yesterday Trezor released details of a segwit-related hardware wallet vulnerability. The writeup claims that providing full previous transactions to the hardware wallet prevents the exploit. My ...
1 vote
1 answer
603 views

How to sign a PSBT transaction?

I have a PSBT (in Base64 format) which I need to sign using GoLang, but I can't figure out which steps I need to do that. I found this but I'm not really confident with Bitcoin and Python, so I didn't ...
2 votes
1 answer
250 views

Why did the core developers choose base64 for PSBT encoding?

Why does bitcoind use baase64 to encode PSBT's? Just out of curiosity.
  • 392
0 votes
0 answers
38 views

Fund single output in PSBT with bitcoind

I would like to create a PSBT with a single output (P2WSH with a given/predefined amount) in an app and give that to the user. The user should then be able to fund this PSBT with the help of bitcoind ...
  • 228
1 vote
0 answers
86 views

PSBT signing safety checks

I'm working on a multisignature cold storage wallet that adds several features to the Glacier Protocol wallet, namely PSBT support through bitcoin-cli's RPC interface. The wallet intentionally uses a ...
3 votes
1 answer
103 views

How to properly combine PSBTs for CoinJoin?

I am trying to learn the workflow for manual Coinjoins using PSBTs. I was following Andy Chow's suggestions in another thread here Where he suggests: 1. Createpsbt (he suggests using ...
2 votes
1 answer
292 views

Why was the bip32 fingerprint used for bip174 psbt?

The fingerprint is widely used across the bip174 psbt specification. This is done to speedup parsing for a signer such that he can observe whether the master fingerprint for the public key for that ...
3 votes
3 answers
1k views

How do you switch your bitcoinjs integrationfrom TransactionBuilder to transactions-psbt.js?

the code below works: const btc = require('bitcoinjs-lib'); var tx = new btc.TransactionBuilder(net); inputs.forEach(o => tx.addInput(o.txId, o.vout)); outputs.forEach(o => tx.addOutput(o....
  • 167
3 votes
1 answer
253 views

How do I calculate transaction fee for call to createpsbt()?

When my user invokes my app, he passes as an input parameter the desired value of the TX fee in satoshis per byte. I create a PSBT by calling createpsbt(). I exert complete control over the ...
  • 125
1 vote
1 answer
666 views

Is it possible to use Electrum to create a multisig wallet with a trezor and an airgapped coldcard?

I set up a 2-of-3 multisig using Electrum, a Trezor, and a Coldcard. During testing, I ran into issues using the Coldcard to sign. My approach: (On Electrum) File -> New/Restore -> Multi-signature ...
  • 185
3 votes
0 answers
275 views

Is it possible to use Bitcoin-core for multisig? Can it handle change addresses?

I have tried to import three xpub in a watch-only wallet as keypool with importmulti and a multisig output descriptor and to fill the first address with some BTCs. When I try to spend the newly ...
1 vote
1 answer
804 views

Cannot sign txn with change address using bitcoinjs-lib psbt

I am having a difficult time figuring out how to sign a spend from a change address. I get Error: cannot sign for this input with the key <value>. The initial transaction works fine, where I ...
  • 133
0 votes
0 answers
123 views

How could PSBT deal with data capacity limit of QR code?

QR code has very limited data capacity. (According to Wikipedia) one single QR code can only carry <3KB of binary data. It's not rare for a PSBT to hit this 3KB limit, especially for ones which ...
2 votes
1 answer
115 views

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

I'm attempting to create a PSBT using RPC: bitcoin-cli createpsbt [[{"txid": "1d76879500aecafde541770b5d44ccec5955b4c1a455fae446bf1df7b5ea43e9", "vout": 0}, {"txid": "...
0 votes
1 answer
564 views

Why do I get: Error: <address> has no matching Script

The example code for psbt.addOutput() with address '1KRMKfeZcmosxALVYESdPNez1AP1mEtywp' works as expected. But if I change this to an testnet address I get this error: ' has no matching script'. I ...
  • 1
0 votes
1 answer
105 views

Correct way to use joinpsbt for manual coinjoin?

I am developing a feature in my app for "manual coinjoins" which follows this as inspiration: https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Manual_CoinJoin_Workflow I am not an ...
  • 392
0 votes
0 answers
79 views

analyzepsbt says next role is "updater", but nothing is "missing"

I'm trying to spend a 2/2 P2WSH input. I don't understand how the "next" field can be "updater" if the "missing" field is empty: $ bitcoin-cli -testnet analyzepsbt cHNidP8BAH0CAAAAAXz0qBDXO+...
3 votes
1 answer
202 views

`walletcreatefundedpsbt` with unconfirmed inputs

I would like to create a psbt using walletcreatefundedpsbt spending unconfirmed ouptputs. Is this possible? When I call that RPC command with 0 confirmed balance but with sufficient unconfirmed ...
1 vote
1 answer
101 views

From unsigned to psbt transaction

Recently, I happened to see in a codebase something like the following snippet to convert a standard transaction into a psbt format: txHex = "...
  • 41
3 votes
1 answer
219 views

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

In the bitcoin core doc is explicitly said that conversion from hex to psbt are only allowed for unsigned transactions, or, at most, passing a signed one with the permitsigdata param set to true, but ...
  • 41
0 votes
2 answers
127 views

How to create the data parameter for a PSBT?

I am sure this is a dumb question but if using: bitcoin-cli walletcreatefundedpsbt "[{\"txid\":\"myid\",\"vout\":0}]" "[{\"data\":\"00010203\"}]" How do you create the data parameter? Where does it ...
  • 392