How can I get Bitcoin receive notifications with Bitcoin Core. I have tried the walletnotify
and blocknotify
options. walletnotify
is fired two times when I send or receive bitcoins. And with blocknotify
I have to perform below task to detect which account of the wallet has received bitcoin.
- Run
getBlock
command to get all transaction hash - Run a for loop for each transaction hash to run
getTransaction
command - If transaction hash belong to my wallet account, I save the receive transaction in my database.
Using blocknotify
seems to be inefficient as it involves lots of RPC calls per transaction.
walletnofity
executes twice for bitcoin send and receive.
I have also tried ZMQ
but I got a response which is difficult to convert into desirable format.
So could anybody suggest some efficient way to get a bitcoin receive notification upon first confirmation?
walletnotify
executes twice is because the first time is for when a tx enters your mempool, and the second time is for when the tx is confirmed. You should care about the second one if it's an incoming payment. Also you can run withblocksonly=1
which will disable mempool and causewalletnotify
to execute once (when a tx is confirmed in a new block)