{"format":"receipts-proof/1","hash":"e9762ef1fdbd1dd47c9bc623071156046b507d301322b542d6bba58229c5fb8f","provider":"demo-ema-cross","seq":176,"kind":"signal","issued_at":"2026-11-07T15:29:07.639Z","prev":"844554ee4ef34c317a0b00aa4e43b214a7085f693aebdd53d0dc8abed4faa981","body":{"issued_at":"2026-11-07T15:29:07.639Z","kind":"signal","nonce":"2e9f3633f71ffc848624945de512c526","payload":{"entry":{"type":"market"},"expires_at":"2026-11-08T15:29:07.639Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2246.33","targets":["2233.3"]},"prev":"844554ee4ef34c317a0b00aa4e43b214a7085f693aebdd53d0dc8abed4faa981","provider":"demo-ema-cross","seq":176,"v":1},"signer":null,"sig":null,"batch":{"root":"e9762ef1fdbd1dd47c9bc623071156046b507d301322b542d6bba58229c5fb8f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-07T15:30:07.633Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":974947},"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"]}