{"format":"receipts-proof/1","hash":"bbe0d54a254a1cfae012f110aea32cd47348a143fab84e208a04b65fc7fc253d","provider":"demo-macd-momentum","seq":76,"kind":"signal","issued_at":"2026-10-13T11:25:53.312Z","prev":"0ef81c22838035f17227ee66952fd41d6bb126b6beeb36f63c1e44f661bf536b","body":{"issued_at":"2026-10-13T11:25:53.312Z","kind":"signal","nonce":"5be1215a1986fe3c1b3f7f8642fde509","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T23:25:53.312Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"2499.47","targets":["2521.65","2538.29"]},"prev":"0ef81c22838035f17227ee66952fd41d6bb126b6beeb36f63c1e44f661bf536b","provider":"demo-macd-momentum","seq":76,"v":1},"signer":null,"sig":null,"batch":{"root":"2d3ac3b6a858b325dfd59651e35eaf557eafaee405dd5a239ea757b5846181a4","index":2,"leaf_count":3,"proof":[{"side":"L","hash":"f7e0b638f65be93bde5044159352eaaf78959e28a50f118e160744442c99c847"}],"sealed_at":"2026-10-13T11:25:58.776Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971237},"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"]}