{"format":"receipts-proof/1","hash":"db1ebe61b755c91f6fbe8c457ddfe80bb698e8c224e972e59acb4b328198e2fc","provider":"demo-bollinger-squeeze","seq":8,"kind":"signal","issued_at":"2026-09-25T23:43:59.712Z","prev":"c622031a947d8ed785ce98d92661dbf978c1dc5332eb18ec852444c13199e3b4","body":{"issued_at":"2026-09-25T23:43:59.712Z","kind":"signal","nonce":"eb03e18a7b2caf0602b24819f7692976","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T23:43:59.712Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"10.548","targets":["10.778","10.893","11.007"]},"prev":"c622031a947d8ed785ce98d92661dbf978c1dc5332eb18ec852444c13199e3b4","provider":"demo-bollinger-squeeze","seq":8,"v":1},"signer":null,"sig":null,"batch":{"root":"db1ebe61b755c91f6fbe8c457ddfe80bb698e8c224e972e59acb4b328198e2fc","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T23:59:30.093Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968608},"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"]}