{"format":"receipts-proof/1","hash":"f2394ec53349e02b0c2a382d87f755c48185648ca4afbe88e66b6d98df4b44ec","provider":"demo-bollinger-squeeze","seq":71,"kind":"signal","issued_at":"2026-10-05T20:30:01.441Z","prev":"4163dce451e5107f45612d6982bfdc0c7ceeccf0a76ed1ae2b98bf97a1160daf","body":{"issued_at":"2026-10-05T20:30:01.441Z","kind":"signal","nonce":"99d55995b24d3ade121418eafaeb53da","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T20:30:01.441Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2664","targets":["0.27","0.2718","0.2736"]},"prev":"4163dce451e5107f45612d6982bfdc0c7ceeccf0a76ed1ae2b98bf97a1160daf","provider":"demo-bollinger-squeeze","seq":71,"v":1},"signer":null,"sig":null,"batch":{"root":"bd87ec63dcff956f96c0c26fd0018dde70cd5bc5519336556d383746ca487fd9","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"f59aaa36a042e21934c53ccd4a65e17ba420f5493b6606361f589d370d0bfcf7"}],"sealed_at":"2026-10-05T20:30:58.706Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970078},"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"]}