{"format":"receipts-proof/1","hash":"90c1ce1a23a0bf838d0880236ba43dda62b78245724421818ba8ad7c99a7d962","provider":"demo-macd-momentum","seq":98,"kind":"signal","issued_at":"2026-10-20T19:45:46.138Z","prev":"68ad4b7501a22019c05d730f3f98088b9d99d13c9818035180ca303a826a86a2","body":{"issued_at":"2026-10-20T19:45:46.138Z","kind":"signal","nonce":"d666e6cca45c258ff1c29cc2f6ac526d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T07:45:46.138Z","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":"82457.2","targets":["82692.8","82869.6"]},"prev":"68ad4b7501a22019c05d730f3f98088b9d99d13c9818035180ca303a826a86a2","provider":"demo-macd-momentum","seq":98,"v":1},"signer":null,"sig":null,"batch":{"root":"90c1ce1a23a0bf838d0880236ba43dda62b78245724421818ba8ad7c99a7d962","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-20T19:46:44.637Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972374},"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"]}