{"format":"receipts-proof/1","hash":"eac10fe11547fdfcb595ce9312b82dacceec25620a01d89f8b94e047ef14a8e5","provider":"demo-ema-cross","seq":86,"kind":"signal","issued_at":"2026-10-05T07:15:17.222Z","prev":"9c3308ab95159415a0b695e3042954df39216b0e08e31fb9ede04f42adb7e097","body":{"issued_at":"2026-10-05T07:15:17.222Z","kind":"signal","nonce":"2015d684cc1fd55f4ce094f75fa46b9f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T07:15:17.222Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"120.86","targets":["122.96"]},"prev":"9c3308ab95159415a0b695e3042954df39216b0e08e31fb9ede04f42adb7e097","provider":"demo-ema-cross","seq":86,"v":1},"signer":null,"sig":null,"batch":{"root":"1e8ffc17170d0057b3e34eb3b7a1f082d1a58e24c30883d8cb1c014cabbbdcd5","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"9c3308ab95159415a0b695e3042954df39216b0e08e31fb9ede04f42adb7e097"}],"sealed_at":"2026-10-05T07:16:17.211Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969978},"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"]}