BitcoinDatabase.com

Query the chain · dormant Bitcoin wallet data

Dormant Bitcoin wallets and addresses API, by last spend

A dormant Bitcoin wallet is one whose coins have not moved in years. Finding those addresses is harder than it looks, because dormancy is a fact about spending, and the public address endpoints do not tell you when an address last spent.

or try it below ↓

REST API · SQL · dashboards · indexed from genesis

Query Console
btc
try:

Hit Run to query the fully-indexed Bitcoin blockchain.

BTC

30-day trend

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Querying the indexed Bitcoin blockchain ...

The Bitcoin Pizza address is the clearest illustration we know of, and you can check every figure in it yourself. On 22 May 2010 at 18:16 UTC it received 10,000 BTC in block 57,043. Ten minutes later, in block 57,044, it spent all 10,000 BTC. That is the only time it has ever spent anything. Since then it has received fifteen more payments, tiny tribute amounts totaling 379,983 satoshis, the most recent on 22 May 2026. Three of those arrived on Pizza Day itself: 22 May 2023, 22 May 2024, and twice on 22 May 2026. So how dormant is this address? Sorted by last activity it looks like it moved three months ago. Sorted by last spend it has been asleep for sixteen years. Any screen built on the first definition gets this address, and every address like it, completely wrong.

The practical problem is that the endpoints most people reach for cannot answer the second question at all. We called them from a US server on 13 August 2026. Blockstream Esplora returns an address object with exactly three keys, and the useful one holds funded and spent output counts and sums plus a transaction count. There is no timestamp anywhere in it. mempool.space returns the identical shape, down to the same three keys. BlockCypher's balance endpoint returns nine fields, all of them counts and amounts, and again not one date. Every one of these will happily tell you an address has spent exactly one output in its life, while refusing to say when. To learn the date you make a second call for the transaction list, which hands back full transaction objects twenty five to a page, and you throw nearly all of it away to keep one number.

Here the answer is a field. Every address in the indexed chain carries its last spend, its last receive, its first activity and the age of the coins currently sitting on it, so a dormancy screen is a filter rather than a crawl. Ask for every address holding more than 50 BTC that has not spent since 2013, get the list. Ask for coin days destroyed over a block range and get the standard dormancy measure, the amount of each spent input multiplied by the days those coins sat still, which is how analysts separate old money moving from ordinary daily churn. For scale, a single coin from the pizza era moving today would destroy 5,927 coin days per BTC. Watch the same filter forward and you get an alert the moment something long-dormant wakes up. This is informational on-chain data, not financial, investment or legal advice.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

Indexed from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with dormant Bitcoin wallet data

Dormant by last spend, not last touch

Every address carries its last spend and its last receive as separate fields, so an address that only receives tribute dust still reads as dormant. That distinction is the difference between a screen that works and one that quietly drops the oldest coins on the chain.

Coin days destroyed, already computed

Each spent input is valued by amount multiplied by the days it sat unspent, aggregated per block, per day or per entity. That is the standard dormancy measure, and it separates genuinely old supply moving from the ordinary churn that dominates transaction counts.

Screen a list, or watch it forward

Run the filter once across an address set to find everything that has not spent since a date you choose, or leave it running so a webhook fires the moment a long-dormant address moves. The same query serves the audit and the alert.

Side by side

Can these APIs tell you when an address last spent?

Every public endpoint below was called from a US server on 13 August 2026, once each rather than in a burst. The question asked is the one a dormancy screen depends on: when did this address last move coins out?

Source Returns a last-spend time on the address record What you have to do instead Calls to screen 10,000 addresses
Blockstream Esplora No. Three keys, holding funded and spent counts and sums only Call the transaction list endpoint and read the newest spending transaction 20,000 or more
mempool.space No. Identical response shape, same three keys The same second call, returning 25 transactions per page 20,000 or more
BlockCypher No. The balance endpoint has nine fields and no date among them Request transaction references and scan them yourself 20,000 or more, against 100 requests per hour on the free tier
Blockchair Documents a last-seen-spending field, but our unauthenticated request returned HTTP 430 on 13 August 2026 Contact them for a key, then batch the dashboard calls Not knowable without a key
Own node plus indexer Only if you build that index yourself. Bitcoin Core stores the current UTXO set, not spend dates by address Sync the chain, then write and maintain the dormancy index None, once you have built and kept it running
BitcoinDatabase Yes. Last spend, last receive, first activity and coin age on every address record Nothing. Filter the address list by last spend date in one query 1

