13

Is there a maximum recommended number of inputs/outputs for each transaction? I was scripting a faucet and wasn't sure whether to payout in one transaction to all addresses or split them into groups of say 100 or 1000.

  • 1
    I don't think there is a limit, except that every transaction must be capable of fitting into a block. – Nick ODell Jan 17 '15 at 17:01
11

The total size of the transaction must be less than 100,000 bytes or it will not be relayed across the network or included in blocks.

There COULD be a miner that is mining >100K transactions, but I don't think there is; if there is such a miner or you mine the transaction yourself then the limit would be the 1,000,000 byte blocksize limit.

3

The economical way in your case would be to pay off (create as much outputs) as you can to decrease the fee cost.

Some standard transaction with one proven input and one output is about 161 - 250 bytes. see reference some est. basic values:

  • 10 bytes for transaction header
  • 50 bytes for previous transaction reference
    • 9 bytes for header
  • 50 for output (depending on script size)

The standard requirement (for miners to include your tx) is to pay 0.0001 BTC per 1000 bytes.

If your transaction is larger than 100 kB theoretical limit could be that your transaction is non-standard which means it fails the test IsStandard() for including the tx into the block because it is too large.

Nevertheless, it is possible to include even non-standard transaction into the block. This is being done by several mining pools but usually requires slightly higher fee.

So I estimate you can create transaction with up to 1900 outputs paying just 0.02 BTC fee and having transaction most probably verified in the upcoming block.

Please note that I have not tried this myself it is just my assumption.

  • I appreciate your input here. 0.02 is actually quite a high fee considering the small nature of the transactions I make. Furthermore I do not require that the transaction is processed promptly. Due it being a faucet I'm not bothered how long the transaction takes to confirm. In this instance what do you think would be a suitable number of addresses to include for a fee closer to 1 mBTC or similar? – cainy393 Jan 18 '15 at 19:25
  • @cainy393 Yes, you can have the fee as low as a 0.00001 BTC but it will take ages to get confirmed. I advice you to make some research on this - try to relay some low fee txs. – Marek Jan 19 '15 at 22:58
  • Since I was using the blockchain.info API I just set the transaction fee to normal and let it select a reasonable one, which almost always seems to end up being 0.1 mBTC as per usual. I found that much more than 100 transactions at a time became a problem due to the fact that I was making a GET request to the API and I think the url was too long. – cainy393 Feb 16 '15 at 17:54

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.