{"format":"receipts-proof/1","hash":"dcf82ed0f6283d12a8824b5e3ede836ade45c13b6bf3d767c8ad1c9f402d0201","provider":"demo-ema-cross","seq":107,"kind":"signal","issued_at":"2026-10-09T13:45:50.951Z","prev":"8a57dcf56189c6c23291215401e3540c5a0f7c1776337fae79baa920cf0c9487","body":{"issued_at":"2026-10-09T13:45:50.951Z","kind":"signal","nonce":"f64416db55ce5aee722688589fb07026","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T13:45:50.951Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"110.25","targets":["107.54"]},"prev":"8a57dcf56189c6c23291215401e3540c5a0f7c1776337fae79baa920cf0c9487","provider":"demo-ema-cross","seq":107,"v":1},"signer":null,"sig":null,"batch":{"root":"dcf82ed0f6283d12a8824b5e3ede836ade45c13b6bf3d767c8ad1c9f402d0201","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-09T13:46:50.987Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970641},"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"]}