{"format":"receipts-proof/1","hash":"31fb173d2554dcf8a28d404a54029fdb0554f41c01139a78f35310558e2d4537","provider":"demo-macd-momentum","seq":77,"kind":"signal","issued_at":"2026-10-13T12:30:14.938Z","prev":"bbe0d54a254a1cfae012f110aea32cd47348a143fab84e208a04b65fc7fc253d","body":{"issued_at":"2026-10-13T12:30:14.938Z","kind":"signal","nonce":"033a3eb733e718f7c15ae4c6f13a9d15","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T00:30:14.938Z","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":"83136.2","targets":["83610.4","83966.2"]},"prev":"bbe0d54a254a1cfae012f110aea32cd47348a143fab84e208a04b65fc7fc253d","provider":"demo-macd-momentum","seq":77,"v":1},"signer":null,"sig":null,"batch":{"root":"31fb173d2554dcf8a28d404a54029fdb0554f41c01139a78f35310558e2d4537","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T12:30:17.163Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971245},"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"]}