{"format":"receipts-proof/1","hash":"6caa61dcd40ac9082489d20c9e4032d18376f48b9ddd8419b176fad817b24317","provider":"demo-ema-cross","seq":152,"kind":"signal","issued_at":"2026-10-14T08:15:36.104Z","prev":"9f5f20fb79179d5ed9b634507ace080f98157481e6e23f7fd963c1650279f3e3","body":{"issued_at":"2026-10-14T08:15:36.104Z","kind":"signal","nonce":"b0850de1d9143b0dc7b70b5652672ee7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T08:15:36.104Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"107.45","targets":["109.48"]},"prev":"9f5f20fb79179d5ed9b634507ace080f98157481e6e23f7fd963c1650279f3e3","provider":"demo-ema-cross","seq":152,"v":1},"signer":null,"sig":null,"batch":{"root":"96eebb8b2b7ca764b8fc3622aba4f7c58c4dd392649bdd50549d6e67958f3e49","index":2,"leaf_count":6,"proof":[{"side":"R","hash":"a04b3c5ad07a7b8a02b7be96abd4d4f6f23e6ff59ab31f6d7abaae637dbca1dc"},{"side":"L","hash":"dd4af29b0d3133c8940039e69638bd030cf78b246b44ee262d83e7c34a87a00e"},{"side":"R","hash":"ce8c7cf5b5025914552c66ba288ebbd6b83e1b47f1611ae213876cd5e74ea24a"}],"sealed_at":"2026-10-14T08:16:36.689Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971378},"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"]}