{"format":"receipts-proof/1","hash":"bc011c89482949a1cf1cdca0125176223b3531aa582ec74c445f59e255772739","provider":"demo-macd-momentum","seq":107,"kind":"signal","issued_at":"2026-10-28T06:20:15.824Z","prev":"28b7d9b5e0e03cd29ced8c74c34ec04309713895453b7b9f272dc622710d75ba","body":{"issued_at":"2026-10-28T06:20:15.824Z","kind":"signal","nonce":"3b4a5c7761e9ae49028b4a063e06c0b4","payload":{"entry":{"type":"market"},"expires_at":"2026-10-28T18:20:15.824Z","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":"80897.7","targets":["81019.3","81110.5"]},"prev":"28b7d9b5e0e03cd29ced8c74c34ec04309713895453b7b9f272dc622710d75ba","provider":"demo-macd-momentum","seq":107,"v":1},"signer":null,"sig":null,"batch":{"root":"bc011c89482949a1cf1cdca0125176223b3531aa582ec74c445f59e255772739","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-28T06:26:13.528Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":973513},"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"]}