Visualization of how Bitcoin's UTXO set has evolved over time

  • Each pixel represents a block, where each column is 300 blocks. The orange visualizes the number of unspent transaction outputs per block, and the blue visualizes the amount of unspent BTC per block.

    How I made it:

    1. Precalculated all block heights to snapshot the UTXO stats at (every 1008 blocks) 2. Downloaded the whole blockchain using the Bitcoin Core client 3. Wrote a script that invalidates all blocks to X using the Bitcoin Core’s RPC 4. Saved a snapshot of the UTXO set using the same method as for utxo-stats.com (see source code below) 5. Saved price with each snapshot (from a csv file downloaded from coindesk.com) 6. Repeated step 3 - 5 by invalidating the next 1008 blocks 7. Copied the source code for utxo-stats.com modified it to load these snapshots one by one 8. Recorded the screen using QuickTime 9. Imported the movie into iMovie and sped it up

    Source code for utxo-stats.com: https://github.com/blockfirm/utxo-stats.com

    Modified version of the Bitcoin Core client: https://github.com/blockfirm/bitcoin