TransactionBuilder

TransactionBuilder

new TransactionBuilder()

Description:
  • Bitcoin transaction builder with SegWit/Taproot signing support

Source:

Methods

addInput(input) → {TransactionBuilder}

Description:
  • Add a transaction input

Source:
Parameters:
Name Type Description
input Object

Input details

Properties
Name Type Attributes Description
txid string

Previous transaction ID

vout number

Output index

value number <optional>

UTXO value in satoshis (required for signing)

scriptPubKey Buffer | string <optional>

Previous output script

address string <optional>

Previous output address

type string <optional>

Address type (p2pkh, p2wpkh, p2tr)

Returns:

this

Type
TransactionBuilder

addOpReturn(data) → {TransactionBuilder}

Description:
  • Add an OP_RETURN output

Source:
Parameters:
Name Type Description
data Buffer | string

Data to embed (max 80 bytes)

Returns:

this

Type
TransactionBuilder

addOutput(output) → {TransactionBuilder}

Description:
  • Add a transaction output

Source:
Parameters:
Name Type Description
output Object

Output details

Properties
Name Type Attributes Description
address string <optional>

Destination address

value number

Amount in satoshis

scriptPubKey Buffer <optional>

Custom scriptPubKey

Returns:

this

Type
TransactionBuilder

addWitness(inputIndex, witnessStack) → {TransactionBuilder}

Description:
  • Manually add witness data to an input

Source:
Parameters:
Name Type Description
inputIndex number

Input index

witnessStack Array.<Buffer>

Witness items

Returns:

this

Type
TransactionBuilder

build() → {Object}

Description:
  • Build the final transaction

Source:
Throws:

If no inputs or outputs

Type
TransactionBuilderError
Returns:

Built transaction object

Type
Object

calculateFee(feeRateopt) → {number}

Description:
  • Calculate transaction fee given fee rate

Source:
Parameters:
Name Type Attributes Default Description
feeRate number <optional>
1

Satoshis per vbyte

Returns:

Fee in satoshis

Type
number

clone() → {TransactionBuilder}

Description:
  • Clone the builder

Source:
Returns:

Cloned builder

Type
TransactionBuilder

enableRBF(inputIndexopt) → {TransactionBuilder}

Description:
  • Enable Replace-by-Fee for an input

Source:
Parameters:
Name Type Attributes Default Description
inputIndex number <optional>
null

Specific input index, or all if null

Returns:

this

Type
TransactionBuilder

getTxid(transactionopt) → {string}

Description:
  • Get transaction ID (txid)

Source:
Parameters:
Name Type Attributes Default Description
transaction Object <optional>
null

Transaction object

Returns:

Transaction ID in hex

Type
string

getVirtualSize() → {number}

Description:
  • Get virtual size (vsize) for fee calculation

Source:
Returns:

Virtual size in vbytes

Type
number

getWeight() → {number}

Description:
  • Get transaction weight

Source:
Returns:

Weight units

Type
number

getWtxid() → {string}

Description:
  • Get witness transaction ID (wtxid)

Source:
Returns:

Witness transaction ID in hex

Type
string

isFullySigned() → {boolean}

Description:
  • Check if all inputs are signed

Source:
Returns:

True if all inputs signed

Type
boolean

reset() → {TransactionBuilder}

Description:
  • Reset the builder

Source:
Returns:

this

Type
TransactionBuilder

serialize(transactionopt) → {Buffer}

Description:
  • Serialize transaction to raw bytes

Source:
Parameters:
Name Type Attributes Default Description
transaction Object <optional>
null

Transaction to serialize

Returns:

Serialized transaction

Type
Buffer

setInputSequence(inputIndex, sequence) → {TransactionBuilder}

Description:
  • Set custom sequence for an input (for CSV/CLTV)

Source:
Parameters:
Name Type Description
inputIndex number

Input index

sequence number

Sequence value

Returns:

this

Type
TransactionBuilder

setLocktime(locktime) → {TransactionBuilder}

Description:
  • Set locktime

Source:
Parameters:
Name Type Description
locktime number

Locktime value

Returns:

this

Type
TransactionBuilder

setVersion(version) → {TransactionBuilder}

Description:
  • Set version

Source:
Parameters:
Name Type Description
version number

Transaction version

Returns:

this

Type
TransactionBuilder

(async) signAllInputs(privateKey, sighashTypeopt) → {Promise.<TransactionBuilder>}

Description:
  • Sign all inputs with the same private key

Source:
Parameters:
Name Type Attributes Default Description
privateKey Buffer | string

Private key

sighashType number <optional>
0x01

Sighash type

Returns:

this

Type
Promise.<TransactionBuilder>

(async) signInput(inputIndex, privateKey, sighashTypeopt) → {Promise.<TransactionBuilder>}

Description:
  • Sign a single input

Source:
Parameters:
Name Type Attributes Default Description
inputIndex number

Index of input to sign

privateKey Buffer | string

Private key (32 bytes)

sighashType number <optional>
0x01

Sighash type

Returns:

this

Type
Promise.<TransactionBuilder>

(async) signInputs(signingInfo) → {Promise.<TransactionBuilder>}

Description:
  • Sign inputs with different keys

Source:
Parameters:
Name Type Description
signingInfo Array.<Object>

Array of {inputIndex, privateKey, sighashType}

Returns:

this

Type
Promise.<TransactionBuilder>

toHex() → {string}

Description:
  • Get serialized transaction as hex string

Source:
Returns:

Hex-encoded transaction

Type
string

TransactionBuilder

