{"format":"receipts-proof/1","hash":"77c8e84e147c25ba43c050298c7e818966cb13e58a4972736c8e4b403d9aec5e","provider":"demo-bollinger-squeeze","seq":56,"kind":"signal","issued_at":"2026-10-03T17:15:57.227Z","prev":"bee71d7ec99581e042dfcbeb1acd412e1d86370a76adbb963d783f655cbf0d32","body":{"issued_at":"2026-10-03T17:15:57.227Z","kind":"signal","nonce":"be636b4ad808b788626b5ac558b9f8de","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T17:15:57.227Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2447","targets":["0.2475","0.2489","0.2503"]},"prev":"bee71d7ec99581e042dfcbeb1acd412e1d86370a76adbb963d783f655cbf0d32","provider":"demo-bollinger-squeeze","seq":56,"v":1},"signer":null,"sig":null,"batch":{"root":"77c8e84e147c25ba43c050298c7e818966cb13e58a4972736c8e4b403d9aec5e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T17:16:57.195Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969756},"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"]}