Glossary / Nodes & software
Lightweight client
Also known as Thin client, SPV node.
- Definition
- A lightweight client is a wallet that holds no copy of the blockchain and asks other people's servers what happened to your addresses.
Practically every bitcoin app on a phone is one of these. The full chain passed 759 GB in August 2026, which no handset is going to store, so the wallet keeps a few megabytes of block headers at most and outsources the rest. The convenience is real and so is the bill: somebody else learns your addresses, and you cannot independently confirm what they tell you.
How it works
Lightweight clients come in three families, and they leak different amounts about you.
The oldest asks a full node to filter on its behalf. Under BIP37 the wallet uploads a bloom filter describing what it is interested in, and peers send back matching transactions along with the merkle proofs tying them to blocks. It was never as private as advertised: academic work presented in 2014 showed the filters gave away the addresses they were meant to hide. Bitcoin Core turned the feature off by default in version 0.19.0, released in November 2019, because serving those filters was also an easy way to exhaust a node's disk.
The most common family simply asks a server outright. Wallets speaking the Electrum protocol send a fingerprint of each address they watch to a server, which replies with the history and balance. It is instant and it works on a bad mobile connection, which is why so much software uses it. It also means one operator holds a complete list of your coins, your addresses and the IP address you connected from.
The newest family flips the direction of the filtering. Under BIP157 and BIP158, nodes compute a compact filter for every block and publish it, and the wallet downloads those filters and decides for itself which blocks look relevant before fetching them whole. Nobody is told what you are looking for. Bitcoin Core has been able to serve these filters since version 0.21.0 in January 2021, and Neutrino is the implementation most mobile Lightning wallets use.
Most of these wallets keep a chain of 80 byte block headers, which is how they know a block exists and carries proof of work. At around 960,000 blocks that chain weighs roughly 77 MB, small enough for a phone and useless for checking whether the transactions inside those blocks were legal.
Where you see it
Open any wallet that finished setting itself up in under a minute and you are looking at a lightweight client.
The failure to watch for is not theft. Your keys stay on your device, and a server cannot spend anything or invent a payment with real proof of work behind it. What a server can do is stay quiet. It can omit a payment you received, show you a stale balance, or, if it is malicious rather than merely broken, feed you a chain that a real node would have thrown away. Detecting any of that requires the thing a lightweight client does not have.
The upgrade path is short. Most desktop wallets, and several mobile ones, will point at your own node instead of a public server, which removes the privacy leak entirely and costs nothing beyond the hardware you already bought.
Lightweight client vs simplified payment verification
Simplified payment verification is a technique; a lightweight client is a category of software, and plenty of the second do not implement the first. Real simplified payment verification means building a header chain from proof of work and checking a merkle branch against it before believing anything. The Electrum desktop wallet does exactly that with the answers its servers give it. A great many apps that borrow an Electrum server do not, and simply display the balance they were handed, even where the marketing says "SPV wallet". If you want to know which kind you are running, look for whether it syncs headers at all.