{"format":"receipts-proof/1","hash":"ea8f0842ae5240802d574f869c4f76b4afc032b0459136aa8470065607fa291f","provider":"demo-ema-cross","seq":19,"kind":"signal","issued_at":"2026-09-25T20:07:25.606Z","prev":"2cec2d6571200808bf2b17fb212e1871887b33598ab9f00cca8f6e113af3bcae","body":{"issued_at":"2026-09-25T20:07:25.606Z","kind":"signal","nonce":"66475b463f9e26282ab5e9643ed77181","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T20:07:25.606Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83719","targets":["84476.1"]},"prev":"2cec2d6571200808bf2b17fb212e1871887b33598ab9f00cca8f6e113af3bcae","provider":"demo-ema-cross","seq":19,"v":1},"signer":null,"sig":null,"batch":{"root":"ea8f0842ae5240802d574f869c4f76b4afc032b0459136aa8470065607fa291f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T20:40:14.889Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968588},"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"]}