I'm trying to setup a bitcoin service for my users. How do other sites or exchanges keep track of each users unique Bitcoin deposit address? And how does the application alert the admin/user when a deposit is made successfully after 2 confirmations?

Which applications can do this? I was thinking of using electrum as it didnt require downloading the entire blockchain. What other apps are there that can do something like to manage users btc.

3 Answers 3


Just run bitcoind on your server and then connect via API to it, here is the reference: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

There are also ready (open source) libs in several languages, which you can integrate in your own apps.

Some examples:

But your question is too broad to give you a more specific answer, since you have to consider, if you want to hold user funds in one wallet and just identify them by different deposit addresses or a separate wallet with it's own keys for every single user.

In general: If you don't know exactly what you are doing, don't store any private keys on the server, especially if you want to hold someone's funds.


Based on my understanding, as a Bitcoin service provider, you should at least maintain a "well-connected" full-node as you should not rely trusted parties to determine the state of the network.

IIRC, exchanges generate new private/public key pairs each time to accept incoming deposits. You can then watch the bitcoin address derived from the public key to see if a deposit has been made.

Any full node implementation should be able to accomplish this with the RPC-JSON interface. You can specify the minimum number of confirmation required when filtering UTXOs that you control. Using a SPV client to provide services would be incredibly unsafe as it would leak information to adversaries (such as transaction ids that you might be interested in and etc..)


AFAIK, the best practice is to get the unspent transaction outputs (UTXO) (you need to keep track of all the blockchain) and add all the values to know one address' balance, since txid are not reliable (they are subject to transaction malleability).

If you don't want to download the full blockchain then use an external wallet service provider like blockchain.info, BitGo or similar. They also provide useful libraries and APIs. They also let you organize your wallet with labels, etc. Hope it helps!

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.