{"format":"receipts-proof/1","hash":"83dbc8b8c2e76bff811731cd8aed39f57dc3ad5d1e484e61f2fc5d1aa0357d07","provider":"demo-macd-momentum","seq":55,"kind":"signal","issued_at":"2026-10-07T07:01:55.274Z","prev":"f99ab535cb035ec8854d890ac2a8109944ff5b55096a5a626ed04897836a435f","body":{"issued_at":"2026-10-07T07:01:55.274Z","kind":"signal","nonce":"be417fcb140db72db6c1c33f56622938","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T19:01:55.274Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"84296.1","targets":["84068.9","83898.5"]},"prev":"f99ab535cb035ec8854d890ac2a8109944ff5b55096a5a626ed04897836a435f","provider":"demo-macd-momentum","seq":55,"v":1},"signer":null,"sig":null,"batch":{"root":"83dbc8b8c2e76bff811731cd8aed39f57dc3ad5d1e484e61f2fc5d1aa0357d07","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-07T07:02:55.373Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970307},"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"]}