{"format":"receipts-proof/1","hash":"f1e5bd5d0b05f2d7841e4440642c6e818d67d0294e70778a5c794643a57f6fd9","provider":"demo-bollinger-squeeze","seq":61,"kind":"signal","issued_at":"2026-10-04T09:57:13.387Z","prev":"3080050ca4a2f01e8b9085bfaeac1debc39b14034264d7c39a104898f57abdc7","body":{"issued_at":"2026-10-04T09:57:13.387Z","kind":"signal","nonce":"2358ea0ce7ce67c3e0f66c6c1f7bbb48","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T09:57:13.387Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"14.051","targets":["14.189","14.258","14.327"]},"prev":"3080050ca4a2f01e8b9085bfaeac1debc39b14034264d7c39a104898f57abdc7","provider":"demo-bollinger-squeeze","seq":61,"v":1},"signer":null,"sig":null,"batch":{"root":"f1e5bd5d0b05f2d7841e4440642c6e818d67d0294e70778a5c794643a57f6fd9","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T10:18:54.951Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969830},"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"]}