{"format":"receipts-proof/1","hash":"b76ca856478715f59b6ef09d8794a3466dfaa533acedbb7cb0987ec7bc7d71e5","provider":"demo-macd-momentum","seq":84,"kind":"signal","issued_at":"2026-10-14T01:10:18.814Z","prev":"e7d00649d1242af4aec068a9a9d3701935448d88e369e8fc4b9d44a52e9b2292","body":{"issued_at":"2026-10-14T01:10:18.814Z","kind":"signal","nonce":"b8280bb1e1949b2a4fa5279766595d73","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T13:10:18.814Z","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":"2508.88","targets":["2496.13","2486.56"]},"prev":"e7d00649d1242af4aec068a9a9d3701935448d88e369e8fc4b9d44a52e9b2292","provider":"demo-macd-momentum","seq":84,"v":1},"signer":null,"sig":null,"batch":{"root":"aae274a265b7eed284406b68c29d86ef19396785da8764b718abceb97adbcd37","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"e7d00649d1242af4aec068a9a9d3701935448d88e369e8fc4b9d44a52e9b2292"}],"sealed_at":"2026-10-14T01:10:24.519Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971330},"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"]}