{"format":"receipts-proof/1","hash":"b78474a68e41c27c2014d3e296cae8bf38d97fb8d43b13f520738bf61e2cf9a9","provider":"demo-ema-cross","seq":83,"kind":"signal","issued_at":"2026-10-05T04:28:53.914Z","prev":"9d04058b53684f05b8e4743d5f5cc228fff63b288d23734dcbb2ab8b7f6b1346","body":{"issued_at":"2026-10-05T04:28:53.914Z","kind":"signal","nonce":"7812943efd29a26d2342abb4f3210316","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T04:28:53.914Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"86285.3","targets":["85210.7"]},"prev":"9d04058b53684f05b8e4743d5f5cc228fff63b288d23734dcbb2ab8b7f6b1346","provider":"demo-ema-cross","seq":83,"v":1},"signer":null,"sig":null,"batch":{"root":"5dcc7f25b35aca96c240d235038e46c2d1f5feb8385bcfaa005e831203124d0d","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"8800eb3e58d6090fa60c80fb5bfbf28176cea035b4b1a5fc7848d5af2999e6a6"}],"sealed_at":"2026-10-05T04:39:14.292Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969956},"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"]}