{"format":"receipts-proof/1","hash":"c622031a947d8ed785ce98d92661dbf978c1dc5332eb18ec852444c13199e3b4","provider":"demo-bollinger-squeeze","seq":7,"kind":"signal","issued_at":"2026-09-25T23:22:23.831Z","prev":"f6b916c59795240b9e928ffcdeaa7aea7a2ba376e8e3b8b4e2eeb92cb7855562","body":{"issued_at":"2026-09-25T23:22:23.831Z","kind":"signal","nonce":"6a9860a13c4fc900a659b3cef45da26f","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T23:22:23.831Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2559","targets":["0.2611","0.2637","0.2663"]},"prev":"f6b916c59795240b9e928ffcdeaa7aea7a2ba376e8e3b8b4e2eeb92cb7855562","provider":"demo-bollinger-squeeze","seq":7,"v":1},"signer":null,"sig":null,"batch":{"root":"c622031a947d8ed785ce98d92661dbf978c1dc5332eb18ec852444c13199e3b4","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T23:24:02.082Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968598},"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"]}