{"format":"receipts-proof/1","hash":"90f934c3c7e530fb086eb9094410a8caac4b0ff3941a37ff5454390b8070af86","provider":"demo-macd-momentum","seq":36,"kind":"signal","issued_at":"2026-10-02T22:40:14.043Z","prev":"c5891adb1702a7d7a5955563dcae1ea0e227ba14a60fc9874747bca90e54ccd2","body":{"issued_at":"2026-10-02T22:40:14.043Z","kind":"signal","nonce":"314af656213b06b9a5fae121bd834961","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T10:40:14.043Z","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":"84549.9","targets":["84395.7","84280.2"]},"prev":"c5891adb1702a7d7a5955563dcae1ea0e227ba14a60fc9874747bca90e54ccd2","provider":"demo-macd-momentum","seq":36,"v":1},"signer":null,"sig":null,"batch":{"root":"90f934c3c7e530fb086eb9094410a8caac4b0ff3941a37ff5454390b8070af86","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-02T22:41:14.041Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969644},"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"]}