Skip to main content

Psbt

bitcoinjs-lib v1.0.7


bitcoinjs-lib / Psbt

Class: Psbt

Defined in: ts_src/psbt.ts:131

Psbt class can parse and generate a PSBT binary based off of the BIP174. There are 6 roles that this class fulfills. (Explained in BIP174)

Creator: This can be done with new Psbt()

Updater: This can be done with psbt.addInput(input), psbt.addInputs(inputs), psbt.addOutput(output), psbt.addOutputs(outputs) when you are looking to add new inputs and outputs to the PSBT, and psbt.updateGlobal(itemObject), psbt.updateInput(itemObject), psbt.updateOutput(itemObject) addInput requires hash: Buffer | string; and index: number; as attributes and can also include any attributes that are used in updateInput method. addOutput requires script: Buffer; and value: number; and likewise can include data for updateOutput. For a list of what attributes should be what types. Check the bip174 library. Also, check the integration tests for some examples of usage.

Signer: There are a few methods. signAllInputs and signAllInputsAsync, which will search all input information for your pubkey or pubkeyhash, and only sign inputs where it finds your info. Or you can explicitly sign a specific input with signInput and signInputAsync. For the async methods you can create a SignerAsync object and use something like a hardware wallet to sign with. (You must implement this)

Combiner: psbts can be combined easily with psbt.combine(psbt2, psbt3, psbt4 ...) the psbt calling combine will always have precedence when a conflict occurs. Combine checks if the internal bitcoin transaction is the same, so be sure that all sequences, version, locktime, etc. are the same before combining.

Input Finalizer: This role is fairly important. Not only does it need to construct the input scriptSigs and witnesses, but it SHOULD verify the signatures etc. Before running psbt.finalizeAllInputs() please run psbt.validateSignaturesOfAllInputs() Running any finalize method will delete any data in the input(s) that are no longer needed due to the finalized scripts containing the information.

Transaction Extractor: This role will perform some checks before returning a Transaction object. Such as fee rate not being larger than maximumFeeRate etc.

Constructors​

new Psbt()​

new Psbt(opts, data): Psbt

Defined in: ts_src/psbt.ts:152

Parameters​

opts​

PsbtOptsOptional = {}

data​

Psbt = ...

Returns​

Psbt

Properties​

data​

readonly data: Psbt

Defined in: ts_src/psbt.ts:154

Accessors​

inputCount​

Get Signature​

get inputCount(): number

Defined in: ts_src/psbt.ts:190

Returns​

number


locktime​

Get Signature​

get locktime(): number

Defined in: ts_src/psbt.ts:202

Returns​

number

Set Signature​

set locktime(locktime): void

Defined in: ts_src/psbt.ts:206

Parameters​
locktime​

number

Returns​

void


txInputs​

Get Signature​

get txInputs(): PsbtTxInput[]

Defined in: ts_src/psbt.ts:210

Returns​

PsbtTxInput[]


txOutputs​

Get Signature​

get txOutputs(): PsbtTxOutput[]

Defined in: ts_src/psbt.ts:218

Returns​

PsbtTxOutput[]


version​

Get Signature​

get version(): number

Defined in: ts_src/psbt.ts:194

Returns​

number

Set Signature​

set version(version): void

Defined in: ts_src/psbt.ts:198

Parameters​
version​

number

Returns​

void

Methods​

addInput()​

addInput(inputData): this

Defined in: ts_src/psbt.ts:284

Parameters​

inputData​

PsbtInputExtended

Returns​

this


addInputs()​

addInputs(inputDatas): this

Defined in: ts_src/psbt.ts:279

Parameters​

inputDatas​

PsbtInputExtended[]

Returns​

this


addOutput()​

addOutput(outputData): this

Defined in: ts_src/psbt.ts:320

Parameters​

outputData​

PsbtOutputExtended

Returns​

this


addOutputs()​

addOutputs(outputDatas): this

Defined in: ts_src/psbt.ts:315

Parameters​

outputDatas​

PsbtOutputExtended[]

Returns​

this


addUnknownKeyValToGlobal()​

addUnknownKeyValToGlobal(keyVal): this

Defined in: ts_src/psbt.ts:1125

Parameters​

keyVal​

KeyValue

Returns​

this


addUnknownKeyValToInput()​

addUnknownKeyValToInput(inputIndex, keyVal): this

Defined in: ts_src/psbt.ts:1130

