{"schema":"apex-receipt-verification/1","found":true,"receipt_id":"2cc28be88c283ccfbbd5d6af696ee7f0e486a5083c512c5e9ebe2a8b78b86db1","cite_as":"Validated via Apex (smartapex.uk) strategy-gatekeeper - receipt: https://api.smartapex.uk/v1/receipts/2cc28be88c283ccfbbd5d6af696ee7f0e486a5083c512c5e9ebe2a8b78b86db1","card_id":"card_strategy_gatekeeper","tool_id":"strategy-gatekeeper","issued_at":"2026-08-24T16:46:28.540Z","review_submitted":false,"hashes":{"input_sha256":"d43693dbfbbe552635dfd695bec64c091ddbe97402755329b38454c22c650b60","output_sha256":"a98e364dc8e7b84401fbd0c9a63ec9d51d7ceb40e2a5824bea15eb210d88cb25","wrapper_ref_sha256":"e8f1762a8f36474ec98c94e5e1e40de7de2580a04e40c16c49550f34bd21a787"},"how_to_verify":"Recompute sha256(canonicalJson(input_body)) and sha256(canonicalJson(tool_output)) and compare with hashes above. tool_output = the full /run response minus its verification_receipt, usage_feedback, and cite_as fields. canonicalJson = sorted keys, undefined dropped. Match = that exact data went through this bounded Apex wrapper at issued_at. Working code: https://github.com/mickeyappol-create/apex-agent-client","card":"/v1/cards/card_strategy_gatekeeper","note":"Proves a bounded read-only wrapper run was recorded. Does not prove the claim built on top of it, and never releases source."}