{"format":"receipts-proof/1","hash":"68ad4b7501a22019c05d730f3f98088b9d99d13c9818035180ca303a826a86a2","provider":"demo-macd-momentum","seq":97,"kind":"signal","issued_at":"2026-10-20T13:10:55.612Z","prev":"cfd3c99ae8400be33b006e148c62512a4ad07de7dcafc79573ef79822beb9de1","body":{"issued_at":"2026-10-20T13:10:55.612Z","kind":"signal","nonce":"2483a7ff2dd76e4a11e5fa7c6eafa681","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T01:10:55.612Z","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":"81663.5","targets":["81226.3","80898.5"]},"prev":"cfd3c99ae8400be33b006e148c62512a4ad07de7dcafc79573ef79822beb9de1","provider":"demo-macd-momentum","seq":97,"v":1},"signer":null,"sig":null,"batch":{"root":"68ad4b7501a22019c05d730f3f98088b9d99d13c9818035180ca303a826a86a2","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-20T13:11:49.979Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972335},"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"]}