{"format":"receipts-proof/1","hash":"bdd65c2492e72667c21e5f86b924e478ddf9fb475b351e4f3c64cdf84896791e","provider":"demo-macd-momentum","seq":118,"kind":"signal","issued_at":"2026-11-09T12:05:53.487Z","prev":"992e6c750698f1745ff31dd365ec9ddb7a02b5786d4134a784185fc1c61a11a9","body":{"issued_at":"2026-11-09T12:05:53.487Z","kind":"signal","nonce":"c581836b468e7921d9f5c6d15c8e6516","payload":{"entry":{"type":"market"},"expires_at":"2026-11-10T00:05:53.487Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2125.18","targets":["2105.22","2090.24"]},"prev":"992e6c750698f1745ff31dd365ec9ddb7a02b5786d4134a784185fc1c61a11a9","provider":"demo-macd-momentum","seq":118,"v":1},"signer":null,"sig":null,"batch":{"root":"bdd65c2492e72667c21e5f86b924e478ddf9fb475b351e4f3c64cdf84896791e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-09T12:06:48.833Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975173},"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"]}