[#PartiallySignedTransaction]
= PartiallySignedTransaction
:mrdocs:

A version of CTransaction with the PSBT format

== Synopsis

Declared in `&lt;psbt&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class PartiallySignedTransaction;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:PartiallySignedTransaction/2constructor-00.adoc[`PartiallySignedTransaction`]         [.small]#[constructor]#
| Constructors
| xref:PartiallySignedTransaction/AddInput.adoc[`AddInput`] 
| Append a new input to this transaction&period;
| xref:PartiallySignedTransaction/AddOutput.adoc[`AddOutput`] 
| Append a new output to this transaction&period;
| xref:PartiallySignedTransaction/ComputeTimeLock.adoc[`ComputeTimeLock`] 
| Compute the effective locktime from the inputs and fallback&period;
| xref:PartiallySignedTransaction/GetUniqueID.adoc[`GetUniqueID`] 
| Compute a stable identifier for this PSBT&apos;s underlying transaction&period;
| xref:PartiallySignedTransaction/GetUnsignedTx.adoc[`GetUnsignedTx`] 
| Reconstruct the unsigned transaction described by this PSBT&period;
| xref:PartiallySignedTransaction/GetVersion.adoc[`GetVersion`] 
| Return the PSBT version of this transaction&period;
| xref:PartiallySignedTransaction/Merge.adoc[`Merge`] 
| Merge psbt into this&period; The two psbts must have the same underlying CTransaction (i&period;e&period; the same actual Bitcoin transaction&period;)
| xref:PartiallySignedTransaction/MergeGlobalXPubs.adoc[`MergeGlobalXPubs`] 
| Merge the global xpubs of psbt into this, keeping the existing origin for an xpub seen again with a different one, as the serialized records are keyed by xpub&period;
| xref:PartiallySignedTransaction/Serialize.adoc[`Serialize`] 
| Serialize this transaction to a stream&period;
| xref:PartiallySignedTransaction/Unserialize.adoc[`Unserialize`] 
| Deserialize this transaction from a stream&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:PartiallySignedTransaction/fallback_locktime.adoc[`fallback&lowbar;locktime`] 
| The fallback locktime used when no input requires one (PSBTv2)&period;
| xref:PartiallySignedTransaction/inputs.adoc[`inputs`] 
| Per&hyphen;input PSBT data&period;
| xref:PartiallySignedTransaction/m_proprietary.adoc[`m&lowbar;proprietary`] 
| Proprietary global key&hyphen;value records&period;
| xref:PartiallySignedTransaction/m_tx_modifiable.adoc[`m&lowbar;tx&lowbar;modifiable`] 
| Flags describing which parts of the transaction may still be modified&period;
| xref:PartiallySignedTransaction/m_xpubs.adoc[`m&lowbar;xpubs`] 
| Global extended public keys, mapping key origin to the set of extended keys sharing it&period;
| xref:PartiallySignedTransaction/outputs.adoc[`outputs`] 
| Per&hyphen;output PSBT data&period;
| xref:PartiallySignedTransaction/tx_version.adoc[`tx&lowbar;version`] 
| The transaction version (PSBTv2)&period;
| xref:PartiallySignedTransaction/unknown.adoc[`unknown`] 
| Unknown global key&hyphen;value pairs preserved across round&hyphen;trips&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:CombinePSBTs.adoc[`CombinePSBTs`]
| Combines PSBTs with the same underlying transaction, resulting in a single PSBT with all partial signatures from each input&period;
| xref:CountPSBTUnsignedInputs.adoc[`CountPSBTUnsignedInputs`]
| Counts the unsigned inputs of a PSBT&period;
| xref:DecodeBase64PSBT.adoc[`DecodeBase64PSBT`]
| Decode a base64&hyphen;encoded PSBT into a PartiallySignedTransaction&period;
| xref:DecodeRawPSBT.adoc[`DecodeRawPSBT`]
| Decode a raw binary PSBT into a PartiallySignedTransaction&period;
| xref:FinalizeAndExtractPSBT.adoc[`FinalizeAndExtractPSBT`]
| Finalizes a PSBT if possible, and extracts it to a CMutableTransaction if it could be finalized&period;
| xref:FinalizePSBT.adoc[`FinalizePSBT`]
| Finalizes a PSBT if possible, combining partial signatures&period;
| xref:PSBTInputSignedAndVerified.adoc[`PSBTInputSignedAndVerified`]
| Checks whether a PSBTInput is already signed by doing script verification using final fields&period;
| xref:PrecomputePSBTData.adoc[`PrecomputePSBTData`]
| Compute a PrecomputedTransactionData object from a psbt&period;
| xref:RemoveUnnecessaryTransactions.adoc[`RemoveUnnecessaryTransactions`]
| Reduces the size of the PSBT by dropping unnecessary `non&lowbar;witness&lowbar;utxos` (i&period;e&period; complete previous transactions) from a psbt when all inputs are segwit v1&period;
| xref:node/AnalyzePSBT.adoc[`node&colon;&colon;AnalyzePSBT`]
| Provides helpful miscellaneous information about where a PSBT is in the signing workflow&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
