{"format":"receipts-proof/1","hash":"1e3aeb736711c48841b23c274e29db3b6762ed8f15a4402b07e12b08e7b09890","provider":"demo-bollinger-squeeze","seq":57,"kind":"signal","issued_at":"2026-10-03T23:21:59.493Z","prev":"77c8e84e147c25ba43c050298c7e818966cb13e58a4972736c8e4b403d9aec5e","body":{"issued_at":"2026-10-03T23:21:59.493Z","kind":"signal","nonce":"8394daf6f69a2fb1d250bc65a2c68f4d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T23:21:59.493Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.245","targets":["0.243","0.242","0.2411"]},"prev":"77c8e84e147c25ba43c050298c7e818966cb13e58a4972736c8e4b403d9aec5e","provider":"demo-bollinger-squeeze","seq":57,"v":1},"signer":null,"sig":null,"batch":{"root":"1e3aeb736711c48841b23c274e29db3b6762ed8f15a4402b07e12b08e7b09890","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T23:39:35.162Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969781},"how_to_verify":["hash = sha256(\"receipts/v1\\n\" + canonical_json(body)), keys sorted, no whitespace.","body.prev must equal the hash of the same provider's event seq - 1 (64 zeros for seq 1).","If signer is set: sig must be a valid Ed25519 signature by signer over the UTF-8 bytes of \"receipts/v1/sig\\n\" + hash.","Fold the Merkle proof: node = sha256(0x01 || left || right); the result must equal batch.root.","Decode opentimestamps (base64) to a .ots file, then run: ots upgrade file.ots && ots verify -d <batch.root> file.ots","Or run: node scripts/verify-bundle.mjs bundle.json"]}