{"format":"receipts-proof/1","hash":"f6b916c59795240b9e928ffcdeaa7aea7a2ba376e8e3b8b4e2eeb92cb7855562","provider":"demo-bollinger-squeeze","seq":6,"kind":"signal","issued_at":"2026-09-25T22:09:27.031Z","prev":"40a7f6d5bed4b0601a294eacb97ed0dd63b90b7633b591b6cfa0d03fd31793e7","body":{"issued_at":"2026-09-25T22:09:27.031Z","kind":"signal","nonce":"2fe8aea534bee4800b82f060ee1d047a","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T22:09:27.031Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"13.844","targets":["13.602","13.481","13.36"]},"prev":"40a7f6d5bed4b0601a294eacb97ed0dd63b90b7633b591b6cfa0d03fd31793e7","provider":"demo-bollinger-squeeze","seq":6,"v":1},"signer":null,"sig":null,"batch":{"root":"f6b916c59795240b9e928ffcdeaa7aea7a2ba376e8e3b8b4e2eeb92cb7855562","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T22:26:50.853Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968596},"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"]}