{"format":"receipts-proof/1","hash":"d5ee12834f5414542b7764350ca40a958f8dff708682cd524bbbb6b10d1b083c","provider":"demo-macd-momentum","seq":92,"kind":"signal","issued_at":"2026-10-14T20:45:43.789Z","prev":"d8c1e0729a1852930200bc7ff5661c529e788224b9e7fa477682fb803f8f66a8","body":{"issued_at":"2026-10-14T20:45:43.789Z","kind":"signal","nonce":"8ff500500ce3f61a5abe15a5dc98bdf5","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T08:45:43.789Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"81844","targets":["81579.6","81381.2"]},"prev":"d8c1e0729a1852930200bc7ff5661c529e788224b9e7fa477682fb803f8f66a8","provider":"demo-macd-momentum","seq":92,"v":1},"signer":null,"sig":null,"batch":{"root":"d5ee12834f5414542b7764350ca40a958f8dff708682cd524bbbb6b10d1b083c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T20:46:49.494Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971465},"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"]}