{"name":"Agent Embassy receipt signer","signer":"0xA2168a05161C5B982ec7E96b2b55c08f98d3a506","scheme":"eip191-personal-sign","signs":"sha256(canonical_receipt_json)","canonicalization":"JSON with sorted keys, excluding the entire proof stage (it is metadata about the signing). Encode the canonical JSON as raw UTF-8 — do not escape non-ASCII characters (e.g. Python json.dumps ensure_ascii=True breaks the hash).","verify":"recompute sha256(canonical receipt), ecrecover(signature), compare to signer","canonical_bytes":"GET /verify/:receiptId/canonical serves the exact signed bytes — hash them directly, no canonicalization to reconstruct","proof_envelope":"GET /verify/:receiptId/proof.json serves the masked public proof: claim + verdict + crypto envelope + payment, never check internals","key_separation":"Dedicated receipt-signing key. Cannot move funds."}