{"format":"receipts-proof/1","hash":"649baeede5dbf559cd3208dfeb5a06ed1158763353f1e1157c81112e4fb61197","provider":"demo-macd-momentum","seq":73,"kind":"signal","issued_at":"2026-10-12T21:00:10.654Z","prev":"ca147f656f9d55ec101b7487d044048cd43ab4d8a1c3d488440aa78162f6db54","body":{"issued_at":"2026-10-12T21:00:10.654Z","kind":"signal","nonce":"96c9b71010b507aec66921f917006d2c","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T09:00:10.654Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2522.44","targets":["2513.92","2507.52"]},"prev":"ca147f656f9d55ec101b7487d044048cd43ab4d8a1c3d488440aa78162f6db54","provider":"demo-macd-momentum","seq":73,"v":1},"signer":null,"sig":null,"batch":{"root":"649baeede5dbf559cd3208dfeb5a06ed1158763353f1e1157c81112e4fb61197","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T21:01:13.865Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971142},"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"]}