{"format":"receipts-proof/1","hash":"3df3aced9110392f3e6d149f016172cf76bf9c5bcdafc9e5a13649e760ee0680","provider":"demo-bollinger-squeeze","seq":45,"kind":"signal","issued_at":"2026-10-02T10:00:10.775Z","prev":"8bc47fc407c23cbe256cb443e8f595589abcbc3f618b21c2ae68caca7da1602c","body":{"issued_at":"2026-10-02T10:00:10.775Z","kind":"signal","nonce":"85060d2304e70f0ddc501248c605ad00","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T10:00:10.775Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"11.069","targets":["11.235","11.318","11.402"]},"prev":"8bc47fc407c23cbe256cb443e8f595589abcbc3f618b21c2ae68caca7da1602c","provider":"demo-bollinger-squeeze","seq":45,"v":1},"signer":null,"sig":null,"batch":{"root":"f92c1532edf41a2feb874de5350fb527fc4c9359d6aa17553a61905fadba1edb","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"ffbb71c5d5401783b9043c2a1453bd18e23c35a4632a2e4706c5f14cf868b70d"}],"sealed_at":"2026-10-02T10:01:10.773Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969574},"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"]}