{"format":"receipts-proof/1","hash":"715d8897ca6ca12c4edd198311e8151d2cb0f7be64bebf7021aec5da5f921b59","provider":"demo-ema-cross","seq":51,"kind":"signal","issued_at":"2026-09-29T15:30:39.738Z","prev":"9adb142e70a26d629d8fec338804914f0e08a976a945ffaf8a33f07f9af0c6b3","body":{"issued_at":"2026-09-29T15:30:39.738Z","kind":"signal","nonce":"004109c506e2121d6829f15285095f7c","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T15:30:39.738Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"119.46","targets":["115.82"]},"prev":"9adb142e70a26d629d8fec338804914f0e08a976a945ffaf8a33f07f9af0c6b3","provider":"demo-ema-cross","seq":51,"v":1},"signer":null,"sig":null,"batch":{"root":"5bfe305a2b7179ff34e982306edb6ebb6153c57b8f59283a8a0417bc1eb7dbc7","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"b2d16ea5244d9eebd4474375758128582a1a3b8f74f449ba6ec6bbaf380ebb60"}],"sealed_at":"2026-09-29T15:31:29.755Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969177},"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"]}