{"format":"receipts-proof/1","hash":"5dbf9eb21143bfeacbe46d5e8e80232f4b47bfbe7258ee728889bbf426f75006","provider":"demo-bollinger-squeeze","seq":40,"kind":"signal","issued_at":"2026-09-30T22:45:22.348Z","prev":"2f1a869a8dbea5d026c8c228294cc20edb236aef6b19b63f60674f4b45f1fd03","body":{"issued_at":"2026-09-30T22:45:22.348Z","kind":"signal","nonce":"4b82cbef0ea9c88667a4a3f427a8f68c","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T22:45:22.348Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.09416","targets":["0.09528","0.09584","0.0964"]},"prev":"2f1a869a8dbea5d026c8c228294cc20edb236aef6b19b63f60674f4b45f1fd03","provider":"demo-bollinger-squeeze","seq":40,"v":1},"signer":null,"sig":null,"batch":{"root":"5dbf9eb21143bfeacbe46d5e8e80232f4b47bfbe7258ee728889bbf426f75006","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T22:46:20.273Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969361},"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"]}