{"format":"receipts-proof/1","hash":"9cb8b5376dd2278514de32d1b1a5a25c888962d5e2b8e260c86cea1c83940a53","provider":"demo-ema-cross","seq":92,"kind":"signal","issued_at":"2026-10-05T14:00:01.180Z","prev":"97f91cd8c7844a5fea33e09ec184bb851f18c7a21f1f149604c741a55a43f7f0","body":{"issued_at":"2026-10-05T14:00:01.180Z","kind":"signal","nonce":"92dd8b82ee751c7bc88f5ae999cdf00f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T14:00:01.180Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"86031.3","targets":["87088.8"]},"prev":"97f91cd8c7844a5fea33e09ec184bb851f18c7a21f1f149604c741a55a43f7f0","provider":"demo-ema-cross","seq":92,"v":1},"signer":null,"sig":null,"batch":{"root":"9cb8b5376dd2278514de32d1b1a5a25c888962d5e2b8e260c86cea1c83940a53","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T14:00:57.599Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970035},"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"]}