{"format":"receipts-proof/1","hash":"46176907ef10d81cd7a8c3251e9ffdc973ccc5b26e14d1921e631fc174b400d7","provider":"demo-bollinger-squeeze","seq":66,"kind":"signal","issued_at":"2026-10-04T15:20:41.067Z","prev":"e0524a7cc4c9589039eb3a2337df6f6f87df7e2e41d270e051b346841d208326","body":{"issued_at":"2026-10-04T15:20:41.067Z","kind":"signal","nonce":"ae26e82ab738373319884c16ec557c9a","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T15:20:41.067Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2472","targets":["0.2506","0.2522","0.2539"]},"prev":"e0524a7cc4c9589039eb3a2337df6f6f87df7e2e41d270e051b346841d208326","provider":"demo-bollinger-squeeze","seq":66,"v":1},"signer":null,"sig":null,"batch":{"root":"0e90445ae3bfb562c35585a8f9b9b77a96969f54fbafe73f53af4b43a5eac8f8","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"e0524a7cc4c9589039eb3a2337df6f6f87df7e2e41d270e051b346841d208326"}],"sealed_at":"2026-10-04T15:28:50.231Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969867},"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"]}