{"format":"receipts-proof/1","hash":"7939a0d6eff939aecc867fe321d6f69a39e81c8904e333523ea9f04b3774172f","provider":"demo-ema-cross","seq":139,"kind":"signal","issued_at":"2026-10-13T23:45:18.716Z","prev":"242d49b2ccf7593a33f3137f11e36ff8e2a2c7da5804ca443cab775fb2f023a8","body":{"issued_at":"2026-10-13T23:45:18.716Z","kind":"signal","nonce":"92fa3f8db5f5920f7b39d81da5407153","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T23:45:18.716Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"83380.4","targets":["82854.6"]},"prev":"242d49b2ccf7593a33f3137f11e36ff8e2a2c7da5804ca443cab775fb2f023a8","provider":"demo-ema-cross","seq":139,"v":1},"signer":null,"sig":null,"batch":{"root":"7939a0d6eff939aecc867fe321d6f69a39e81c8904e333523ea9f04b3774172f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T23:45:24.418Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971319},"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"]}