{"format":"receipts-proof/1","hash":"41af17304cdc43ec68d9dd921fdf40a655b1a2594af4a8e3c9e0d985c964a650","provider":"demo-ema-cross","seq":128,"kind":"signal","issued_at":"2026-10-12T22:30:11.526Z","prev":"b7f4fe2fcd878603641d7e6234506ace7be2d9ec191f943e3f3a6f6f96f533cf","body":{"issued_at":"2026-10-12T22:30:11.526Z","kind":"signal","nonce":"7e402eabc4033f21a4c83782358b3455","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T22:30:11.526Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"82863.1","targets":["81973.3"]},"prev":"b7f4fe2fcd878603641d7e6234506ace7be2d9ec191f943e3f3a6f6f96f533cf","provider":"demo-ema-cross","seq":128,"v":1},"signer":null,"sig":null,"batch":{"root":"41af17304cdc43ec68d9dd921fdf40a655b1a2594af4a8e3c9e0d985c964a650","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T22:30:14.339Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971148},"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"]}