{"format":"receipts-proof/1","hash":"230b0fb33ac9240ac06f93185e1b25d56b47d03524eba7b1253736a3f1e3097e","provider":"demo-bollinger-squeeze","seq":73,"kind":"signal","issued_at":"2026-10-06T14:33:58.877Z","prev":"4e66c9644d81ad2d45e7f4df1f1d72d22c147c4f600cd7365953194e2a99052d","body":{"issued_at":"2026-10-06T14:33:58.877Z","kind":"signal","nonce":"a796745b88d11e4f7dfad059e659dd91","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T14:33:58.877Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.2757","targets":["0.2697","0.2668","0.2638"]},"prev":"4e66c9644d81ad2d45e7f4df1f1d72d22c147c4f600cd7365953194e2a99052d","provider":"demo-bollinger-squeeze","seq":73,"v":1},"signer":null,"sig":null,"batch":{"root":"230b0fb33ac9240ac06f93185e1b25d56b47d03524eba7b1253736a3f1e3097e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T14:40:03.442Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970187},"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"]}