{"format":"receipts-proof/1","hash":"05d1b809e15663f90e7d2dea5231c8f72d8556d5a3b8e443c216334150a6f53b","provider":"demo-macd-momentum","seq":120,"kind":"signal","issued_at":"2026-11-09T14:40:24.487Z","prev":"a13a45df575cf3746a1eb3a42f312943f00a5e88cd001e395baf47d3d271712a","body":{"issued_at":"2026-11-09T14:40:24.487Z","kind":"signal","nonce":"6e727bb34b7e0cea797ad879f1e8292f","payload":{"entry":{"type":"market"},"expires_at":"2026-11-10T02:40:24.487Z","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":"2127.24","targets":["2110.34","2097.66"]},"prev":"a13a45df575cf3746a1eb3a42f312943f00a5e88cd001e395baf47d3d271712a","provider":"demo-macd-momentum","seq":120,"v":1},"signer":null,"sig":null,"batch":{"root":"05d1b809e15663f90e7d2dea5231c8f72d8556d5a3b8e443c216334150a6f53b","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-09T14:41:18.287Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975191},"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"]}