{"format":"receipts-proof/1","hash":"fdeaaf1d7bce38f6c5654e657e45a591b2956e59b990b4ee17cf40c4de0bd5fa","provider":"demo-ema-cross","seq":41,"kind":"signal","issued_at":"2026-09-28T15:00:36.526Z","prev":"46481c4e3372d63bcb2878585fb92f18e6ae5901577d97cecca36159eb334ef1","body":{"issued_at":"2026-09-28T15:00:36.526Z","kind":"signal","nonce":"5358d12931131c7021fa6f4dd8c09ae2","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T15:00:36.526Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"119.19","targets":["115.71"]},"prev":"46481c4e3372d63bcb2878585fb92f18e6ae5901577d97cecca36159eb334ef1","provider":"demo-ema-cross","seq":41,"v":1},"signer":null,"sig":null,"batch":{"root":"fdeaaf1d7bce38f6c5654e657e45a591b2956e59b990b4ee17cf40c4de0bd5fa","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-28T15:01:26.514Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969015},"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"]}