{"format":"receipts-proof/1","hash":"1098b2fe264840e8c18f23190fbabff467cdd72978b922a2f1e7dcde6ab26c08","provider":"demo-ema-cross","seq":26,"kind":"signal","issued_at":"2026-09-26T16:00:06.052Z","prev":"7a4b3640a4722c4f31d021fd5145a6f8e1c1c9b08173a42d192f0839ab6d85a1","body":{"issued_at":"2026-09-26T16:00:06.052Z","kind":"signal","nonce":"7978f9a8b849b21c71480d33230e08e1","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T16:00:06.052Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83990.6","targets":["84356.4"]},"prev":"7a4b3640a4722c4f31d021fd5145a6f8e1c1c9b08173a42d192f0839ab6d85a1","provider":"demo-ema-cross","seq":26,"v":1},"signer":null,"sig":null,"batch":{"root":"1098b2fe264840e8c18f23190fbabff467cdd72978b922a2f1e7dcde6ab26c08","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T16:02:06.103Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968712},"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"]}