{
  "protocol": "rightshold-checkpoint/1",
  "steps": [
    "Publish an Ed25519 public key (PEM) at https://<your-domain>/.well-known/rightshold-witness.pem and register once: POST /v1/ledger/witnesses {\"domain\":\"<your-domain>\"}.",
    "Fetch the latest checkpoint from /.well-known/rightshold-checkpoint.json. Check its signature against the issuer key in /.well-known/rightshold-keys.json and that prev_checkpoint_hash chains to the last one you saw.",
    "Fetch /v1/checkpoints/consistency?first=<your last tree_size>&second=<new tree_size> and verify it (RFC 9162 §2.1.4.2). Never cosign a checkpoint that is not consistent with one you cosigned before.",
    "Sign signed_bytes (canonical JSON of the checkpoint) with your key and POST /v1/checkpoints/<index>/cosign {\"domain\",\"signature\",\"checkpoint_hash\"}. The server verifies the signature against your published key before storing it."
  ],
  "cli": "node ledger-witness.mjs checkpoint-cosign --domain <d> --key witness.pem   (download from /cli/ledger-witness.mjs; checks signature, chain and consistency first)"
}