{"format":"receipts-proof/1","hash":"5d81e063bbee573a4527837ba56af2bf537cc18f50440dfe7dcf25be3b73c356","provider":"demo-bollinger-squeeze","seq":63,"kind":"signal","issued_at":"2026-10-04T14:56:20.439Z","prev":"28b42d5007dc1a77ea4f67aae94dd185e8ccb2d9d123997887d6ee695861d755","body":{"issued_at":"2026-10-04T14:56:20.439Z","kind":"signal","nonce":"11b32ecffe189853b5a8815beefc9951","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T14:56:20.439Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.09338","targets":["0.0941","0.09446","0.09482"]},"prev":"28b42d5007dc1a77ea4f67aae94dd185e8ccb2d9d123997887d6ee695861d755","provider":"demo-bollinger-squeeze","seq":63,"v":1},"signer":null,"sig":null,"batch":{"root":"5d81e063bbee573a4527837ba56af2bf537cc18f50440dfe7dcf25be3b73c356","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T15:07:47.613Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969867},"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"]}