{"format":"receipts-proof/1","hash":"ca147f656f9d55ec101b7487d044048cd43ab4d8a1c3d488440aa78162f6db54","provider":"demo-macd-momentum","seq":72,"kind":"signal","issued_at":"2026-10-12T16:50:09.763Z","prev":"ee100e67ccec2a8fd63597698ebb82cad9bccfaeec921dc059b16c1ad3be6d0f","body":{"issued_at":"2026-10-12T16:50:09.763Z","kind":"signal","nonce":"14f1bae063e924adbf0459d35fbef729","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T04:50:09.763Z","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":"82810.1","targets":["82526.9","82314.6"]},"prev":"ee100e67ccec2a8fd63597698ebb82cad9bccfaeec921dc059b16c1ad3be6d0f","provider":"demo-macd-momentum","seq":72,"v":1},"signer":null,"sig":null,"batch":{"root":"ca147f656f9d55ec101b7487d044048cd43ab4d8a1c3d488440aa78162f6db54","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T16:50:13.157Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971126},"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"]}