1

I'm confused about how exactly I should compute a change for transactions.
Say, for a given address I have 4 unspent outputs containing 2 BTC each and I want to send 5 BTC to other address.

Here's what I do:

  1. Find 3 outputs needed so the total is 6 BTC
  2. Now, what should the change be? 6-5=1 or 8-5=3?
2

The change is anything that's left over when you take the outputs you'll be spending, subtract the value of the transaction sent, and subtract fees. Since transactions should be as small as possible, as few outputs as needed will be spent. In your case, 3 outputs will be spent, no fee is in place, so the following new outputs will be created:

  • 5 BTC to recipient
  • 1 BTC to a change address.
1

If none of your transaction outputs is large enough to be the sole input, Bitcoin Core's coin selection algorithm does multiple rounds of randomly adding unspent transaction outputs until their total is greater than or equal to the amount you are trying to transfer. Finally, it selects the combination with the least resulting change.

In your example, it would use a combination of three of your four outputs, as 6BTC is more than the required 5BTC.
Therefore, you would end up with one of the four original 2BTC transaction outputs, and the change of your transaction as a new transaction output with 1BTC.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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