{"format":"receipts-proof/1","hash":"80a0abd0b0625905d410144b3814621ee9abc7864fd1a30cc05a6f4afdda60b0","provider":"demo-bollinger-squeeze","seq":69,"kind":"signal","issued_at":"2026-10-05T14:45:01.233Z","prev":"35a492237149bf69a3b4a7aaccd2339693dbd911bc2bdb5612d62b4f2d8585dd","body":{"issued_at":"2026-10-05T14:45:01.233Z","kind":"signal","nonce":"fd6d7f01a39de5e2f29e5c9666dfa03e","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T14:45:01.233Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.09594","targets":["0.09458","0.09389","0.09321"]},"prev":"35a492237149bf69a3b4a7aaccd2339693dbd911bc2bdb5612d62b4f2d8585dd","provider":"demo-bollinger-squeeze","seq":69,"v":1},"signer":null,"sig":null,"batch":{"root":"eae7f906567484b051aaab40e728b6b6bdcbad19a1203a6bf9063557da4a77fb","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"1d4fda17ae0a3be6ab5ebe7548a126cfd075756586de5d4e43e87429eef61297"}],"sealed_at":"2026-10-05T14:51:57.662Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970041},"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"]}