{"format":"receipts-proof/1","hash":"60d3bcccb76d2155fa7309748b96f5c5719f1e39cf01efd053a18081c64918c6","provider":"demo-bollinger-squeeze","seq":85,"kind":"signal","issued_at":"2026-10-10T07:50:03.247Z","prev":"097837bcb52f3dc793c6d0b907539f0b1c490908199538e587ea894d92d7875f","body":{"issued_at":"2026-10-10T07:50:03.247Z","kind":"signal","nonce":"d713f20aba21271fe7534e1c5a8629a2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T07:50:03.247Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.08633","targets":["0.08567","0.08534","0.08501"]},"prev":"097837bcb52f3dc793c6d0b907539f0b1c490908199538e587ea894d92d7875f","provider":"demo-bollinger-squeeze","seq":85,"v":1},"signer":null,"sig":null,"batch":{"root":"09438ee1ac58ebab0dffc53ccdb74a5946258a988dabbaffbddea6b8bb5a4988","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"a906cab9c3ae9c67bc92ec115a514e29b1bd799005d4e61d43b25fd0929a7c3a"}],"sealed_at":"2026-10-10T08:06:01.929Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970744},"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"]}