{"merkle_status":"retired","retired_note":"The Merkle tree plus OpenTimestamps Bitcoin anchoring was ruled out of implementation on 2026-07-23 (census_daily was never written). /merkle/proof always returns 410. This section is archival documentation only - do NOT build a verifier from it.","record_hash":"sha256(canonical JSON of core). canonical = keys sorted recursively, stable JSON.stringify encoding. Prefix \"sha256:\". THIS PART IS STILL IN FORCE: for the GAUGE signal contract see /gauge/verify (current hash_core_version=3); for AEML-DS offchain capture see /verify.","merkle_archived":{"leaves":"every record_hash for that day, sorted ascending as hex strings","leaf_bytes":"the 32-byte digest of record_hash with the \"sha256:\" prefix stripped","internal":"sha256(left_bytes || right_bytes)","odd":"an odd node duplicates the last one (Bitcoin style)","root":"the apex = daily_hash (the intended OTS stamping target, never actually stamped)"},"verify_flow":"Current self-verification: take the delivered payload -> assemble the canonical core per hash_core_version -> recompute sha256 -> compare against the delivered record_hash; or cross-check with POST /verify or the free GET /gauge/verify?hash=<record_hash>.","offline_verifier":"verify.mjs (single file, zero dependencies). verify-merkle.mjs only ever applied to the retired Merkle layer and is no longer applicable."}