{
  "entry": {
    "seq": 20169,
    "at": "2026-11-07T15:19:30.900Z",
    "type": "safety.rating",
    "subject": "github:lemomo-ai/lemo-opuscar",
    "payload": {
      "as_of": "2026-11-07T15:10:45.022Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "289e3621ecb21e0e8cc3baca4cf88b6be154727fa166d374445a1c593657ad82",
      "rating_sha256": "ee14d2bf4a658e5cdfbcf2da397c8d7b3df9f8caa6c4474eae06e4e681791835",
      "repo": "lemomo-ai/lemo-opuscar",
      "score": 74,
      "stream": "safety_ratings"
    },
    "payload_hash": "0f67a6ed07d002aab03197c7c38d7ca4bf2a84d4cbe411c91fa7de0bc35dc5e0",
    "leaf_hash": "a5a4b0d0c1e1a92e5218d1e3fbbdf606bd6d5da2f6b30255573f7f78e8eaf54e",
    "block_height": 4370,
    "texts": {},
    "data": {
      "as_of": "2026-11-07T15:10:45.022Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "289e3621ecb21e0e8cc3baca4cf88b6be154727fa166d374445a1c593657ad82",
      "rating_sha256": "ee14d2bf4a658e5cdfbcf2da397c8d7b3df9f8caa6c4474eae06e4e681791835",
      "repo": "lemomo-ai/lemo-opuscar",
      "score": 74,
      "stream": "safety_ratings"
    }
  },
  "status": "sealed",
  "block": {
    "v": 1,
    "height": 4370,
    "prev_hash": "eb936a25438d5a7268b683235c550c403628a8413561bb1c8216be7f742194b9",
    "merkle_root": "dc39b33912bc2c813f66498aaf475153a458d4fd71565dadd1fbf52bdb9da401",
    "first_seq": 20164,
    "last_seq": 20179,
    "entry_count": 16,
    "at": "2026-11-07T15:19:32.614Z",
    "key_id": "key_41eb7b6d1b11968a",
    "block_hash": "055dc6d22212ab3346ed863f9d8c476fc7f690c811e5a551c388eaf8b83e853c",
    "signature": "QXMFq7rYXQPYxiH1EqJS4D1g2YliVatLP/R2EtmJZbgZbXc2YEwQ0bpTFk6u2gNoKJaKSdvmv82zI3+mWVtJBg==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEYWJAvPDwdwiByA4ucuPBAV0jLWwXGgtbZqbyrLNMiM=\n-----END PUBLIC KEY-----\n"
  },
  "proof": {
    "leaf_hash": "a5a4b0d0c1e1a92e5218d1e3fbbdf606bd6d5da2f6b30255573f7f78e8eaf54e",
    "index": 5,
    "path": [
      {
        "side": "L",
        "hash": "7e9dbe05cd88c2b3ddec8200e35b7696697b234d37a4c82cb851faad8bd34e87"
      },
      {
        "side": "R",
        "hash": "40c8408e045a2d73f9e40e2eaf98b472a52ad65c55311e23902d58ca36d091a5"
      },
      {
        "side": "L",
        "hash": "ba2b649fc13bc184a2e81909517f92d42b6d8e71f766588a81647f67279b5256"
      },
      {
        "side": "R",
        "hash": "df7f631e4f950886ef205596520194c0d74e24714bf2ab039b6c1819a8aef85c"
      }
    ],
    "merkle_root": "dc39b33912bc2c813f66498aaf475153a458d4fd71565dadd1fbf52bdb9da401",
    "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": 1,
    "required": 2,
    "finalized_through": null,
    "bitcoin": {
      "anchored": true,
      "block_height": 974947,
      "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."
  }
}