{"format":"receipts-proof/1","hash":"be5f71cbd76d54cb61c3f8bb47e92fd632cb66112515ea660bfdeb75695f5131","provider":"demo-ema-cross","seq":149,"kind":"signal","issued_at":"2026-10-14T07:00:19.250Z","prev":"207d7af25c9223c06a99ae19f0cc6b383a9808024f8bec2eecd1ca24ce0e0573","body":{"issued_at":"2026-10-14T07:00:19.250Z","kind":"signal","nonce":"09091aeba14d89b2387755376499afd3","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T07:00:19.250Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"83647.6","targets":["82900.3"]},"prev":"207d7af25c9223c06a99ae19f0cc6b383a9808024f8bec2eecd1ca24ce0e0573","provider":"demo-ema-cross","seq":149,"v":1},"signer":null,"sig":null,"batch":{"root":"be5f71cbd76d54cb61c3f8bb47e92fd632cb66112515ea660bfdeb75695f5131","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T07:01:19.274Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971369},"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"]}