{"format":"receipts-proof/1","hash":"449fa24a2eb477676ea39434f32a0e5c09be03a9e384f6dcbc49aa00aae1fd0a","provider":"demo-ema-cross","seq":108,"kind":"signal","issued_at":"2026-10-09T17:09:24.155Z","prev":"dcf82ed0f6283d12a8824b5e3ede836ade45c13b6bf3d767c8ad1c9f402d0201","body":{"issued_at":"2026-10-09T17:09:24.155Z","kind":"signal","nonce":"871f52a750ee2bb3f5426c7b4e629ba9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T17:09:24.155Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"83123.6","targets":["81876.7"]},"prev":"dcf82ed0f6283d12a8824b5e3ede836ade45c13b6bf3d767c8ad1c9f402d0201","provider":"demo-ema-cross","seq":108,"v":1},"signer":null,"sig":null,"batch":{"root":"449fa24a2eb477676ea39434f32a0e5c09be03a9e384f6dcbc49aa00aae1fd0a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-09T17:25:07.788Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970666},"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"]}