{"format":"receipts-proof/1","hash":"43302bec834c14ef034c9d318bfb5481bd2f7c0516c19b6c96760117afb13999","provider":"demo-macd-momentum","seq":49,"kind":"signal","issued_at":"2026-10-05T11:30:00.865Z","prev":"bc8d7eada1ca52f111122e4f91e5f5bf236c980f4a843ef3eb342866452ce8a8","body":{"issued_at":"2026-10-05T11:30:00.865Z","kind":"signal","nonce":"29853a67f019314b68d283d60fca4757","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T23:30:00.865Z","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":"2714.38","targets":["2724.84","2732.67"]},"prev":"bc8d7eada1ca52f111122e4f91e5f5bf236c980f4a843ef3eb342866452ce8a8","provider":"demo-macd-momentum","seq":49,"v":1},"signer":null,"sig":null,"batch":{"root":"7c106e75871d829efa53f486f6f27a1af978eafc2970269e8052859289f4621d","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"bc8d7eada1ca52f111122e4f91e5f5bf236c980f4a843ef3eb342866452ce8a8"}],"sealed_at":"2026-10-05T11:30:57.277Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970012},"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"]}