Hi,
I've got a list (200 million+) of bitcoin and ethereum addresses I need to check the balance for.
For ethereum, I'm running a geth + prysm node and I can simply check the balance for a specific address by calling `provider.getBalance(address)`.
For bitcoin, I initially assumed that this was possible in the same way by using bitcoin-core, so I synced the blocks but then find out this is not possible (I can use `client.importAddress(address, '', false)` but then I will have to rescan the blocks and it doesn't seem a viable solution considering the amount of addresses I have to check).
I also looked into bitcoin-abe and it seems that it will import all blocks in a database so then I may be able to query the data to check the balance (I probably will have to calculate it by summing up all unspent transaction outputs associated with each address).
I was wondering if anyone knew a better way of doing this or had any suggestion.
Thanks!
Zpywallet is designed to crunch these kind of things but the full node connector is very slow because it scans all blocks for transactions. Currently I am trying to speed it up by not parsing every single transaction.
Blockstream.info's endpoint does not have any rate limits AFAIK but I would not advise you do this with 200m addresses as you will get ban hammered quickly.