{"format":"receipts-proof/1","hash":"cf054f50899f291716f7fe5e0d5b8dc596276b6a6f1dbd084a774296da0beb30","provider":"demo-bollinger-squeeze","seq":37,"kind":"signal","issued_at":"2026-09-29T20:15:32.205Z","prev":"b2d16ea5244d9eebd4474375758128582a1a3b8f74f449ba6ec6bbaf380ebb60","body":{"issued_at":"2026-09-29T20:15:32.205Z","kind":"signal","nonce":"82dbcc167ad51fc3d4cea93dc0691f3b","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T20:15:32.205Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"11.282","targets":["11.558","11.697","11.835"]},"prev":"b2d16ea5244d9eebd4474375758128582a1a3b8f74f449ba6ec6bbaf380ebb60","provider":"demo-bollinger-squeeze","seq":37,"v":1},"signer":null,"sig":null,"batch":{"root":"ee2436bfe8b4d40c9144b571ca5ce101adfea181c81fce454e7012861b4a0f1c","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"6ed22a03d4520e688a930cbfce1a258f57cdc65a6bae304f1faed83d2d8894fc"}],"sealed_at":"2026-09-29T20:16:22.209Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969197},"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"]}