{"format":"receipts-proof/1","hash":"a9597d134acd7dc2d84d55f8c5176ca9d5b0cc90af6aa177accdbaf776608a3d","provider":"demo-bollinger-squeeze","seq":58,"kind":"signal","issued_at":"2026-10-04T03:23:46.800Z","prev":"1e3aeb736711c48841b23c274e29db3b6762ed8f15a4402b07e12b08e7b09890","body":{"issued_at":"2026-10-04T03:23:46.800Z","kind":"signal","nonce":"911cf2da2244be9351faaf4e5e0f1e9a","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T03:23:46.800Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.09285","targets":["0.09235","0.0921","0.09185"]},"prev":"1e3aeb736711c48841b23c274e29db3b6762ed8f15a4402b07e12b08e7b09890","provider":"demo-bollinger-squeeze","seq":58,"v":1},"signer":null,"sig":null,"batch":{"root":"a9597d134acd7dc2d84d55f8c5176ca9d5b0cc90af6aa177accdbaf776608a3d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T03:40:36.486Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969796},"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"]}