{"format":"receipts-proof/1","hash":"4ec164d592c7ee5b87ce4baa262cf9b86840f28ec136b07a6559bf60798de436","provider":"demo-bollinger-squeeze","seq":64,"kind":"signal","issued_at":"2026-10-04T15:07:47.620Z","prev":"5d81e063bbee573a4527837ba56af2bf537cc18f50440dfe7dcf25be3b73c356","body":{"issued_at":"2026-10-04T15:07:47.620Z","kind":"signal","nonce":"dd3af53034b6d1931d91ae9823f85a13","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T15:07:47.620Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"10.998","targets":["11.092","11.14","11.187"]},"prev":"5d81e063bbee573a4527837ba56af2bf537cc18f50440dfe7dcf25be3b73c356","provider":"demo-bollinger-squeeze","seq":64,"v":1},"signer":null,"sig":null,"batch":{"root":"e51ae2e431f9e0e3012333a37d3d2b1f4227dea83d9f2b0ddba547dac9d3417a","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"881b764f275e9176036bc35ed78c812df262b05f8d4276e9a9b8915cd64ff6c9"}],"sealed_at":"2026-10-04T15:18:43.945Z","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"]}