{"format":"receipts-proof/1","hash":"952246b009dc0df2e1f31ba3a19a574f701784132da0bd780d11bd8d2f2cb81e","provider":"demo-macd-momentum","seq":20,"kind":"signal","issued_at":"2026-09-30T04:38:09.000Z","prev":"4455fbee3a9bec189fe0c41778447ea0d629ebc4f451e364629ceaad70221244","body":{"issued_at":"2026-09-30T04:38:09.000Z","kind":"signal","nonce":"63d01a7f0246216099ee8cbd61307a2b","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T16:38:09.000Z","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":"2674.45","targets":["2665.55","2658.87"]},"prev":"4455fbee3a9bec189fe0c41778447ea0d629ebc4f451e364629ceaad70221244","provider":"demo-macd-momentum","seq":20,"v":1},"signer":null,"sig":null,"batch":{"root":"952246b009dc0df2e1f31ba3a19a574f701784132da0bd780d11bd8d2f2cb81e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T04:53:49.009Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969264},"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"]}