{"format":"receipts-proof/1","hash":"f706e8b55ae94f696ff6b1e112a577cc28a83bca863e8cf8d253f11f3c074261","provider":"demo-ema-cross","seq":125,"kind":"signal","issued_at":"2026-10-11T23:25:39.296Z","prev":"874066ba557be59ee22e89da3c2fe7af32e6521cef124a913164ecc6222c1941","body":{"issued_at":"2026-10-11T23:25:39.296Z","kind":"signal","nonce":"0b221fd924fa8a2d35117465687cda94","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T23:25:39.296Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83468.7","targets":["83996"]},"prev":"874066ba557be59ee22e89da3c2fe7af32e6521cef124a913164ecc6222c1941","provider":"demo-ema-cross","seq":125,"v":1},"signer":null,"sig":null,"batch":{"root":"f706e8b55ae94f696ff6b1e112a577cc28a83bca863e8cf8d253f11f3c074261","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T23:41:15.374Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971005},"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"]}