{"format":"receipts-proof/1","hash":"9f8133071381b23b5987b043ecc62acdf833ea320a271a56544564c32c16b46a","provider":"demo-macd-momentum","seq":86,"kind":"signal","issued_at":"2026-10-14T07:05:19.258Z","prev":"42488f2f7f99fddc7afa559fbe4c6bcfe80ae6a196b715e98fecb49906578266","body":{"issued_at":"2026-10-14T07:05:19.258Z","kind":"signal","nonce":"c46a3a6ead5d159df7dd971b0fb92bb4","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T19:05:19.258Z","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":"83329.2","targets":["83615.8","83830.8"]},"prev":"42488f2f7f99fddc7afa559fbe4c6bcfe80ae6a196b715e98fecb49906578266","provider":"demo-macd-momentum","seq":86,"v":1},"signer":null,"sig":null,"batch":{"root":"9f8133071381b23b5987b043ecc62acdf833ea320a271a56544564c32c16b46a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T07:11:19.292Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971371},"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"]}