{
  "version": "1.0",
  "proof_id": "mrb_df3dc402b18f43da",
  "created_at": "2026-04-19 17:32:43",
  "status": "logged",
  "mode": "hash-only",
  "payload_hash": "96a7456ed05aa24d37b9155d8cba2a4897c803ab40d31497aa04045806fedb25",
  "content": "",
  "entry_id": "e7cca380-c199-48a4-81de-1d428599dae8",
  "timeline_id": "822a3f75-c743-4b37-8c98-9ab3bf022145",
  "sequence_number": 859,
  "canonicalization": {
    "schema": "canonical_payload_v1",
    "schema_version": "1",
    "kind": "ai_interaction",
    "fields": [
      "schema_version",
      "kind",
      "input",
      "output",
      "timestamp"
    ],
    "template": {
      "schema_version": "1",
      "kind": "ai_interaction",
      "timestamp": "2026-04-19T15:35:00Z"
    }
  },
  "inclusion_bundle": {
    "bundle_version": 1,
    "proof_id": "2d19ea58-a02c-4aa8-9d35-d60e27728864",
    "proof_type": "inclusion",
    "timeline_id": "822a3f75-c743-4b37-8c98-9ab3bf022145",
    "entry": {
      "entry_id": "e7cca380-c199-48a4-81de-1d428599dae8",
      "sequence_number": 859,
      "payload_hash": "96a7456ed05aa24d37b9155d8cba2a4897c803ab40d31497aa04045806fedb25",
      "timestamp": "2026-04-19T17:32:29.675Z",
      "prev_entry_hash": "8eaf9305dc1a045ff6eeea809d3cb21271fb3af7bafddd4365eb6875154c14b5"
    },
    "leaf_hash": "4d02ed33b520891974f59d710400b6a94d5c4a9d031069f1826be871a7137313",
    "merkle_root": "55f62c8acea2044856b8371227160c58c495fb34d5942e6899125dd1b454ba54",
    "tree_size": 860,
    "merkle_path": [
      {
        "position": "left",
        "hash": "8eaf9305dc1a045ff6eeea809d3cb21271fb3af7bafddd4365eb6875154c14b5"
      },
      {
        "position": "left",
        "hash": "e0d448e0d620886a3676dfce0fb5e98aa3ed3d7aa284b9e641b802296a1e1cb9"
      },
      {
        "position": "promoted",
        "hash": null
      },
      {
        "position": "left",
        "hash": "e104d357c34e0ad6207729ab86b8f7b1164db1287f9377887371d5b84bd036f8"
      },
      {
        "position": "left",
        "hash": "9e59f9f01f28cc241f01e2f1fa4b5163d77b091241480a36dfcfbf1bada312a2"
      },
      {
        "position": "promoted",
        "hash": null
      },
      {
        "position": "left",
        "hash": "57af2cf5d5bd99f44f7f1b73cbbe69d3347232b79ed0a685071b7cfffe087979"
      },
      {
        "position": "promoted",
        "hash": null
      },
      {
        "position": "left",
        "hash": "1a397e19e07c45ab5b365c7ba46bcf551fc8bb5487ec573224f44fc5f4f51574"
      },
      {
        "position": "left",
        "hash": "667026da2dc10e67dec4e193446d45f8911b99c8616412b1c5d99bf73f996e90"
      }
    ],
    "hash_algorithm": "sha256",
    "domain_separator_leaf": "checkpoint.leaf.v1:",
    "domain_separator_node": "checkpoint.node.v1:",
    "verification_instructions": "To verify: 1. Recompute leaf_hash from entry fields using SHA-256 with the leaf domain separator. 2. Walk the merkle_path from leaf to root, hashing with the node domain separator. 3. Compare the result to merkle_root. If equal, the entry is proven to be included."
  },
  "checkpoint": {
    "sequence": 79,
    "timestamp": "2026-04-19T17:32:43.297Z",
    "state_hash": "475f1693c4e029e2662499b4eff4a406dbfe76b11cee9e8f177a59ea9bd0f455",
    "prev_checkpoint_hash": "9f2b589ef5c6aa31cd16a35fcef0105835da8c455a4233e5b3a62fa34faae60f",
    "checkpoint_hash": "182b15ab1c0e80040f962e65e6f7eeb566864d4a3f929f3fc534c7a4eee25bc3",
    "signature": "e6b3c8373e0827d5808ca5f9a25e49c56d8d42d2cfa1b82e0ef639be1e55899e68f3e0f02ed3ab6e953a050190f470a5cf465125e80439240c63e43285938603",
    "timeline_count": 1,
    "entry_count": 860
  },
  "signature_verification": {
    "algorithm": "Ed25519",
    "public_key": {
      "algorithm": "Ed25519",
      "format": "spki-der-base64",
      "value": "MCowBQYDK2VwAyEAFgMJXnK9tln3ufB7rxC3RYXgF08dhkvBjnM1RmbMlwY="
    },
    "signed_field": "checkpoint_hash",
    "signature_format": "hex",
    "note": "Verify: Ed25519.verify(signature, checkpoint_hash_bytes, public_key) where public_key is loaded from spki-der-base64 value."
  },
  "verification_instructions": "To verify this proof offline without contacting MARBLE or Immutal: 1. Validate payload_hash matches your canonicalized payload (see canonicalization block). 2. Reconstruct leaf_hash from inclusion_bundle.entry using SHA-256 with domain_separator_leaf. 3. Walk inclusion_bundle.merkle_path from leaf to root (skip 'promoted' nodes) using domain_separator_node. Compare result to inclusion_bundle.merkle_root. 4. Recompose state_hash: SHA-256('checkpoint.state.v1:' || for each (timeline_id, merkle_root) sorted by timeline_id: timeline_id + ':' + merkle_root + ';'). 5. Recompose checkpoint_hash: SHA-256('checkpoint.commit.v1:' || sequence_as_uint64_BE || timestamp || state_hash || prev_checkpoint_hash). 6. Compare computed checkpoint_hash to checkpoint.checkpoint_hash. 7. Verify Ed25519 signature: checkpoint.signature over checkpoint_hash using signature_verification.public_key. If all steps succeed, the proof is cryptographically authentic and independently verifiable."
}