{"format":"receipts-proof/1","hash":"3711a87d244a2ff146b8e71c5dd4d083e6ab87b9463f1c0133228d9df7f68d97","provider":"demo-macd-momentum","seq":110,"kind":"signal","issued_at":"2026-11-07T18:40:25.989Z","prev":"5e3de2abe09ed13ea1351626a10a4e7b5637e9a51ad4cf23feb538202c216bdd","body":{"issued_at":"2026-11-07T18:40:25.989Z","kind":"signal","nonce":"ba994be9ac62707b90c13190f7c2c281","payload":{"entry":{"type":"market"},"expires_at":"2026-11-08T06:40:25.989Z","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":"75824.1","targets":["75759.7","75711.5"]},"prev":"5e3de2abe09ed13ea1351626a10a4e7b5637e9a51ad4cf23feb538202c216bdd","provider":"demo-macd-momentum","seq":110,"v":1},"signer":null,"sig":null,"batch":{"root":"3711a87d244a2ff146b8e71c5dd4d083e6ab87b9463f1c0133228d9df7f68d97","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-07T18:41:25.982Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":974965},"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"]}