{"format":"receipts-proof/1","hash":"cce39880442cd68cb2f1a32d045a7001bf910a33312c828af78144374308e6fe","provider":"demo-macd-momentum","seq":65,"kind":"signal","issued_at":"2026-10-10T21:38:34.273Z","prev":"44f7023e389fa77ec125e25fc9c70bf265af9077091c8ce5f50bd2691a2913e6","body":{"issued_at":"2026-10-10T21:38:34.273Z","kind":"signal","nonce":"53b88507ca79deb1fd43708f0a50ac06","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T09:38:34.273Z","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":"82984.1","targets":["83079.7","83151.5"]},"prev":"44f7023e389fa77ec125e25fc9c70bf265af9077091c8ce5f50bd2691a2913e6","provider":"demo-macd-momentum","seq":65,"v":1},"signer":null,"sig":null,"batch":{"root":"cce39880442cd68cb2f1a32d045a7001bf910a33312c828af78144374308e6fe","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T21:54:57.528Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970834},"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"]}