{"format":"receipts-proof/1","hash":"95c28c2556649bb4360089e8279fbb9bf6c37d7fd51a275b87173b3d2ce23708","provider":"demo-ema-cross","seq":55,"kind":"signal","issued_at":"2026-09-30T10:00:50.667Z","prev":"be70b36c2365aff5bb81f247c4e30faec1fc275450fb1c3a4cf4b09a84e22b29","body":{"issued_at":"2026-09-30T10:00:50.667Z","kind":"signal","nonce":"feb480d26896123306048c57b65e8601","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T10:00:50.667Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"118.5","targets":["120.87"]},"prev":"be70b36c2365aff5bb81f247c4e30faec1fc275450fb1c3a4cf4b09a84e22b29","provider":"demo-ema-cross","seq":55,"v":1},"signer":null,"sig":null,"batch":{"root":"95c28c2556649bb4360089e8279fbb9bf6c37d7fd51a275b87173b3d2ce23708","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T10:01:40.748Z","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"]}