{"format":"receipts-proof/1","hash":"4627e2561ac2a67502a45798015dd1e4469ae8d2be792128cfdbafd1f0a5e829","provider":"demo-bollinger-squeeze","seq":51,"kind":"signal","issued_at":"2026-10-03T07:45:07.180Z","prev":"71ff27ab0a197163099f4a6552cf4ee13e146a94c75e85f30a39e700c2b480f0","body":{"issued_at":"2026-10-03T07:45:07.180Z","kind":"signal","nonce":"ef38a9016a20cc228c34c860675412a9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T07:45:07.180Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.2453","targets":["0.2421","0.2405","0.239"]},"prev":"71ff27ab0a197163099f4a6552cf4ee13e146a94c75e85f30a39e700c2b480f0","provider":"demo-bollinger-squeeze","seq":51,"v":1},"signer":null,"sig":null,"batch":{"root":"f5597ce8ae10dd3f9615a4bd82556633d4dd5344930cb2eae4ad93a268649c4b","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"77bfe71243fae8594b7f741b435c0b61c574b4e6558249747f5d1a75fe5dd026"}],"sealed_at":"2026-10-03T07:46:07.179Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969704},"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"]}