{"format":"receipts-proof/1","hash":"be70b36c2365aff5bb81f247c4e30faec1fc275450fb1c3a4cf4b09a84e22b29","provider":"demo-ema-cross","seq":54,"kind":"signal","issued_at":"2026-09-30T09:45:50.651Z","prev":"de53a570f310c9a3c87bb8ff5b0dbe9352431da95b0dbff5c7e9b109c597089c","body":{"issued_at":"2026-09-30T09:45:50.651Z","kind":"signal","nonce":"30ef5bd998c904edc4de415efa208fb8","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T09:45:50.651Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83222.2","targets":["84152"]},"prev":"de53a570f310c9a3c87bb8ff5b0dbe9352431da95b0dbff5c7e9b109c597089c","provider":"demo-ema-cross","seq":54,"v":1},"signer":null,"sig":null,"batch":{"root":"be70b36c2365aff5bb81f247c4e30faec1fc275450fb1c3a4cf4b09a84e22b29","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T09:51:40.729Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969292},"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"]}