{"format":"receipts-proof/1","hash":"860e5d8d5aa3399bb7dcb81ac06a692f19d94768fe70145d7dc11302e5335c22","provider":"demo-bollinger-squeeze","seq":54,"kind":"signal","issued_at":"2026-10-03T12:45:56.848Z","prev":"32311d69ed43720658b117a75e35c49c56ac621933d463655c22ad913c52b6ce","body":{"issued_at":"2026-10-03T12:45:56.848Z","kind":"signal","nonce":"3c20ac605eafe9b447661119d06cbd5d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T12:45:56.848Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"13.888","targets":["13.786","13.736","13.685"]},"prev":"32311d69ed43720658b117a75e35c49c56ac621933d463655c22ad913c52b6ce","provider":"demo-bollinger-squeeze","seq":54,"v":1},"signer":null,"sig":null,"batch":{"root":"b936e7ae06a17201dcfc0e2d6f9862a3a2efcde0a6cb1c3cd104ff39371d54da","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"c42899eba597ff15d4677dfec77fb56318c408989118c3a634da20dbd90c4dac"}],"sealed_at":"2026-10-03T12:46:56.781Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969734},"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"]}