{"format":"receipts-proof/1","hash":"3103879eb58f26e078a379303e1350c2bf3121094021d4dd9ad6aece140cb49d","provider":"demo-ema-cross","seq":88,"kind":"signal","issued_at":"2026-10-05T09:30:00.734Z","prev":"1342e7fbbed504b412a9d98d476104fca65a50d715bf4b8cf9443e7734dec0b9","body":{"issued_at":"2026-10-05T09:30:00.734Z","kind":"signal","nonce":"cd59c11c0aca60e4c7e8f7a1039fc3ea","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T09:30:00.734Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"86222.2","targets":["85057.2"]},"prev":"1342e7fbbed504b412a9d98d476104fca65a50d715bf4b8cf9443e7734dec0b9","provider":"demo-ema-cross","seq":88,"v":1},"signer":null,"sig":null,"batch":{"root":"3103879eb58f26e078a379303e1350c2bf3121094021d4dd9ad6aece140cb49d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T09:30:57.129Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969994},"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"]}