{
  "entry": {
    "seq": 3751,
    "at": "2026-10-31T00:39:55.875Z",
    "type": "safety.rating",
    "subject": "github:yetone/magpie",
    "payload": {
      "as_of": "2026-10-31T00:20:10.370Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "1823c85edb66ff95dbf61f54366d6b5da857193c0e552f66a955afae77c15fde",
      "rating_sha256": "e7ab9a03a1c2149c7ee3f290a1b3a4381bdd7def03c0773f5d7e1c92f68c34ec",
      "repo": "yetone/magpie",
      "score": 71,
      "stream": "safety_ratings"
    },
    "payload_hash": "03e6a0bb8466dbdd3bded2a4cbe6c5041bdc098f4314c4d6e0ed12828871290e",
    "leaf_hash": "976bf6e9d0d3d74044f480ed6df609edc3b1c6f26b85fe1f81a6a6b1ba790973",
    "block_height": 1852,
    "texts": {},
    "data": {
      "as_of": "2026-10-31T00:20:10.370Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "1823c85edb66ff95dbf61f54366d6b5da857193c0e552f66a955afae77c15fde",
      "rating_sha256": "e7ab9a03a1c2149c7ee3f290a1b3a4381bdd7def03c0773f5d7e1c92f68c34ec",
      "repo": "yetone/magpie",
      "score": 71,
      "stream": "safety_ratings"
    }
  },
  "status": "sealed",
  "block": {
    "v": 1,
    "height": 1852,
    "prev_hash": "c31fee266c33c1ce108b4ba77a9b194360b41872b7949f128154a07a97c27678",
    "merkle_root": "35e0edab266d689456deb109aaedcfa51e239b1d84c47e56f35737062174efbb",
    "first_seq": 3747,
    "last_seq": 3772,
    "entry_count": 26,
    "at": "2026-10-31T00:39:56.025Z",
    "key_id": "key_41eb7b6d1b11968a",
    "block_hash": "457237f21415ec217a46d73447c6c23a2db85b7a8278df9bcb342da9dcce4e1d",
    "signature": "KKfSWbyeJyXAxiPU64ZHZkJmfW9DHom0KSI8ckxNd2ACQy/n6sLElHQEQm/0YsyWD9j87k4nbXpeAIAwPwnaCw==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEYWJAvPDwdwiByA4ucuPBAV0jLWwXGgtbZqbyrLNMiM=\n-----END PUBLIC KEY-----\n"
  },
  "proof": {
    "leaf_hash": "976bf6e9d0d3d74044f480ed6df609edc3b1c6f26b85fe1f81a6a6b1ba790973",
    "index": 4,
    "path": [
      {
        "side": "R",
        "hash": "a40efaa8ebefe3aa89001395e29f542c8c7a228e2201c2d915b19e5fbfd8ed95"
      },
      {
        "side": "R",
        "hash": "44db12a2ff64b997709c0c2a94311cd52e8c47aab31c408e9f91ee807925ba1f"
      },
      {
        "side": "L",
        "hash": "9764d5a865452958cf8c30848dbb49b3a153f8703d732f7acd548c6cfff3b2cd"
      },
      {
        "side": "R",
        "hash": "5f22632bc023a09a1c1680d53bbe1f805aa5cf6fdae2b5b06855ea323e9a5aba"
      },
      {
        "side": "R",
        "hash": "7ca452ad3a5b05ffad4503e0ec99b41a14080c86d3c96f861e179f48292d8e34"
      }
    ],
    "merkle_root": "35e0edab266d689456deb109aaedcfa51e239b1d84c47e56f35737062174efbb",
    "how_to_verify": "payload_hash = sha256(canonical(payload)); leaf = sha256('leaf:' + canonical({seq, at, type, subject, payload_hash})); fold the path (R: sha256('node:' + acc + hash), L: sha256('node:' + hash + acc)) to merkle_root; verify the Ed25519 signature over canonical(block header)."
  },
  "finality": {
    "state": "bitcoin-anchored",
    "final": false,
    "witnesses": 0,
    "witnesses_confirmed_unaffiliated": 0,
    "witnesses_total": 0,
    "required": 2,
    "finalized_through": null,
    "bitcoin": {
      "anchored": true,
      "block_height": 973901,
      "confirmed_through": 6047
    },
    "states": [
      "recorded",
      "sealed",
      "bitcoin-anchored",
      "witness-quorum",
      "final"
    ],
    "rule": "States climb recorded -> sealed -> bitcoin-anchored -> witness-quorum -> final. A block is final only once its hash is confirmed in Bitcoin AND 2 confirmed-unaffiliated witnesses on distinct registrable domains with distinct keys have cosigned it or any later block; each header commits to every earlier block. Cosignatures from affiliated, unconfirmed, pending or challenged witnesses are public evidence but never count toward quorum. The quorum steps up on a published schedule as confirmed-unaffiliated witnesses grow: 2 required while fewer than 5 are confirmed, 3 at 5, 4 at 10, 6 at 20, 8 at 40. Every tier's requirement sits well below the count that triggers it, so churn is weather, not a freeze; the requirement is recomputed from the live count on every read."
  }
}