I want to make use of a single bitcoin address for payment. I'm using bitcoinjs library's transction builder for creating my own transaction. Can anyone help with a proper code to use multiple UTXO's in a single transaction? Is there any function which can automatically select the no. of UTXO's to be consumed depending on the output transaction value to be sent? Thank you.

2 Answers 2


Of course, you can add as many UTXO's as will fit in a block. In fact, you usually have to because you don't always have a UTXO for the exact amount you are trying to spend. Note that more UTXO will result in a higher transaction fee because the fee is based on the current market fee rate (satoshi/kB) and more UTXO increases the kB.

For example, check out this transaction, it uses 7 UTXO as inputs.

See Bitcoin Wiki - Transactions

  • 1
    Nit: you can't "add as many UTXO's as will fit in a block". Bitcoin transactions bigger than 400,000 weight units are non-standard and will not be relayed.
    – Murch
    Oct 19, 2019 at 15:35
  • Thanks @Murch didn't realize there was a relay standard!
    – JBaczuk
    Oct 19, 2019 at 19:05

Yes, after refering to some documentations I'm now sure that,you can consume multiple UTXOs in a single transaction but upto a certain limit.Also transaction fees will increase as the size of input increases using multiple UTXOs. I used Transaction Builder of bitcoinjs-lib, for transaction. Hence, using

tx.addInput(txId, vOut) (txId and Vout of respective UTXO to be used)

multiple times, multiple UTXOs can be used. However to estimate the no. of UTXOs, simple logic such as using a FOR loop, till the sum of all UTXOs is sufficient for the btc to be sent, will work.

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.