The 10,000 address figure assumes the minimum a dormancy screen needs: one address lookup plus one transaction page per address. Addresses with long histories need several pages each, so the real number is higher.

What it handles

The indexed Bitcoin chain, queryable your way

Look up an address, a transaction, a UTXO, the rich list or an on-chain metric, by REST API, SQL or dashboard. The same authoritative data, reconciled block-by-block against the canonical chain, without running a node.

  • Find addresses that have not spent since a given date
  • Separate last spend from last receive on every address
  • Rank dormant addresses by balance and by coin age
  • Compute coin days destroyed over any block range
  • Alert when a long-dormant address moves coins
  • Screen a supplied address list for dormancy in one pass
  • Measure how much supply has sat still for five or ten years
GET /v1/address/{addr} query result
200 · JSON
{
  "address": "bc1qxy2k…l0wdv8",
  "balance_btc": 68432.10,
  "balance_usd": 4612165420,
  "tx_count": 1284,
  "unspent_outputs": 37,
  "first_seen": "2014-02-09"
}
indexed from genesis · to the satoshi ✓ reconciled block-by-block

Why BitcoinDatabase

One platform, queryable three ways

Not a raw node to sync, not an indexer to build, and not five vendors to stitch together. The fully-indexed Bitcoin blockchain, available as a REST API, as SQL, and as dashboards, on one authoritative dataset.

REST API

Typed JSON for addresses, transactions, balances, UTXOs and metrics. Drop it into apps, wallets, explorers and agents with curl, Python or any HTTP client.

SQL access

Run SQL directly against the indexed Bitcoin dataset for ad-hoc analysis, cohorts and exports, the same data the API and dashboards read from.

Compliance-first

Informational on-chain data and analytics only. Entity labels and flow tracing are framed as tooling to support a regulated team's own review, not accusations.

Good questions

Questions about dormant Bitcoin wallet data

A dormant Bitcoin wallet is an address, or a cluster of addresses, that has held coins without spending them for a long period, commonly five years or more. The important word is spending. An address can keep receiving small payments and still be dormant, because dormancy describes whether the owner has demonstrated control by moving funds.
You filter the set of addresses holding a balance by the date of their most recent spending transaction. Public explorer APIs make this awkward because their address endpoints return counts and sums with no dates, so the spend date has to be recovered from the transaction list one address at a time. On an indexed chain it is a single filter.
Coin days destroyed measures how much genuinely old value moved. For every spent input you multiply the amount by the number of days those coins sat unspent, then sum across the period. One BTC that has not moved since 2010 destroys thousands of coin days when it is spent, while a coin that moved yesterday destroys almost none.
The blockchain records it, but most APIs will not hand it to you directly. We tested three widely used public address endpoints on 13 August 2026 and none returned a timestamp of any kind. The date lives in the transaction history, so you either fetch and scan that history yourself or read a dataset where the last spend is already an indexed field.
Published estimates vary widely, and the reason is definitional rather than technical. The figure depends entirely on the dormancy threshold chosen, whether addresses are clustered into wallets first, and whether provably unspendable coins are excluded. Any number quoted without those three choices stated is not comparable to any other number.
No, and conflating them is the most common mistake in this area. Dormancy is observable on chain: the coins have not moved. Whether the keys still exist is not observable at all. Long-term holders, cold storage, estates and institutional custody all look identical to lost coins from the outside, which is why careful analysis reports dormancy rather than loss.
A spend from a long-dormant address produces a large coin days destroyed reading and is usually picked up quickly by on-chain analysts, since old supply moving is a genuinely rare event. What it means is a separate question. It can be a custody migration, an estate settlement or an exchange reorganizing storage, none of which imply a sale.
No. Balances and addresses are public, private keys are not, and no amount of chain data will produce one. Searching for keys to dormant wallets is not a workable strategy, and any service offering lists of dormant wallets with recoverable keys is a scam. This API returns public on-chain data only and never accepts keys or seed phrases.

Explore more

More ways to query Bitcoin with BitcoinDatabase

Stop running a node. Just query Bitcoin.

Run your first query now and get on-chain data back by REST API, SQL or dashboard, indexed from the genesis block. Informational on-chain data only, not financial advice.

See pricing

Indexed from genesis · REST · SQL · dashboards · addresses, transactions, UTXOs, metrics