{"format":"receipts-proof/1","hash":"a457911c299bc8e560161fac0ea8b7f0de2acfc6919a7ee7bddfb11fc09e2465","provider":"demo-bollinger-squeeze","seq":42,"kind":"signal","issued_at":"2026-10-01T15:45:21.328Z","prev":"2253ce9302e0ab4bfb9a489902832b6d1d8e37bb715840dce6709fa25ef3a939","body":{"issued_at":"2026-10-01T15:45:21.328Z","kind":"signal","nonce":"aff2acb323ca4252a410201803933cd9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T15:45:21.328Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"10.963","targets":["10.721","10.6","10.478"]},"prev":"2253ce9302e0ab4bfb9a489902832b6d1d8e37bb715840dce6709fa25ef3a939","provider":"demo-bollinger-squeeze","seq":42,"v":1},"signer":null,"sig":null,"batch":{"root":"a457911c299bc8e560161fac0ea8b7f0de2acfc6919a7ee7bddfb11fc09e2465","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T15:46:19.945Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969471},"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"]}