Batching transactions - calculating batch transaction fee


I want to use transaction batching to make BTC payments to multiple recipients.

In order to optimize transaction amount \ size, lets I'm making equal transfers of x BTC to N recipients, and that F(x, N) is the function representing the transaction fees.

How would this function look like? How can I calculate it in any given time, to optimize transaction fees?


Posted 2018-01-26T14:21:35.540

Reputation: 121

With or without segwit? – pebwindkraft – 2018-01-26T16:41:53.843

@pebwindkraft both? :) – Lizozom – 2018-01-26T17:21:01.280

maybe this: or also this: this is all without segwit. Segwit changes things, generally it goes cheaper...

– pebwindkraft – 2018-01-26T20:07:07.347



The function would not work because the transaction fee is based upon the size of the transaction in bytes (well really its weight, which is based on the bytes). While the number of outputs is a factor in this, the other factor is the number of inputs, and what type of inputs they are. So given just the outputs (the value of the outputs doesn't even matter), you still cannot determine how much in transaction fees that you will need to pay. Thus your function F(x, N) would not work.

Andrew Chow

Posted 2018-01-26T14:21:35.540

Reputation: 50 267

Can you please clarify what additional information is required? – Lizozom – 2018-01-26T17:20:45.260

The number of inputs and the type of those inputs. If you want to optimize the transaction fee, then your function needs to also be selecting those inputs, and it will get very complicated if you want to do that. – Andrew Chow – 2018-01-26T17:25:02.583

Going to google what input types are out there :) – Lizozom – 2018-01-26T17:27:53.207