hasCheckpoint

suspend fun hasCheckpoint(address: String): Boolean

True only when BOTH halves of a checkpoint are present — cheaper than loadCheckpoint (no deserialize) for a presence test. A half-written checkpoint reads as absent, forcing a clean genesis sync.