{"format":"receipts-proof/1","hash":"15137c0cb1eed71d28f3dba83384b0ad8e879922560a66c8dd5b2ccd5c4d7980","provider":"demo-macd-momentum","seq":59,"kind":"signal","issued_at":"2026-10-09T14:20:51.050Z","prev":"642f9f33a66a2773ac684d37cc67c596ef5e2187cc91953ff30f5deeeaa29695","body":{"issued_at":"2026-10-09T14:20:51.050Z","kind":"signal","nonce":"857e682d4ebe91f6dc3f4e34ce7656b2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T02:20:51.050Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"82767.1","targets":["83312.1","83720.8"]},"prev":"642f9f33a66a2773ac684d37cc67c596ef5e2187cc91953ff30f5deeeaa29695","provider":"demo-macd-momentum","seq":59,"v":1},"signer":null,"sig":null,"batch":{"root":"15137c0cb1eed71d28f3dba83384b0ad8e879922560a66c8dd5b2ccd5c4d7980","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-09T14:21:51.067Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970645},"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"]}