{"format":"receipts-proof/1","hash":"19f5af30e3e6b48f8ecf8a01355e1b48b991805830c20a713f5c5e6b1e8a172f","provider":"demo-macd-momentum","seq":40,"kind":"signal","issued_at":"2026-10-03T06:50:17.919Z","prev":"fae32eedc31eec712c063c359c2f0e8b14febe072a2ecba5a57a9fc2fb307393","body":{"issued_at":"2026-10-03T06:50:17.919Z","kind":"signal","nonce":"c4c68095ff0f90537aa2da7226499dc6","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T18:50:17.919Z","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":"84572.1","targets":["84464.7","84384.1"]},"prev":"fae32eedc31eec712c063c359c2f0e8b14febe072a2ecba5a57a9fc2fb307393","provider":"demo-macd-momentum","seq":40,"v":1},"signer":null,"sig":null,"batch":{"root":"19f5af30e3e6b48f8ecf8a01355e1b48b991805830c20a713f5c5e6b1e8a172f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T06:51:17.920Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969690},"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"]}