{"format":"receipts-proof/1","hash":"2e1ac614818d87a130276d0c4c0395df2b9f9fc42bdbb0ee0dd1dadac19076e8","provider":"demo-macd-momentum","seq":61,"kind":"signal","issued_at":"2026-10-09T22:09:48.996Z","prev":"66d21b7b515a55c4436d3054834fb84777761a753e33c09289dac963e1c47e71","body":{"issued_at":"2026-10-09T22:09:48.996Z","kind":"signal","nonce":"dfefa788b0198bf4451969eb3b52eb43","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T10:09:48.996Z","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":"2481.38","targets":["2476.02","2472"]},"prev":"66d21b7b515a55c4436d3054834fb84777761a753e33c09289dac963e1c47e71","provider":"demo-macd-momentum","seq":61,"v":1},"signer":null,"sig":null,"batch":{"root":"e7135f5114609a045b3a18f95459e0c74d3e1aeea2306f848abc736f05e7b19b","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"66d21b7b515a55c4436d3054834fb84777761a753e33c09289dac963e1c47e71"}],"sealed_at":"2026-10-09T22:16:52.510Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970687},"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"]}