Announcing Bitcoin Wallet Tracker



Summary:

Nadav's recently released bwt, an HD wallet indexer implemented in Rust, is designed to use the bitcoind wallet functionality to do the heavy lifting and build additional indexes on top of that. These indexes can be queried using the Electrum RPC protocol as well as a more modern, developer-friendly HTTP REST API. The electrum server can also be used as an electrum plugin, which integrates the server straight into the electrum client. The HTTP API is a modern design for a wallet tracking API aimed at app developers and can be used as a backend for wallets or to track deposits to a watch-only xpub.Compared to using the bitcoind RPC directly, bwt provides several conveniences such as the ability to track an xpub and automatically have new addresses derived and imported as needed, two additional indexes, real-time updates using Server-Sent Events or Web Hooks, API conveniences and simplifications, and an easy way to catch-up with missed events. The indexer is designed to minimize RPC requests to bitcoind by using labels to store key origin information. It can index 10k incoming txs in under a second or a mixture of 5k/5k in under 5 seconds. Although it requires one additional rpc call per outgoing transaction to learn which prevouts were spent, the index is currently entirely in-memory and does not get persisted. One major item on the roadmap is support for output script descriptors. Nadav invites interested contributors to check out the README for useful developer resources as well as a handy script for setting up a development environment. This is an early alpha release, recommended for use with testnet/regtest.


Updated on: 2023-06-14T02:06:41.870242+00:00