In Electrum, how does one watch/poll a wallet for an incoming payments to a certain address via API?

3

I want to create a simple way to accepting bitcoins on my own, using Electrum. I don't except big volume. I suppose, I'd have at most a handful of incoming payments in the beginning.

That is, I generate an address, a new one for each checkout where Bitcoin is selected as a payment method. And then I'll need to watch an address, via API of Electrum, for an incoming payment of a certain amount. The 1st confirmation, at least, which will have to arrive within, I suppose, 1 hour.

How can it be implemented? I don't need the code, but a high level explanation: what API to use, potential caveats and suggestions in general.

P.S.

I'm aware of this - https://electrum.readthedocs.io/en/latest/merchant.html , but it won't work for me. I'm a developer, therefore I can create a simpler solution and which I also could customise however I like.

zirnamaraji

Posted 2020-08-05T11:49:46.253

Reputation: 43

Answers

0

I have worked with Electrum 3.3.8 daemon through JSONRPC interface. A vary simple explanation how it woks in my case:

  1. I send to Electrum "addrequest" command which contains also amount of BTC, memo, timeout.
  2. Get the address of payment in answer from Electrum and display it for payer person.
  3. Store address in database for further checking.
  4. Periodically checks (by cronjob) statuses of addresses by "listrequests" command.

If status is "Paid" and there are more than 1 confirmations, then payment accepted.

Vlad

Posted 2020-08-05T11:49:46.253

Reputation: 136

listrequests isn't it, because I won't request a payment from someone, but I'll instead give an address to him. Therefore listrequests won't work – zirnamaraji – 2020-08-07T05:19:11.510

When you send "addrequest" comand, Electrum provide to you an address and Electrum starts to monitor this address. – Vlad – 2020-08-07T08:20:24.053

Ты делал через addrequest, но я делаю по-другому. Что я и описал. addrequest мне не подходит – zirnamaraji – 2020-08-07T08:40:51.280

0

The easiest way to accomplish this would be to use a hosted service like Coinbase Commerce and leverage their API. Commerce generates a wallet that only you control and then uses your public keys to generate and monitor addresses on your behalf. Every customer is given a unique address and the service monitors the network for payments to that address. When a payment is detected, it sends a webhook notifying you of the unconfirmed transaction and for each subsequent confirmation.

Justin O'Brien

Posted 2020-08-05T11:49:46.253

Reputation: 136

Are you unable to read? – zirnamaraji – 2020-08-12T08:36:05.003