1. How much time does it take to get first confirmation for transaction? I don't need the exact number of minutes, just some useful approximation.

    I found this chart of average confirmation times, but I'm not sure that it's the time just for first confirmation.

  2. When a transaction isn't confirmed, lets say n hours, will it be in the getrawmempool list all that time?

  1. The time to get a confirmation varies by the transaction fee, the transaction priority, and the rate of block creation. In the upcoming Bitcoin 0.10, two new RPCs will be introduced that will help you estimate the number of blocks a transaction will take to get confirmation based on fee and priority (see notes below). The rate of block creation is unpredictable over short spans of time---a single block can be found seconds after the previous block or take more than an hour. Over longer spans of time, it averages about one block every 10 minutes.

  2. If the transaction is ever going to get confirmed, it must be in some miner's memory pool. If it was broadcast by a full node which has that transaction in its wallet, it will also be in that node's memory pool. If you have access to either of those nodes, the getrawmemorypool will return the transaction.

    As for whether it's in any other node's memory pool, that depends on whether or not it propagated to that node---assuming it pays a reasonable fee and is a standard transaction, it should propagate to most nodes within a few minutes (see BitcoinStats) and should stay there until the nodes shutdown.


Here's an example of the new estimatefee RPC from Bitcoin Core 0.10. The argument 6 says "tell me how much fee I need to pay per kilobyte to make it statistically likely my transaction will be included in the next 6 blocks":

bitcoin-cli estimatefee 6

Here's an example of the new estimatepriority RPC. The same deal, except priority is based on per-byte. (Here's a SE answer about priority.)

bitcoin-cli estimatepriority 6

And here's the chance of finding a block within a certain number of minutes:

Variance http://dtrt.org/tmp/en-block-variance.png

The code to produce that plot in gnuplot is: plot [0:60] 1-exp(-1/(600./60)*x) where 600 is the average number of seconds between blocks (10 minutes) and 60 is the number of seconds in a minute.

  • Great answer, I was just going to say "about 9-10 minutes" as most standard transactions are included fairly quickly. – George Dec 13 '14 at 1:06

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.