I am experimenting building an in-house Bitcoin payment system.

What is currently the recommended practice to get notifications to your web server when a certain Bitcoin address receives a transaction? E.g. trigger an action from somewhere which results a HTTP call made to a web server.

Are there any better alternatives than polling bitcoind?

External systems (blockchain.info) are good to go too for me.

Any way to filter for certain confirmation threshold (e.g. need 6 confirmations)?


2 Answers 2


Polling bitcoind is superior to any other alternatives as there is zero lag, your operations don't depend on a 3rd party SPOF service, etc.

A fresh incoming payment is also an outspent output, so calling bitcoin-cli listunspent 6 9999999 "[\"localAddressInQuestion\"]" will provide you with the exact unspent amount for this address only. Replace 6 with any number you wish to set as the confirmation threshold or make it 0 to get the unconfirmed payments as well.


Blockchain.info provides exactly this functionality: https://blockchain.info/wallet/payment-notifications

With the HTTP post method, you just need a web server listening for POST data.

Regarding the 6 confirmations, you could easily achieve this by waiting 60 minutes (or so) after the data came in from blockchain.info. Or you could periodically lookup the transaction identifier on blockchain.info using its API to check when it has reached 6 confirmations.

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