{
  "ok": true,
  "module": "ots",
  "version": "1.2",
  "anchor_dir": "/data/anchors",
  "storage_present": true,
  "proof_files_on_disk": 2553,
  "anchor_attempts_recorded": 2555,
  "stamped": 2553,
  "failed": 2,
  "first_attempt": "2026-07-25T13:37:56Z",
  "last_attempt": "2026-10-04T11:38:38Z",
  "latest_proof": {
    "stamp_id": "1791113918",
    "tip": "c1265cdbbecf571dc9da4a8144dc8a1c11fc8ba61b41d183a768787aaf61299a",
    "stamped_at": "2026-10-04T11:38:38Z",
    "state": "pending",
    "bitcoin_block_heights": [],
    "pending_calendars": [
      "https://alice.btc.calendar.opentimestamps.org",
      "https://bob.btc.calendar.opentimestamps.org"
    ],
    "means": "A calendar has accepted this digest and promised to commit it to Bitcoin. NOT yet evidence of anything on chain. Upgrade it once the transaction confirms.",
    "read_error": null
  },
  "auto_upgrade": {
    "enabled": true,
    "running": true,
    "every_seconds": 3600,
    "batch_size": 20,
    "skips_proofs_under_hours": 3,
    "runs": 111,
    "last_run": "2026-10-04T11:40:15Z",
    "last_result": {
      "examined": 1,
      "upgraded": 1,
      "newly_confirmed": 1,
      "still_pending": 0,
      "errors": 0
    },
    "upgraded_since_start": 118,
    "newly_confirmed_since_start": 118,
    "confirmed_seen": 2550,
    "pending_eligible_now": 0,
    "note": "Each run takes half its batch from the newest proofs and half from the oldest, skipping proofs already confirmed. The calendars are free infrastructure run by volunteers, so a backlog clears over days rather than minutes. Nothing is lost by a proof staying pending longer - the stamp time is already fixed."
  },
  "honest_note": "A proof written at stamping time is PENDING - a promise to commit the digest to Bitcoin, not evidence that it has been. It becomes confirmed only after being upgraded. The auto-upgrade does that on a timer; until a proof is upgraded, pending is what it is."
}