I develop an application (BitBook, https://github.com/C-Otto/BitBook) that helps users track their coins. For this, whenever I reason about some address, I need to consider all transactions that take funds out of the address, or pay into the address.

With bitcoin-cli I could use the block details (possibly with getblockfilter) to find all transactions that pay into the address. By adding quite a bit of logic and scanning the complete blockchain, I could then also find addresses that take funds out of the address. However, the whole process seems rather involved and slow.

APIs like Blockchair offer convenient endpoints that give me exactly the required information, but considering that I need to keep this information up-to-date (for all addresses that are relevant to the user), I'd like to avoid using such APIs that only offer a limited number of free requests. Aside from that, there's the obvious privacy issue.

My question:

What are other ways to get the necessary information?

  • Input: address
  • Output: list of transactions paying into the address or taking out of the address

1 Answer 1


bitcoind does not have an index by spending/receiving address.

to get transaction by address a different index is needed, examples are electrum server and reimplementations of it (electrumX, electrs), these do require extra storage for their own index.

I personally have a good experience with electrs (github), it only takes up ~10% of the blockchain size and is fast with queries.

  • Thank you. contrib/history.sh in the electrs repository is a good starting point and gives exactly the information I need!
    – C-Otto
    Commented Feb 5, 2022 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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