I've always wondered how wallet clients can receive the corresponding amount of Bitcoins so fast.

If I want to know how muc Bitcoins I own, I have to parse the complete the complete blockchain to read all incoming and outgoing transactions. The current size is over 170 GB, wouldn't it take minutes (if not hours) to get all the transactions?

But when I use a web wallet for example, the correct amount of Bitcoins is loaded instantly. How does this work?

Thank you

2 Answers 2


You don't have to parse the whole blockchain for every transaction, this is why database indexes exist.

You parse the blockchain once and create a unspent-transaction-output set (UTXO) which is a mapping between all unspent outputs and their balance. This is around 2.5GB in size and much-much faster to process.


There can be number of reasons for both instant and delayed payments -

  1. Fees - Sender might have paid a good transaction fee if your balance was loaded instantly.

  2. Node discovery - Your wallet might be connected to a very active node resulting in quicker discovery and propagation of your transaction. Please note the connection with a node or peer does not depend upon geographical locations.

  3. Wallet infrastructure - Many wallets use local database to upload or query transactions instantly. You should refer to SPV wallets. SPV wallets do not store whole Blockchain data but only relevant data with respect to its own transactions. Only when it has to send transactions it communicates with full node. For receiving Bitcoins you don't need to have the whole Blockchain downloaded.

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.