Parameters​

inputIndex​

number

keyVal​

KeyValue

Returns​

this


addUnknownKeyValToOutput()​

addUnknownKeyValToOutput(outputIndex, keyVal): this

Defined in: ts_src/psbt.ts:1135

Parameters​

outputIndex​

number

keyVal​

KeyValue

Returns​

this


clearFinalizedInput()​

clearFinalizedInput(inputIndex): this

Defined in: ts_src/psbt.ts:1140

Parameters​

inputIndex​

number

Returns​

this


clone()​

clone(): Psbt

Defined in: ts_src/psbt.ts:237

Returns​

Psbt


combine()​

combine(...those): this

Defined in: ts_src/psbt.ts:232

Parameters​

those​

...Psbt[]

Returns​

this


extractTransaction()​

extractTransaction(disableFeeCheck?): Transaction

Defined in: ts_src/psbt.ts:350

Parameters​

disableFeeCheck?​

boolean

Returns​

Transaction


finalizeAllInputs()​

finalizeAllInputs(): this

Defined in: ts_src/psbt.ts:380

Returns​

this


finalizeInput()​

finalizeInput(inputIndex, finalScriptsFunc?): this

Defined in: ts_src/psbt.ts:386

Parameters​

inputIndex​

number

finalScriptsFunc?​

FinalScriptsFunc | FinalTaprootScriptsFunc

Returns​

this


finalizeTaprootInput()​

finalizeTaprootInput(inputIndex, tapLeafHashToFinalize?, finalScriptsFunc?): this

Defined in: ts_src/psbt.ts:405

Parameters​

inputIndex​

number

tapLeafHashToFinalize?​

Uint8Array

finalScriptsFunc?​

FinalTaprootScriptsFunc = tapScriptFinalizer

Returns​

this


getFee()​

getFee(): bigint

Defined in: ts_src/psbt.ts:371

Returns​

bigint


getFeeRate()​

getFeeRate(): number

Defined in: ts_src/psbt.ts:362

Returns​

number


getInputType()​

getInputType(inputIndex): AllScriptType

Defined in: ts_src/psbt.ts:487

Parameters​

inputIndex​

number

Returns​

AllScriptType


inputHasHDKey()​

inputHasHDKey(inputIndex, root): boolean

Defined in: ts_src/psbt.ts:508

Parameters​

inputIndex​

number

root​

HDSigner

Returns​

boolean


inputHasPubkey()​

inputHasPubkey(inputIndex, pubkey): boolean

Defined in: ts_src/psbt.ts:503

Parameters​

inputIndex​

number

pubkey​

Uint8Array

Returns​

boolean


outputHasHDKey()​

outputHasHDKey(outputIndex, root): boolean

Defined in: ts_src/psbt.ts:521

Parameters​

outputIndex​

number

root​

HDSigner

Returns​

boolean


outputHasPubkey()​

outputHasPubkey(outputIndex, pubkey): boolean

Defined in: ts_src/psbt.ts:516

Parameters​

outputIndex​

number

pubkey​

Uint8Array

Returns​

boolean


setInputSequence()​

setInputSequence(inputIndex, sequence): this

Defined in: ts_src/psbt.ts:267

Parameters​

inputIndex​

number

sequence​

number

Returns​

this


setLocktime()​

setLocktime(locktime): this

Defined in: ts_src/psbt.ts:258

Parameters​

locktime​

number

Returns​

this


setMaximumFeeRate()​

setMaximumFeeRate(satoshiPerByte): void

Defined in: ts_src/psbt.ts:244

Parameters​

satoshiPerByte​

number

Returns​

void


setVersion()​

setVersion(version): this

Defined in: ts_src/psbt.ts:249

Parameters​

version​

number

Returns​

this


signAllInputs()​

signAllInputs(keyPair, sighashTypes?): this

Defined in: ts_src/psbt.ts:748

Parameters​

keyPair​

Signer

sighashTypes?​

number[]

Returns​

this


signAllInputsAsync()​

signAllInputsAsync(keyPair, sighashTypes?): Promise\<void>

Defined in: ts_src/psbt.ts:770

Parameters​

keyPair​

Signer | SignerAsync

sighashTypes?​

number[]

Returns​

Promise\<void>


signAllInputsHD()​

signAllInputsHD(hdKeyPair, sighashTypes): this

Defined in: ts_src/psbt.ts:655

Parameters​

