{"format":"receipts-proof/1","hash":"46d445b522af319709da10ac54cba76fcf1d9722605a2e4c3965cb25f59e103c","provider":"demo-ema-cross","seq":49,"kind":"signal","issued_at":"2026-09-29T14:45:50.595Z","prev":"2388cb6e126bcb819bd9b684200289dcbc0f27d1c17dceaa8d7d23696c51835c","body":{"issued_at":"2026-09-29T14:45:50.595Z","kind":"signal","nonce":"de17a227323fd913c46340aa36375c0e","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T14:45:50.595Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84243.9","targets":["83077.3"]},"prev":"2388cb6e126bcb819bd9b684200289dcbc0f27d1c17dceaa8d7d23696c51835c","provider":"demo-ema-cross","seq":49,"v":1},"signer":null,"sig":null,"batch":{"root":"46d445b522af319709da10ac54cba76fcf1d9722605a2e4c3965cb25f59e103c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T14:46:40.620Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969173},"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"]}