{"format":"receipts-proof/1","hash":"e812650f67be10b853c575b14ca8295c7f3b5e8e58864e7251b4513088e3cf95","provider":"demo-bollinger-squeeze","seq":113,"kind":"signal","issued_at":"2026-10-14T03:45:18.884Z","prev":"bec91b8137b3897311cf4a15c99bb9f66c58c456e74623e351b971c3f6f0c596","body":{"issued_at":"2026-10-14T03:45:18.884Z","kind":"signal","nonce":"528dd026378ba25732eb282b64c8e55d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T03:45:18.884Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.08462","targets":["0.08552","0.08598","0.08643"]},"prev":"bec91b8137b3897311cf4a15c99bb9f66c58c456e74623e351b971c3f6f0c596","provider":"demo-bollinger-squeeze","seq":113,"v":1},"signer":null,"sig":null,"batch":{"root":"04fafb44bb5207ab7ce0f072f7ceb51b7826b8c29a9fedc5ec18f4f9c008d70c","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"bec91b8137b3897311cf4a15c99bb9f66c58c456e74623e351b971c3f6f0c596"}],"sealed_at":"2026-10-14T03:51:18.953Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971348},"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"]}