hdKeyPair​

HDSigner

sighashTypes​

number[] = ...

Returns​

this


signAllInputsHDAsync()​

signAllInputsHDAsync(hdKeyPair, sighashTypes): Promise\<void>

Defined in: ts_src/psbt.ts:678

Parameters​

hdKeyPair​

HDSigner | HDSignerAsync

sighashTypes​

number[] = ...

Returns​

Promise\<void>


signInput()​

signInput(inputIndex, keyPair, sighashTypes?): this

Defined in: ts_src/psbt.ts:804

Parameters​

inputIndex​

number

keyPair​

Signer

sighashTypes?​

number[]

Returns​

this


signInputAsync()​

signInputAsync(inputIndex, keyPair, sighashTypes?): Promise\<void>

Defined in: ts_src/psbt.ts:920

Parameters​

inputIndex​

number

keyPair​

Signer | SignerAsync

sighashTypes?​

number[]

Returns​

Promise\<void>


signInputHD()​

signInputHD(inputIndex, hdKeyPair, sighashTypes): this

Defined in: ts_src/psbt.ts:710

Parameters​

inputIndex​

number

hdKeyPair​

HDSigner

sighashTypes​

number[] = ...

Returns​

this


signInputHDAsync()​

signInputHDAsync(inputIndex, hdKeyPair, sighashTypes): Promise\<void>

Defined in: ts_src/psbt.ts:727

Parameters​

inputIndex​

number

hdKeyPair​

HDSigner | HDSignerAsync

sighashTypes​

number[] = ...

Returns​

Promise\<void>


signTaprootInput()​

signTaprootInput(inputIndex, keyPair, tapLeafHashToSign?, sighashTypes?): this

Defined in: ts_src/psbt.ts:826

Parameters​

inputIndex​

number

keyPair​

Signer

tapLeafHashToSign?​

Uint8Array

sighashTypes?​

number[]

Returns​

this


signTaprootInputAsync()​

signTaprootInputAsync(inputIndex, keyPair, tapLeafHash?, sighashTypes?): Promise\<void>

Defined in: ts_src/psbt.ts:943

Parameters​

inputIndex​

number

keyPair​

Signer | SignerAsync

tapLeafHash?​

Uint8Array

sighashTypes?​

number[]

Returns​

Promise\<void>


toBase64()​

toBase64(): string

Defined in: ts_src/psbt.ts:1089

Returns​

string


toBuffer()​

toBuffer(): Uint8Array

Defined in: ts_src/psbt.ts:1079

Returns​

Uint8Array


toHex()​

toHex(): string

Defined in: ts_src/psbt.ts:1084

Returns​

string


updateGlobal()​

updateGlobal(updateData): this

Defined in: ts_src/psbt.ts:1094

Parameters​

updateData​

PsbtGlobalUpdate

Returns​

this


updateInput()​

updateInput(inputIndex, updateData): this

Defined in: ts_src/psbt.ts:1099

Parameters​

inputIndex​

number

updateData​

PsbtInputUpdate

Returns​

this


updateOutput()​

updateOutput(outputIndex, updateData): this

Defined in: ts_src/psbt.ts:1117

Parameters​

outputIndex​

number

updateData​

PsbtOutputUpdate

Returns​

this


validateSignaturesOfAllInputs()​

validateSignaturesOfAllInputs(validator): boolean

Defined in: ts_src/psbt.ts:529

Parameters​

validator​

ValidateSigFunction

Returns​

boolean


validateSignaturesOfInput()​

validateSignaturesOfInput(inputIndex, validator, pubkey?): boolean

Defined in: ts_src/psbt.ts:537

Parameters​

inputIndex​

number

validator​

ValidateSigFunction

pubkey?​

Uint8Array

Returns​

boolean


fromBase64()​

static fromBase64(data, opts): Psbt

Defined in: ts_src/psbt.ts:132

Parameters​

data​

string

opts​

PsbtOptsOptional = {}

Returns​

Psbt


fromBuffer()​

static fromBuffer(buffer, opts): Psbt

Defined in: ts_src/psbt.ts:142

Parameters​

buffer​

Uint8Array

opts​

PsbtOptsOptional = {}

Returns​

Psbt


fromHex()​

static fromHex(data, opts): Psbt

Defined in: ts_src/psbt.ts:137

Parameters​

data​

string

opts​

PsbtOptsOptional = {}

Returns​

Psbt