new TransactionBuilder(networkopt, optionsopt)

Description:
  • Create a transaction builder

Source:
Parameters:
Name Type Attributes Default Description
network string <optional>
'main'

Network type

options Object <optional>
{}

Builder options

Methods

addInput(input) → {TransactionBuilder}

Description:
  • Add a transaction input

Source:
Parameters:
Name Type Description
input Object

Input details

Properties
Name Type Attributes Description
txid string

Previous transaction ID

vout number

Output index

value number <optional>

UTXO value in satoshis (required for signing)

scriptPubKey Buffer | string <optional>

Previous output script

address string <optional>

Previous output address

type string <optional>

Address type (p2pkh, p2wpkh, p2tr)

Returns:

this

Type
TransactionBuilder

addOpReturn(data) → {TransactionBuilder}

Description:
  • Add an OP_RETURN output

Source:
Parameters:
Name Type Description
data Buffer | string

Data to embed (max 80 bytes)

Returns:

this

Type
TransactionBuilder

addOutput(output) → {TransactionBuilder}

Description:
  • Add a transaction output

Source:
Parameters:
Name Type Description
output Object

Output details

Properties
Name Type Attributes Description
address string <optional>

Destination address

value number

Amount in satoshis

scriptPubKey Buffer <optional>

Custom scriptPubKey

Returns:

this

Type
TransactionBuilder

addWitness(inputIndex, witnessStack) → {TransactionBuilder}

Description:
  • Manually add witness data to an input

Source:
Parameters:
Name Type Description
inputIndex number

Input index

witnessStack Array.<Buffer>

Witness items

Returns:

this

Type
TransactionBuilder

build() → {Object}

Description:
  • Build the final transaction

Source:
Throws:

If no inputs or outputs

Type
TransactionBuilderError
Returns:

Built transaction object

Type
Object

calculateFee(feeRateopt) → {number}

Description:
  • Calculate transaction fee given fee rate

Source:
Parameters:
Name Type Attributes Default Description
feeRate number <optional>
1

Satoshis per vbyte

Returns:

Fee in satoshis

Type
number

clone() → {TransactionBuilder}

Description:
  • Clone the builder

Source:
Returns:

Cloned builder

Type
TransactionBuilder

enableRBF(inputIndexopt) → {TransactionBuilder}

Description:
  • Enable Replace-by-Fee for an input

Source:
Parameters:
Name Type Attributes Default Description
inputIndex number <optional>
null

Specific input index, or all if null

Returns:

this

Type
TransactionBuilder

getTxid(transactionopt) → {string}

Description:
  • Get transaction ID (txid)

Source:
Parameters:
Name Type Attributes Default Description
transaction Object <optional>
null

Transaction object

Returns:

Transaction ID in hex

Type
string

getVirtualSize() → {number}

Description:
  • Get virtual size (vsize) for fee calculation

Source:
Returns:

Virtual size in vbytes

Type
number

getWeight() → {number}

Description:
  • Get transaction weight

Source:
Returns:

Weight units

Type
number

getWtxid() → {string}

Description:
  • Get witness transaction ID (wtxid)

Source:
Returns:

Witness transaction ID in hex

Type
string

isFullySigned() → {boolean}

Description:
  • Check if all inputs are signed

Source:
Returns:

True if all inputs signed

Type
boolean

reset() → {TransactionBuilder}

Description:
  • Reset the builder

Source:
Returns:

this

Type
TransactionBuilder

serialize(transactionopt) → {Buffer}

Description:
  • Serialize transaction to raw bytes

Source:
Parameters:
Name Type Attributes Default Description
transaction Object <optional>
null

Transaction to serialize

Returns:

Serialized transaction

Type
Buffer

setInputSequence(inputIndex, sequence) → {TransactionBuilder}

Description:
  • Set custom sequence for an input (for CSV/CLTV)

Source:
Parameters:
Name Type Description
inputIndex number

Input index

sequence number

Sequence value

Returns:

this

Type
TransactionBuilder

setLocktime(locktime) → {TransactionBuilder}

Description:
  • Set locktime

Source:
Parameters:
Name Type Description
locktime number

Locktime value

Returns:

this

Type
TransactionBuilder

setVersion(version) → {TransactionBuilder}

Description:
  • Set version

Source:
Parameters:
Name Type Description
version number

Transaction version

Returns:

this

Type
TransactionBuilder

(async) signAllInputs(privateKey, sighashTypeopt) → {Promise.<TransactionBuilder>}

Description:
  • Sign all inputs with the same private key

Source:
Parameters:
Name Type Attributes Default Description
privateKey Buffer | string

Private key

sighashType number <optional>
0x01

Sighash type

Returns:

this

Type
Promise.<TransactionBuilder>

(async) signInput(inputIndex, privateKey, sighashTypeopt) → {Promise.<TransactionBuilder>}

Description:
  • Sign a single input

Source:
Parameters:
Name Type Attributes Default Description
inputIndex number

Index of input to sign

privateKey Buffer | string

Private key (32 bytes)

sighashType number <optional>
0x01

Sighash type

Returns:

this

Type
Promise.<TransactionBuilder>

(async) signInputs(signingInfo) → {Promise.<TransactionBuilder>}

Description:
  • Sign inputs with different keys

Source:
Parameters:
Name Type Description
signingInfo Array.<Object>

Array of {inputIndex, privateKey, sighashType}

Returns:

this

Type
Promise.<TransactionBuilder>

toHex() → {string}

Description:
  • Get serialized transaction as hex string

Source:
Returns:

Hex-encoded transaction

Type
string