{"format":"receipts-proof/1","hash":"71ff27ab0a197163099f4a6552cf4ee13e146a94c75e85f30a39e700c2b480f0","provider":"demo-bollinger-squeeze","seq":50,"kind":"signal","issued_at":"2026-10-03T05:30:33.465Z","prev":"7bf95dc383eda091e1825cd92ada8b37b4a91687e1162780e25fb164d878fa7f","body":{"issued_at":"2026-10-03T05:30:33.465Z","kind":"signal","nonce":"299288ae3e3eb88cdddeaed41efa76cc","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T05:30:33.465Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"13.936","targets":["14.076","14.145","14.215"]},"prev":"7bf95dc383eda091e1825cd92ada8b37b4a91687e1162780e25fb164d878fa7f","provider":"demo-bollinger-squeeze","seq":50,"v":1},"signer":null,"sig":null,"batch":{"root":"71ff27ab0a197163099f4a6552cf4ee13e146a94c75e85f30a39e700c2b480f0","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T05:31:33.463Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969682},"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"]}