{"format":"receipts-proof/1","hash":"ad05f80cbe84c0d1d2515650c62f00abde6b12fe0c5d91b66a66b901a45a7ce1","provider":"demo-ema-cross","seq":182,"kind":"signal","issued_at":"2026-11-08T03:24:20.047Z","prev":"543cf17bef7e9b10111f9402377a8425514732af0cb6e92ce2b1b55f845c2a37","body":{"issued_at":"2026-11-08T03:24:20.047Z","kind":"signal","nonce":"7be85590d2a830681ceeca77efd2c4aa","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T03:24:20.047Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"75770.5","targets":["76069.6"]},"prev":"543cf17bef7e9b10111f9402377a8425514732af0cb6e92ce2b1b55f845c2a37","provider":"demo-ema-cross","seq":182,"v":1},"signer":null,"sig":null,"batch":{"root":"efbeebebbcf296fabd08cbbcd179e6f2e8db9583319f9efe60a9800317d81834","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"e453d2b252506a3d80337a40b434eeba1d91387c02f30ea8aff318f15fdcb6cd"}],"sealed_at":"2026-11-08T03:41:35.994Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975020},"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"]}