{"format":"receipts-proof/1","hash":"668d7bfd3b7394b8b7729e281a1d209371f03cdb3372cbde08f52c2d3640107c","provider":"demo-ema-cross","seq":102,"kind":"signal","issued_at":"2026-10-06T16:15:24.766Z","prev":"5d874e6412e757f5a54cbc03e58fcf287930a63da9244929b9c3757cbc874399","body":{"issued_at":"2026-10-06T16:15:24.766Z","kind":"signal","nonce":"9448cb75a28f0ab23a5f75250a6677d2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T16:15:24.766Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"86210.4","targets":["84837.9"]},"prev":"5d874e6412e757f5a54cbc03e58fcf287930a63da9244929b9c3757cbc874399","provider":"demo-ema-cross","seq":102,"v":1},"signer":null,"sig":null,"batch":{"root":"668d7bfd3b7394b8b7729e281a1d209371f03cdb3372cbde08f52c2d3640107c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T16:15:25.348Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970201},"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"]}