{"format":"receipts-proof/1","hash":"8f4d14bba0977bc5bcf27a85606556965073a0d8c8371efc28eb4eef8aabb241","provider":"demo-bollinger-squeeze","seq":139,"kind":"signal","issued_at":"2026-10-28T08:00:20.146Z","prev":"029770bed17b9e673ad5035d3416948d007d4b5be06dcbe72c7ad9e608945417","body":{"issued_at":"2026-10-28T08:00:20.146Z","kind":"signal","nonce":"265905ecffa2e08b6163c9261b961c59","payload":{"entry":{"type":"market"},"expires_at":"2026-10-29T08:00:20.146Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.07974","targets":["0.08034","0.08063","0.08093"]},"prev":"029770bed17b9e673ad5035d3416948d007d4b5be06dcbe72c7ad9e608945417","provider":"demo-bollinger-squeeze","seq":139,"v":1},"signer":null,"sig":null,"batch":{"root":"8a4164d61716af0b36e4cd26c038de6b4f2a5b2006b2f3590465eb4aea60c20c","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"844554ee4ef34c317a0b00aa4e43b214a7085f693aebdd53d0dc8abed4faa981"}],"sealed_at":"2026-10-28T08:01:18.358Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":973522},"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"]}