{"format":"receipts-proof/1","hash":"ac9b9cb7888c49782dc83eb9f54edbb7642e66973b948dcd183f46368d207b7d","provider":"demo-ema-cross","seq":43,"kind":"signal","issued_at":"2026-09-28T16:15:36.774Z","prev":"529a57405fe21836802c5eac9a813dd6507a52ea1f275a7d19157bff8699f6c5","body":{"issued_at":"2026-09-28T16:15:36.774Z","kind":"signal","nonce":"b80147cbc06bd07f6ce03ee2808fe70d","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T16:15:36.774Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"82837.4","targets":["84473.8"]},"prev":"529a57405fe21836802c5eac9a813dd6507a52ea1f275a7d19157bff8699f6c5","provider":"demo-ema-cross","seq":43,"v":1},"signer":null,"sig":null,"batch":{"root":"ac9b9cb7888c49782dc83eb9f54edbb7642e66973b948dcd183f46368d207b7d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-28T16:16:26.970Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969024},"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"]}