{"format":"receipts-proof/1","hash":"d8cab8e90768a06d0c65d73806620b2b9fe10d438c9bcdfab22bc1e5f8298da0","provider":"demo-ema-cross","seq":75,"kind":"signal","issued_at":"2026-10-03T14:30:57.014Z","prev":"eba205e0d757c52786e8d0a3dfefe4e9041dd8a62c3e8b0dff806a6bfc3ab835","body":{"issued_at":"2026-10-03T14:30:57.014Z","kind":"signal","nonce":"99de1d6fca71baa11108ac2b4a9b3750","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T14:30:57.014Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"119.06","targets":["120.11"]},"prev":"eba205e0d757c52786e8d0a3dfefe4e9041dd8a62c3e8b0dff806a6bfc3ab835","provider":"demo-ema-cross","seq":75,"v":1},"signer":null,"sig":null,"batch":{"root":"a3cdb34fe15d6c13edff30b8b4cd9f60dcb66cc9e74d68ed82109efb05a68082","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"bee71d7ec99581e042dfcbeb1acd412e1d86370a76adbb963d783f655cbf0d32"}],"sealed_at":"2026-10-03T14:31:56.953Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969745},"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"]}