{
  "entry": {
    "seq": 35,
    "at": "2026-11-06T22:14:47.847Z",
    "type": "safety.rating",
    "subject": "github:modelcontextprotocol/servers",
    "payload": {
      "as_of": "2026-10-31T00:22:39.482Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "93e4cefed28f7c14f93861a3c43204030de4aeb99c58a40fe760f61469797cec",
      "rating_sha256": "16fc0aa845f1edb3d48ca170df5759a870acb6065d07c08964a9468c95fc5fee",
      "repo": "modelcontextprotocol/servers",
      "score": 73,
      "stream": "safety_ratings"
    },
    "payload_hash": "2947f2102f22abc5fa67f53368ee7dada414deacb63930078fd2ab244ecb19d0",
    "leaf_hash": "9f7ee6b128d7d693f87db4be6be63d57bddd84591b8d593a5b2e621406ba22bb",
    "block_height": 1,
    "texts": {},
    "data": {
      "as_of": "2026-10-31T00:22:39.482Z",
      "band": "Good public signals",
      "check_version": "rs-safety-checks-1.0",
      "evidence_sha256": "93e4cefed28f7c14f93861a3c43204030de4aeb99c58a40fe760f61469797cec",
      "rating_sha256": "16fc0aa845f1edb3d48ca170df5759a870acb6065d07c08964a9468c95fc5fee",
      "repo": "modelcontextprotocol/servers",
      "score": 73,
      "stream": "safety_ratings"
    }
  },
  "status": "sealed",
  "block": {
    "v": 1,
    "height": 1,
    "prev_hash": "0aad1605bfe10fe1370da1ff6dd97a95d382b04e66c402ea3a32bb94016c41a7",
    "merkle_root": "a78e76bde5f29963718039cdf9f5142ae76de07e663e5df36ec649c5bfe3b27a",
    "first_seq": 12,
    "last_seq": 45,
    "entry_count": 34,
    "at": "2026-11-06T22:14:47.898Z",
    "key_id": "key_a521921c2ba20669",
    "block_hash": "6f4e1751e75bebf58a757bda61b5d8ff16494ca039a753b47ece4e024eae74de",
    "signature": "nm+c7ffBApJUwbZAJaLV/PBrCzouUHgifr93wJiG+aj3wX+8YwYbtop8juVr2IppYzNahW1mv7AmhfSd37XMDg==",
    "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAinQBNSxd0YmodQg1YCzttE4X9fNtHXqIrSGUWsEHblA=\n-----END PUBLIC KEY-----\n"
  },
  "proof": {
    "leaf_hash": "9f7ee6b128d7d693f87db4be6be63d57bddd84591b8d593a5b2e621406ba22bb",
    "index": 23,
    "path": [
      {
        "side": "L",
        "hash": "0ee5133dd5295a7cb947c21ef949bf2af2883d2ea53ce48b27cd2da762e086fc"
      },
      {
        "side": "L",
        "hash": "3c0e688fad447037a3a288aa8c0bb4a92d28193decbdf319092750cb0b28cb39"
      },
      {
        "side": "L",
        "hash": "751388efbd8775ff3ff554305d45c8a5e7d4cae3c00c0528dea980c2cecb6508"
      },
      {
        "side": "R",
        "hash": "208bc3f1ec31e08a93a81b0835d642efe302339073222d6c74c0f60fb1ba152c"
      },
      {
        "side": "L",
        "hash": "331c04861383afb044e6acced28add6078d8995ad0ff9262111427ecf97f4aab"
      },
      {
        "side": "R",
        "hash": "8298e4e9911edf5e5c71b683076e6fc99fb313cb6d79e84670621708e200bf27"
      }
    ],
    "merkle_root": "a78e76bde5f29963718039cdf9f5142ae76de07e663e5df36ec649c5bfe3b27a",
    "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": 974874,
      "confirmed_through": 540
    },
    "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."
  },
  "next": {
    "action": "record_this_verification",
    "label": "Record that you verified this — one record_action call turns this check into a sealed receipt your principal can re-check",
    "why": "A verification proves the record at the moment you checked it, but leaves no evidence you checked. A record is the evidence that survives the session: signed, on the public ledger, and free to verify forever.",
    "needs": "principal_consent",
    "tool": "record_action",
    "mcp": "POST https://www.a2ally.com/mcp (tools/call record_action)",
    "arguments": {
      "action_type": "ledger.verified",
      "summary": "Verified a2ally ledger entry 35",
      "tags": [
        "ledger_entry:35"
      ],
      "accept_terms": true
    },
    "signup": "https://www.a2ally.com/#account",
    "pricing": "https://www.a2ally.com/pricing"
  }
}