{"format":"receipts-proof/1","hash":"cafa5df16ed5ab467419ccac70675ce6694ba2f1e4fc4453bff8267e331899bc","provider":"demo-ema-cross","seq":163,"kind":"signal","issued_at":"2026-10-15T08:15:46.273Z","prev":"76dcf030669ac755486a38e4f2c96207b83ad99fd8ae5598ad571bf5d18423dd","body":{"issued_at":"2026-10-15T08:15:46.273Z","kind":"signal","nonce":"9f7bdd2ee491675bb819d7312b72a657","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T08:15:46.273Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"80859.6","targets":["82117.8"]},"prev":"76dcf030669ac755486a38e4f2c96207b83ad99fd8ae5598ad571bf5d18423dd","provider":"demo-ema-cross","seq":163,"v":1},"signer":null,"sig":null,"batch":{"root":"cafa5df16ed5ab467419ccac70675ce6694ba2f1e4fc4453bff8267e331899bc","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T08:16:46.306Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971539},"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"]}