{"format":"receipts-proof/1","hash":"0c33cb78f1468919d0ff1596f0517a9972b467e8286b6e4934965e6e5f8d1830","provider":"demo-bollinger-squeeze","seq":145,"kind":"signal","issued_at":"2026-11-08T09:15:02.280Z","prev":"88a33e2c17dc0d56f71e6a116a01267e148515d1438b1cde5a506ead8a88afae","body":{"issued_at":"2026-11-08T09:15:02.280Z","kind":"signal","nonce":"368527926efc7f3b50e379c6f7e2670f","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T09:15:02.280Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"8.175","targets":["8.119","8.092","8.064"]},"prev":"88a33e2c17dc0d56f71e6a116a01267e148515d1438b1cde5a506ead8a88afae","provider":"demo-bollinger-squeeze","seq":145,"v":1},"signer":null,"sig":null,"batch":{"root":"63102f60c5ff698427c1c911d10fca80f7583bd2a3b037c27da6de0fac09eba4","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"270bf2903b0faf5a9d1c1a3ebfcda4e6e39940c0519a8b2b6c737dad2dcfb3c5"}],"sealed_at":"2026-11-08T09:16:02.267Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975049},"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"]}