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 again it returns the related unsigned tx.

The converttopsbt RPC converts a network serialized transaction to a PSBT.

This should be used only with createrawtransaction and fundrawtransaction createpsbt and walletcreatefundedpsbt should be used for new applications.

Why signatures aren't allowed/considered while converting?

1 Answer 1


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 executing the script which is not necessarily available to bitcoind instance doing the conversion.

Additionally, signed network serialized transactions are not necessary fully signed, they could be partially signed in the way that the raw transaction RPCs do it. This makes it even more difficult to extract that information.

Lastly, a PSBT is far more mutable than a network serialized transaction. It can change afterwards which can invalidate signatures.

So instead, we decided to disallow signatures to avoid the possibility of putting incorrect and/or invalid data in a PSBT during the conversion.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.