{"format":"receipts-proof/1","hash":"0fa7a4e85f39a6191d5dba8dda8e424a2b9ece8ae2c67fe08917bd27e144d837","provider":"demo-macd-momentum","seq":69,"kind":"signal","issued_at":"2026-10-11T20:49:51.376Z","prev":"d88dbc5f8c716cac177febfa99f568c30e94e9cd22be28a0195cd27783f2ad1e","body":{"issued_at":"2026-10-11T20:49:51.376Z","kind":"signal","nonce":"508bac4cc732ceff1b0e14f5a9c5e6d8","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T08:49:51.376Z","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":"83574.9","targets":["83702.3","83797.9"]},"prev":"d88dbc5f8c716cac177febfa99f568c30e94e9cd22be28a0195cd27783f2ad1e","provider":"demo-macd-momentum","seq":69,"v":1},"signer":null,"sig":null,"batch":{"root":"0fa7a4e85f39a6191d5dba8dda8e424a2b9ece8ae2c67fe08917bd27e144d837","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T21:01:32.276Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970983},"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"]}