{
 "product": "sleeping-fleet",
 "title": "The Sleeping Fleet",
 "version": "1",
 "blurb": "Every Satoshi-era mining reward (P2PK coinbase output) classified coin by coin as asleep or awoken, with each departure dated to the block.",
 "publisher": "PARALLAX",
 "generated_utc": "2026-07-29T22:46:45Z",
 "produced_by": "self-hosted full archival Bitcoin node; no external data source",
 "source_provenance": {
  "built_at": "2026-07-28 21:21:43.382069+00",
  "method": "phase1 outpoint join census x utxo (sovereign); phase2 electrs histories, single-use keys, 2-entry-clean only",
  "caveat": "script-level history conflates homage deposits with movement; classification is therefore OUTPOINT-level and phase2 reports only clean fund+spend pairs"
 },
 "tables": [
  {
   "name": "fleet_outputs",
   "description": "Every P2PK coinbase output, with its sleeping/awoken classification.",
   "sql": "SELECT * FROM \"fleet_outputs\"",
   "rows": 196479,
   "schema": [
    [
     "height",
     "BIGINT"
    ],
    [
     "output_n",
     "INTEGER"
    ],
    [
     "value_sats",
     "BIGINT"
    ],
    [
     "pubkey_hex",
     "VARCHAR"
    ],
    [
     "year",
     "INTEGER"
    ],
    [
     "sleeping",
     "BOOLEAN"
    ]
   ],
   "columns": {
    "height": {
     "count": 196479,
     "xor": "4069357967858445667",
     "sum": "1812226705968719600568003"
    },
    "output_n": {
     "count": 196479,
     "xor": "14353881460167157215",
     "sum": "24530361695210018377949"
    },
    "value_sats": {
     "count": 196479,
     "xor": "2785329217656374053",
     "sum": "2036471040828700474345889"
    },
    "pubkey_hex": {
     "count": 196479,
     "xor": "7665303386712786249",
     "sum": "1834932801008536943784649"
    },
    "year": {
     "count": 196479,
     "xor": "9158834001994075609",
     "sum": "1859437882776169781112817"
    },
    "sleeping": {
     "count": 196479,
     "xor": "4717996019076358352",
     "sum": "161284693912125310263120"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_outputs.parquet",
     "bytes": 13844171,
     "sha256": "3146b75e1b865f958b9c9dc4cf741468820ec9b38919c164271b6162b78a1308"
    },
    "csv": {
     "path": "data/fleet_outputs.csv",
     "bytes": 31215754,
     "sha256": "270fee40556ebc0a0e8972b25b74aa13ad88fa7902b934bf2e54d80071fdc640"
    }
   }
  },
  {
   "name": "fleet_keys",
   "description": "The distinct public keys those rewards were paid to.",
   "sql": "SELECT * FROM \"fleet_keys\"",
   "rows": 192288,
   "schema": [
    [
     "pubkey_hex",
     "VARCHAR"
    ],
    [
     "n_outputs",
     "BIGINT"
    ],
    [
     "funded_sats",
     "DOUBLE"
    ],
    [
     "first_h",
     "BIGINT"
    ],
    [
     "last_h",
     "BIGINT"
    ],
    [
     "n_sleeping",
     "DOUBLE"
    ],
    [
     "fully_sleeping",
     "BOOLEAN"
    ]
   ],
   "columns": {
    "pubkey_hex": {
     "count": 192288,
     "xor": "12297633033817240403",
     "sum": "1772171349296590622774913"
    },
    "n_outputs": {
     "count": 192288,
     "xor": "8209009554406897146",
     "sum": "907144437406381544915160"
    },
    "funded_sats": {
     "count": 192288,
     "xor": "4370001840457926015",
     "sum": "1576961818236807011720299"
    },
    "first_h": {
     "count": 192288,
     "xor": "7907931284573150574",
     "sum": "1773842821542839998030586"
    },
    "last_h": {
     "count": 192288,
     "xor": "10561049439787301096",
     "sum": "1774042911609506605165138"
    },
    "n_sleeping": {
     "count": 192288,
     "xor": "7863046759047057191",
     "sum": "556090111184923077010747"
    },
    "fully_sleeping": {
     "count": 192288,
     "xor": "0",
     "sum": "161176180003686554021024"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_keys.parquet",
     "bytes": 14281742,
     "sha256": "3580c2af25c3a3500a6aa2f9026ddd1078bcc124fecb4e3c2f8cdbfc0da46b23"
    },
    "csv": {
     "path": "data/fleet_keys.csv",
     "bytes": 31260765,
     "sha256": "08297e2613943a5959a668a07b0a34df7047065902d2c192acf7095372c29887"
    }
   }
  },
  {
   "name": "fleet_awakenings",
   "description": "Per-key first-spend heights for keys with clean fund-then-spend histories.",
   "sql": "SELECT * FROM \"fleet_awakenings\"",
   "rows": 157766,
   "schema": [
    [
     "pubkey_hex",
     "VARCHAR"
    ],
    [
     "funded_h",
     "INTEGER"
    ],
    [
     "spend_h",
     "INTEGER"
    ],
    [
     "n_history",
     "INTEGER"
    ],
    [
     "clean",
     "BOOLEAN"
    ]
   ],
   "columns": {
    "pubkey_hex": {
     "count": 157766,
     "xor": "12206114503131367428",
     "sum": "1454324667194289233030620"
    },
    "funded_h": {
     "count": 157766,
     "xor": "14382986832070829184",
     "sum": "1455122074843974921386362"
    },
    "spend_h": {
     "count": 157766,
     "xor": "13818731339938960650",
     "sum": "1433086060593227845939736"
    },
    "n_history": {
     "count": 157766,
     "xor": "12902105287707389079",
     "sum": "325543992413201160808741"
    },
    "clean": {
     "count": 157766,
     "xor": "0",
     "sum": "744009100224265406676992"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_awakenings.parquet",
     "bytes": 11395136,
     "sha256": "6c14b0ae75dbcba0d0bb6806858359734686b177b8802de77362cde5cecabe94"
    },
    "csv": {
     "path": "data/fleet_awakenings.csv",
     "bytes": 23486035,
     "sha256": "677ea20e431abb0558d15d1170d3687f95af637c6a9e95ef71719651105716ed"
    }
   }
  },
  {
   "name": "fleet_awakening_years",
   "description": "Awakenings aggregated by calendar year.",
   "sql": "SELECT * FROM \"fleet_awakening_years\"",
   "rows": 18,
   "schema": [
    [
     "wake_year",
     "INTEGER"
    ],
    [
     "keys_awoken",
     "BIGINT"
    ],
    [
     "btc_awoken",
     "DOUBLE"
    ]
   ],
   "columns": {
    "wake_year": {
     "count": 18,
     "xor": "12230010746727250029",
     "sum": "133719674641882519955"
    },
    "keys_awoken": {
     "count": 18,
     "xor": "16522235389367943127",
     "sum": "185410631521731130839"
    },
    "btc_awoken": {
     "count": 18,
     "xor": "9856219401485622611",
     "sum": "167133613504679240311"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_awakening_years.parquet",
     "bytes": 772,
     "sha256": "2880992320a751a2ce2043e9ad0548c0506ef7c361316bda74d8fa25f7ae2ede"
    },
    "csv": {
     "path": "data/fleet_awakening_years.csv",
     "bytes": 452,
     "sha256": "bb88abbc40e1dcb1680f8b019b7e8c1537e93b95abefc71070fc4df8d773c9b9"
    }
   }
  },
  {
   "name": "fleet_by_year",
   "description": "Outputs and BTC by year mined, with the sleeping share of each.",
   "sql": "SELECT * FROM \"fleet_by_year\"",
   "rows": 17,
   "schema": [
    [
     "year",
     "INTEGER"
    ],
    [
     "outputs",
     "BIGINT"
    ],
    [
     "btc",
     "DOUBLE"
    ],
    [
     "sleeping_outputs",
     "DOUBLE"
    ],
    [
     "sleeping_btc",
     "DOUBLE"
    ],
    [
     "pct_btc_sleeping",
     "DOUBLE"
    ]
   ],
   "columns": {
    "year": {
     "count": 17,
     "xor": "4344632702941993302",
     "sum": "122914829303765235800"
    },
    "outputs": {
     "count": 17,
     "xor": "8014569956537224500",
     "sum": "129178611575879114242"
    },
    "btc": {
     "count": 17,
     "xor": "11237230026895378148",
     "sum": "171618682319918776658"
    },
    "sleeping_outputs": {
     "count": 17,
     "xor": "2969154284129720043",
     "sum": "163556657425772627257"
    },
    "sleeping_btc": {
     "count": 17,
     "xor": "2540315013703793874",
     "sum": "146608124856725523264"
    },
    "pct_btc_sleeping": {
     "count": 17,
     "xor": "5391442765334509053",
     "sum": "198374795900751564847"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_by_year.parquet",
     "bytes": 1328,
     "sha256": "855f6b38add2f84c157e7a31d91c34c14458ec37abed9c4163c3d98db7dfcc8e"
    },
    "csv": {
     "path": "data/fleet_by_year.csv",
     "bytes": 698,
     "sha256": "64106efd4920ddb093151babc78a87e638df8a760ce3af4975f30f68ff28e95f"
    }
   }
  },
  {
   "name": "fleet_meta",
   "description": "Build method and caveats, as recorded at build time.",
   "sql": "SELECT * FROM \"fleet_meta\"",
   "rows": 3,
   "schema": [
    [
     "k",
     "VARCHAR"
    ],
    [
     "v",
     "VARCHAR"
    ]
   ],
   "columns": {
    "k": {
     "count": 3,
     "xor": "2705878994157752490",
     "sum": "26334461718284570420"
    },
    "v": {
     "count": 3,
     "xor": "16840985018918728279",
     "sum": "17890748211481267819"
    }
   },
   "files": {
    "parquet": {
     "path": "data/fleet_meta.parquet",
     "bytes": 927,
     "sha256": "1090a7e608a603a98946b2293fc35b4d480021747cfd96c97c35dbcd8c9d2f8d"
    },
    "csv": {
     "path": "data/fleet_meta.csv",
     "bytes": 321,
     "sha256": "422c42a13ba12185ed8e652cb323663cd683b832cdc3c1670dbb35f93d523686"
    }
   }
  }
 ],
 "figures": {
  "outputs_total": {
   "sql": "SELECT count(*) FROM fleet_outputs",
   "value": "196479"
  },
  "outputs_asleep": {
   "sql": "SELECT sum(sleeping::int) FROM fleet_outputs",
   "value": "34185"
  },
  "sats_asleep": {
   "sql": "SELECT sum(CASE WHEN sleeping THEN value_sats ELSE 0 END) FROM fleet_outputs",
   "value": "170402266597442"
  },
  "btc_asleep": {
   "sql": "SELECT round(sum(CASE WHEN sleeping THEN value_sats ELSE 0 END) / 1e8, 8) FROM fleet_outputs",
   "value": "1704022.66597442"
  },
  "min_height": {
   "sql": "SELECT min(height) FROM fleet_outputs",
   "value": "0"
  },
  "max_height": {
   "sql": "SELECT max(height) FROM fleet_outputs",
   "value": "955609"
  },
  "awakenings_dated": {
   "sql": "SELECT count(*) FROM fleet_awakenings",
   "value": "157766"
  },
  "pct_btc_asleep_2009": {
   "sql": "SELECT round(pct_btc_sleeping, 2) FROM fleet_by_year WHERE year = 2009",
   "value": "66.13"
  }
 },
 "controls": {
  "block_1_is_sleeping": {
   "sql": "SELECT bool_and(sleeping) FROM fleet_outputs WHERE height = 1",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "Satoshi's first mining reward after genesis. Its SCRIPT shows 2024-25 activity (homage deposits inbound); the COIN has never moved. Any pipeline that reports this as spent is classifying at script level and is wrong."
  },
  "block_9_is_awoken": {
   "sql": "SELECT bool_and(NOT sleeping) FROM fleet_outputs WHERE height = 9",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "Block 9's reward was spent at height 170 - the Satoshi to Hal Finney transaction, the first bitcoin ever sent to another person."
  },
  "no_negative_values": {
   "sql": "SELECT count(*) = 0 FROM fleet_outputs WHERE value_sats < 0",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "Sanity floor on the value column."
  },
  "sleeping_is_a_strict_subset": {
   "sql": "SELECT (SELECT sum(sleeping::int) FROM fleet_outputs) < (SELECT count(*) FROM fleet_outputs)",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "If every output classified as sleeping, the awoken side of the join silently failed - the failure mode that would make this dataset worthless while looking complete."
  }
 },
 "root_algorithm": "sha256 of the canonical JSON encoding of this manifest with the 'root' key removed (sort_keys, separators (',',':'), ensure_ascii false, utf-8)",
 "root": "3b02823f0596e708bdb87efb79fe838eae671c63a24ceb5eb0b7abd8612b2758"
}