{"format":"receipts-proof/1","hash":"962967c5926e34d0656420211b96355e9dbb23d8f312d5199a40be866721150f","provider":"demo-bollinger-squeeze","seq":59,"kind":"signal","issued_at":"2026-10-04T05:53:56.660Z","prev":"a9597d134acd7dc2d84d55f8c5176ca9d5b0cc90af6aa177accdbaf776608a3d","body":{"issued_at":"2026-10-04T05:53:56.660Z","kind":"signal","nonce":"842fc31f5b91e910d312197fcc273643","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T05:53:56.660Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"11.059","targets":["11.133","11.171","11.208"]},"prev":"a9597d134acd7dc2d84d55f8c5176ca9d5b0cc90af6aa177accdbaf776608a3d","provider":"demo-bollinger-squeeze","seq":59,"v":1},"signer":null,"sig":null,"batch":{"root":"962967c5926e34d0656420211b96355e9dbb23d8f312d5199a40be866721150f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T06:12:58.346Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969809},"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"]}