{"format":"receipts-proof/1","hash":"fae32eedc31eec712c063c359c2f0e8b14febe072a2ecba5a57a9fc2fb307393","provider":"demo-macd-momentum","seq":39,"kind":"signal","issued_at":"2026-10-03T04:28:33.385Z","prev":"de7aeabc4c8c3634c211bb3596abe976654c248f805228c78e50e19f60bd3cce","body":{"issued_at":"2026-10-03T04:28:33.385Z","kind":"signal","nonce":"96947148b6e603d1ed4b489bc44b66ff","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T16:28:33.385Z","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":"84596.6","targets":["84500.4","84428.3"]},"prev":"de7aeabc4c8c3634c211bb3596abe976654c248f805228c78e50e19f60bd3cce","provider":"demo-macd-momentum","seq":39,"v":1},"signer":null,"sig":null,"batch":{"root":"fae32eedc31eec712c063c359c2f0e8b14febe072a2ecba5a57a9fc2fb307393","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T04:29:33.365Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969676},"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"]}