{"format":"receipts-proof/1","hash":"1bdcf433a6cde2cbe9a8d52717c9a9b61c13c4034c953983ac622a5779b48359","provider":"demo-ema-cross","seq":194,"kind":"signal","issued_at":"2026-11-09T12:15:53.573Z","prev":"5df125e74be71ba85c538dd8dc140c1f5c405b8627d1428ce00c2f84de0b8b02","body":{"issued_at":"2026-11-09T12:15:53.573Z","kind":"signal","nonce":"ba6354fe85372d9a711306c9e5781adf","payload":{"entry":{"type":"market"},"expires_at":"2026-11-10T12:15:53.573Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"74102.8","targets":["75311.9"]},"prev":"5df125e74be71ba85c538dd8dc140c1f5c405b8627d1428ce00c2f84de0b8b02","provider":"demo-ema-cross","seq":194,"v":1},"signer":null,"sig":null,"batch":{"root":"1bdcf433a6cde2cbe9a8d52717c9a9b61c13c4034c953983ac622a5779b48359","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-09T12:16:49.342Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975177},"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"]}