{
 "product": "nonce-archaeology",
 "title": "Nonce Archaeology",
 "version": "1",
 "blurb": "The winning-nonce series genesis to tip, with normalised epoch and yearly statistics, pool-conditioned anomaly windows, and the lowest winning nonces ever mined.",
 "publisher": "PARALLAX",
 "generated_utc": "2026-07-30T01:56:35Z",
 "produced_by": "self-hosted full archival Bitcoin node; no external data source",
 "source_provenance": {},
 "tables": [
  {
   "name": "block_nonces",
   "description": "Every block's winning nonce with its time, its position in the search space as a fraction, and whether it fell below the midpoint.",
   "sql": "SELECT * FROM n ORDER BY height",
   "rows": 960193,
   "schema": [
    [
     "height",
     "BIGINT"
    ],
    [
     "block_time",
     "TIMESTAMP WITH TIME ZONE"
    ],
    [
     "nonce",
     "BIGINT"
    ],
    [
     "nonce_frac_of_space",
     "DOUBLE"
    ],
    [
     "below_midpoint",
     "INTEGER"
    ]
   ],
   "columns": {
    "height": {
     "count": 960193,
     "xor": "18211073016073507349",
     "sum": "8858394613653634668324593"
    },
    "block_time": {
     "count": 960193,
     "xor": "15642985827975680035",
     "sum": "8861756706788217386534133"
    },
    "nonce": {
     "count": 960193,
     "xor": "7307133322233131136",
     "sum": "8850834543365120434152468"
    },
    "nonce_frac_of_space": {
     "count": 960193,
     "xor": "9918687114884410185",
     "sum": "8853378310997885208232463"
    },
    "below_midpoint": {
     "count": 960193,
     "xor": "0",
     "sum": "2469361372416413350569984"
    }
   },
   "files": {
    "parquet": {
     "path": "data/block_nonces.parquet",
     "bytes": 14474361,
     "sha256": "550d8fb75992fae119cc82a1e439a82a8e6a8729ed5c6c6569f24a974059f161"
    },
    "csv": {
     "path": "data/block_nonces.csv",
     "bytes": 59432458,
     "sha256": "59bf71e09c26e6c9a603133b4abe6fb230af9c5f1765a41d782e7f9ae118a5f8"
    }
   }
  },
  {
   "name": "nonce_by_epoch",
   "description": "Per 10,000-block epoch: mean nonce over the range midpoint and the share below it. This is where the 2010 collapse toward zero appears.",
   "sql": "\nSELECT FLOOR(height / 10000) * 10000 AS epoch_start,   -- FLOOR, not CAST: CAST rounds\n       count(*) AS blocks,\n       round(avg(nonce), 1) AS mean_nonce,\n       round(avg(nonce) / 2147483648.0, 4) AS mean_over_midpoint,\n       round(avg(below_midpoint), 4) AS frac_below_midpoint\n  FROM n GROUP BY 1 ORDER BY 1",
   "rows": 97,
   "schema": [
    [
     "epoch_start",
     "DOUBLE"
    ],
    [
     "blocks",
     "BIGINT"
    ],
    [
     "mean_nonce",
     "DOUBLE"
    ],
    [
     "mean_over_midpoint",
     "DOUBLE"
    ],
    [
     "frac_below_midpoint",
     "DOUBLE"
    ]
   ],
   "columns": {
    "epoch_start": {
     "count": 97,
     "xor": "13274659886329869257",
     "sum": "871639250746925033307"
    },
    "blocks": {
     "count": 97,
     "xor": "3171037235562067826",
     "sum": "755371709655117851954"
    },
    "mean_nonce": {
     "count": 97,
     "xor": "14158360697702463373",
     "sum": "896797125313310160703"
    },
    "mean_over_midpoint": {
     "count": 97,
     "xor": "12408878936435505581",
     "sum": "917180326238407954839"
    },
    "frac_below_midpoint": {
     "count": 97,
     "xor": "1784841365448460796",
     "sum": "809952811185920033568"
    }
   },
   "files": {
    "parquet": {
     "path": "data/nonce_by_epoch.parquet",
     "bytes": 3173,
     "sha256": "9cc542a000aaaac0d47f9969a4d43e6659ff6fda7e4d11aef58502b696b7b89f"
    },
    "csv": {
     "path": "data/nonce_by_epoch.csv",
     "bytes": 4099,
     "sha256": "016ac63e16e24e24e50ca0592f88b4c7c9eae1e68129824c38e9daf63e88489c"
    }
   }
  },
  {
   "name": "nonce_by_year",
   "description": "The same statistics by calendar year. Uniform searching gives 1.0 and 0.5.",
   "sql": "\nSELECT CAST(EXTRACT(YEAR FROM block_time) AS INT) AS year,\n       count(*) AS blocks,\n       round(avg(nonce) / 2147483648.0, 4) AS mean_over_midpoint,\n       round(avg(below_midpoint), 4) AS frac_below_midpoint\n  FROM n GROUP BY 1 ORDER BY 1",
   "rows": 18,
   "schema": [
    [
     "year",
     "INTEGER"
    ],
    [
     "blocks",
     "BIGINT"
    ],
    [
     "mean_over_midpoint",
     "DOUBLE"
    ],
    [
     "frac_below_midpoint",
     "DOUBLE"
    ]
   ],
   "columns": {
    "year": {
     "count": 18,
     "xor": "12230010746727250029",
     "sum": "133719674641882519955"
    },
    "blocks": {
     "count": 18,
     "xor": "3891615149585432979",
     "sum": "177359538741513096703"
    },
    "mean_over_midpoint": {
     "count": 18,
     "xor": "8146244480501124096",
     "sum": "137409271699214037314"
    },
    "frac_below_midpoint": {
     "count": 18,
     "xor": "11710757643625408802",
     "sum": "147119559272304952500"
    }
   },
   "files": {
    "parquet": {
     "path": "data/nonce_by_year.parquet",
     "bytes": 1063,
     "sha256": "38b0e6f4981a16200e80918a11ccb094d79d846110d6237c7968e35a82a3c5b7"
    },
    "csv": {
     "path": "data/nonce_by_year.csv",
     "bytes": 499,
     "sha256": "9e760ba3b70abe9d811907e24f8a986e43307ae83c6d7c025c046a002a700432"
    }
   }
  },
  {
   "name": "nonce_by_pool_year",
   "description": "Share of winning nonces below the midpoint, per pool per year, with the deviation in sigma. Pool-years under 400 blocks are excluded as underpowered. Attribution comes from our own copy of the coinbase message and is self-reported by the pool.",
   "sql": "\nWITH tagged AS (\n  SELECT CAST(EXTRACT(YEAR FROM to_timestamp(b.ts)) AS INT) AS year,\n         CASE\n           WHEN c.ascii ILIKE '%Foundry%' THEN 'Foundry'\n           WHEN c.ascii ILIKE '%AntPool%' THEN 'AntPool'\n           WHEN c.ascii ILIKE '%f2pool%' THEN 'F2Pool'\n           WHEN c.ascii ILIKE '%ViaBTC%' THEN 'ViaBTC'\n           WHEN c.ascii ILIKE '%binance%' THEN 'Binance'\n           WHEN c.ascii ILIKE '%poolin%' THEN 'Poolin'\n           WHEN c.ascii ILIKE '%BTC.com%' THEN 'BTC.com'\n           WHEN c.ascii ILIKE '%slush%' THEN 'SlushBraiins'\n           WHEN c.ascii ILIKE '%Mara%' THEN 'MARA'\n           WHEN c.ascii ILIKE '%SBICrypto%' THEN 'SBICrypto'\n           WHEN c.ascii ILIKE '%Luxor%' THEN 'Luxor'\n           WHEN c.ascii ILIKE '%SpiderPool%' THEN 'SpiderPool'\n           WHEN c.ascii ILIKE '%BTC.TOP%' THEN 'BTC.TOP'\n           WHEN c.ascii ILIKE '%Huobi%' THEN 'Huobi'\n           WHEN c.ascii ILIKE '%OCEAN%' THEN 'OCEAN'\n           WHEN c.ascii ILIKE '%58COIN%' THEN '58COIN'\n           WHEN c.ascii ILIKE '%NovaBlock%' THEN 'NovaBlock'\n           WHEN c.ascii ILIKE '%1THash%' THEN '1THash'\n           ELSE 'unattributed' END AS pool,\n         CASE WHEN b.nonce < 2147483648 THEN 1.0 ELSE 0.0 END AS below\n    FROM block_headers b JOIN coinbase_text c USING (height))\nSELECT year, pool, count(*) AS blocks,\n       round(avg(below), 4) AS frac_below_midpoint,\n       round((avg(below) - 0.5) / sqrt(0.25 / count(*)), 2) AS sigma\n  FROM tagged\n WHERE pool <> 'unattributed'\n GROUP BY 1, 2 HAVING count(*) >= 400\n ORDER BY year, sigma DESC",
   "rows": 108,
   "schema": [
    [
     "year",
     "INTEGER"
    ],
    [
     "pool",
     "VARCHAR"
    ],
    [
     "blocks",
     "BIGINT"
    ],
    [
     "frac_below_midpoint",
     "DOUBLE"
    ],
    [
     "sigma",
     "DOUBLE"
    ]
   ],
   "columns": {
    "year": {
     "count": 108,
     "xor": "18416174362494939371",
     "sum": "815948624085379958525"
    },
    "pool": {
     "count": 108,
     "xor": "5237252805262346848",
     "sum": "633675816971455714740"
    },
    "blocks": {
     "count": 108,
     "xor": "364917179947551773",
     "sum": "1009153237566185680461"
    },
    "frac_below_midpoint": {
     "count": 108,
     "xor": "18382443774782527092",
     "sum": "1042788163057813116492"
    },
    "sigma": {
     "count": 108,
     "xor": "13432992044164041552",
     "sum": "932753278282327832756"
    }
   },
   "files": {
    "parquet": {
     "path": "data/nonce_by_pool_year.parquet",
     "bytes": 2751,
     "sha256": "ceef6d7831c2b2f5c07feeb808555416b2844fa887b56065511a90eb131d3872"
    },
    "csv": {
     "path": "data/nonce_by_pool_year.csv",
     "bytes": 3305,
     "sha256": "7b161e079eddbc55ca91dcdf81c216771bf0f417e22b7c6833bbd95a67626140"
    }
   }
  },
  {
   "name": "lowest_nonces",
   "description": "The 500 lowest winning nonces ever mined, with height and date.",
   "sql": "SELECT height, block_time, nonce FROM n ORDER BY nonce ASC LIMIT 500",
   "rows": 500,
   "schema": [
    [
     "height",
     "BIGINT"
    ],
    [
     "block_time",
     "TIMESTAMP WITH TIME ZONE"
    ],
    [
     "nonce",
     "BIGINT"
    ]
   ],
   "columns": {
    "height": {
     "count": 500,
     "xor": "16073556296994458652",
     "sum": "4495593223586210872242"
    },
    "block_time": {
     "count": 500,
     "xor": "13312815883850052898",
     "sum": "4610717727858976216050"
    },
    "nonce": {
     "count": 500,
     "xor": "1071702392520882290",
     "sum": "4494931051967608962458"
    }
   },
   "files": {
    "parquet": {
     "path": "data/lowest_nonces.parquet",
     "bytes": 6404,
     "sha256": "7685d869eb3757fb6d063dbb9f8aad319f3bd26f9340ed636999b43d3c6356af"
    },
    "csv": {
     "path": "data/lowest_nonces.csv",
     "bytes": 18081,
     "sha256": "9d86ad4c53c6148096432b49463b7685e171e1f2104a989b16f9b41d1e31d86a"
    }
   }
  }
 ],
 "figures": {
  "blocks_total": {
   "sql": "SELECT count(*) FROM block_nonces",
   "value": "960193"
  },
  "lowest_nonce_ever": {
   "sql": "SELECT min(nonce) FROM block_nonces",
   "value": "1082"
  },
  "lowest_nonce_height": {
   "sql": "SELECT height FROM lowest_nonces ORDER BY nonce ASC LIMIT 1",
   "value": "67071"
  },
  "epoch_floor_mean_over_midpoint": {
   "sql": "SELECT min(mean_over_midpoint) FROM nonce_by_epoch",
   "value": "0.1218"
  },
  "epoch_floor_start": {
   "sql": "SELECT epoch_start FROM nonce_by_epoch ORDER BY mean_over_midpoint ASC LIMIT 1",
   "value": "60000.0"
  },
  "epoch_peak_frac_below": {
   "sql": "SELECT max(frac_below_midpoint) FROM nonce_by_epoch",
   "value": "0.9633"
  },
  "year_2020_frac_below": {
   "sql": "SELECT frac_below_midpoint FROM nonce_by_year WHERE year = 2020",
   "value": "0.5778"
  },
  "f2pool_sigma_2020": {
   "sql": "SELECT sigma FROM nonce_by_pool_year WHERE year = 2020 AND pool = 'F2Pool'",
   "value": "17.9"
  }
 },
 "controls": {
  "null_period_2011_2014_is_flat": {
   "sql": "SELECT max(abs(mean_over_midpoint - 1.0)) < 0.01 FROM nonce_by_year WHERE year BETWEEN 2011 AND 2014",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "2011-2014 is the internal null: every year must read 1.000. If our parse skewed nonces it would skew them here too, which would make the 2010 collapse an artefact rather than a finding."
  },
  "early_collapse_is_present": {
   "sql": "SELECT min(mean_over_midpoint) < 0.2 FROM nonce_by_epoch",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "The 2010 collapse must survive the export. It is the headline; if it is absent the product is not what it claims to be."
  },
  "modern_era_is_only_subtly_off": {
   "sql": "SELECT abs(avg(below_midpoint) - 0.5) < 0.05 FROM block_nonces WHERE height > 700000",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "The modern chain must be CLOSE to uniform. A parse fault would make it wildly off rather than subtly off, and every pool comparison downstream would then be meaningless."
  },
  "nonce_fits_in_uint32": {
   "sql": "SELECT count(*) = 0 FROM block_nonces WHERE nonce < 0 OR nonce > 4294967295",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "The nonce is a uint32. Anything outside that range is a parse fault."
  },
  "pool_panel_spans_many_years": {
   "sql": "SELECT count(DISTINCT year) >= 10 FROM nonce_by_pool_year",
   "expected": true,
   "observed": true,
   "passed": true,
   "why": "The pool panel must span many years, not only the window where the effect shows. Cherry-picked windows are how weak claims survive."
  }
 },
 "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": "3b0a29af5a1afab79097207922e4439e64b5cd68907741d32655a0474ddbc280"
}