{
  "ok": true,
  "module": "ots",
  "version": "1.0",
  "anchor_dir": "/data/anchors",
  "storage_present": true,
  "proof_files_on_disk": 855,
  "anchor_attempts_recorded": 857,
  "stamped": 855,
  "failed": 2,
  "first_attempt": "2026-07-25T13:37:56Z",
  "last_attempt": "2026-08-19T23:50:16Z",
  "latest_proof": {
    "stamp_id": "1787183416",
    "tip": "e509e3d3763ee29810a160476d09937dfc0086475698145ceee247216bdc9acf",
    "stamped_at": "2026-08-19T23:50:16Z",
    "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": 0,
    "last_run": null,
    "last_result": null,
    "upgraded_since_start": 0,
    "confirmed_since_start": 0,
    "eligible_now": 852,
    "note": "Runs oldest first in small batches. 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. anchor.py never upgraded; POST /x/ots/upgrade does. Until then, pending is what these are."
}