{"format":"receipts-proof/1","hash":"f914122ecc2483b4379b759065ef1fb83919655ab78c1b27e03d653918b90d99","provider":"demo-macd-momentum","seq":14,"kind":"signal","issued_at":"2026-09-27T21:25:01.917Z","prev":"a3c93c1bac098b5b5cbf18e5f247372bef9e87dfedb8a04bfb9b8f696bb3db25","body":{"issued_at":"2026-09-27T21:25:01.917Z","kind":"signal","nonce":"e73d566bba19ecfda8f2bde7cd0abd03","payload":{"entry":{"type":"market"},"expires_at":"2026-09-28T09:25:01.917Z","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":"84557.2","targets":["84742.8","84882"]},"prev":"a3c93c1bac098b5b5cbf18e5f247372bef9e87dfedb8a04bfb9b8f696bb3db25","provider":"demo-macd-momentum","seq":14,"v":1},"signer":null,"sig":null,"batch":{"root":"f914122ecc2483b4379b759065ef1fb83919655ab78c1b27e03d653918b90d99","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-27T21:26:01.954Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968896},"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"]}