{"format":"receipts-proof/1","hash":"1d403459adb89dbad91e7f3438b73ff7f2d54ae32d0a66964498c4bdad0a6199","provider":"demo-bollinger-squeeze","seq":149,"kind":"signal","issued_at":"2026-11-08T13:15:48.723Z","prev":"0c7509f5b7d15de348ec7f5aea61916b0f382d0802350f7654d4d70204ec98d2","body":{"issued_at":"2026-11-08T13:15:48.723Z","kind":"signal","nonce":"1cedf1e90dbedf422c2d7419facdf4a7","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T13:15:48.723Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"8.175","targets":["8.245","8.279","8.314"]},"prev":"0c7509f5b7d15de348ec7f5aea61916b0f382d0802350f7654d4d70204ec98d2","provider":"demo-bollinger-squeeze","seq":149,"v":1},"signer":null,"sig":null,"batch":{"root":"1d403459adb89dbad91e7f3438b73ff7f2d54ae32d0a66964498c4bdad0a6199","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-08T13:16:48.721Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975066},"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"]}