{"schema":"VGS-VERIFY-KIT-v1","title":"VeriSigil Independent Verification Kit","version":"1.0","purpose":"Everything needed to independently verify VeriSigil's claims without trusting VeriSigil","public_key":"lJWG0Wabt6uATPu5Upo6UEHWGXQqMyi6LMKQC0xwpY8=","verification_table":{"row_1_signature_validity":{"what_it_proves":"The AO/receipt was not altered post-issuance","method":"Standard offline Ed25519 verification using PyNaCl","endpoint":"GET /v1/proof/signing-diagnostic — no auth, fully worked example","code":"from nacl.signing import VerifyKey; VerifyKey(pub).verify(msg, sig)"},"row_2_custody_bypass":{"what_it_proves":"Actuator cannot operate without a valid AO — custody, not just logging","method":"Attempt to call POST /v1/ao/verify with invalid AO, expired AO, replayed nonce","endpoint":"POST /v1/ao/verify — test with missing ao_id, consumed ao_id, wrong nonce","test_cases":["Submit ao_id that does not exist → expect NOT_FOUND + HALT ruling","Submit ao_id already consumed → expect ALREADY_CONSUMED + HALT ruling","Submit correct ao_id but wrong nonce → expect NONCE_MISMATCH + HALT ruling","Submit correct ao_id after TTL expires → expect EXPIRED + HALT ruling"]},"row_3_threshold_not_forgeable":{"what_it_proves":"CRITICAL actions cannot be authorized by one signer alone","method":"Attempt to complete a threshold session with fewer than k signers","endpoint":"POST /v1/threshold/verify before threshold met → expect THRESHOLD_NOT_MET + HALT","honest_boundary":"Strength depends on genuine independence of signers — verify signer_type"},"row_4_payload_untouched":{"what_it_proves":"The exact authorized payload reached the actuator unmodified","method":"Submit a modified payload to POST /v1/continuity/hop — expect HALT ruling","endpoint":"POST /v1/continuity/hop with wrong payload → hash mismatch detected","test_cases":["Modify any field in the payload and resubmit — hash mismatch should be detected"]},"row_5_consequence_matches_reality":{"what_it_proves":"Real-world outcome matched authorized decision","method":"Independent query of downstream system after execution via POST /v1/consequence/reality","honest_boundary":"Depends on downstream system being independently queryable. May not apply to all action types."},"row_6_model_matches_claim":{"what_it_proves":"The stated invariant is what's actually enforced","method":"Review TLA+ model against stated invariant — pending Phase 7 build","status":"PUBLISHED — ActuatorSpec.tla in repository. NoBypass + NoReplay invariants. Run with TLC to verify."},"row_7_spec_matches_implementation":{"what_it_proves":"Deployed system does what the model says","method":"Independent code audit or spec-derived code generation","status":"PENDING — independent code audit not yet conducted. This is an honest gap."}},"sandbox_key":"vs-sandbox-demo-2026b","base_url":"https://verisigil-api-production.up.railway.app","what_is_verified_now":["Row 1 — Signature validity (CLARA 25/25 confirmed)","Row 2 — Custody bypass (structurally prevented by AO architecture)","Row 4 — Payload continuity (hop-by-hop hash verification)"],"what_is_pending":["Row 3 — Threshold (second signer must be genuinely independent)","Row 5 — Reality (requires downstream system cooperation)","Row 6 — TLA+ model: ActuatorSpec.tla published (NoBypass + NoReplay). Gap: §2, §5-7 primitives not yet formally modeled.","Row 7 — Code audit (not yet conducted)"],"timestamp":"2026-11-06T16:12:56.363791+00:00"}