{"format":"receipts-proof/1","hash":"16e25cffb7ead6ebab0a4098369499396e4fc93fd51e85e0f6af905f9a5508ee","provider":"demo-ema-cross","seq":109,"kind":"signal","issued_at":"2026-10-10T00:58:01.377Z","prev":"449fa24a2eb477676ea39434f32a0e5c09be03a9e384f6dcbc49aa00aae1fd0a","body":{"issued_at":"2026-10-10T00:58:01.377Z","kind":"signal","nonce":"20b9e832e443f22ee28f9138e42b603b","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T00:58:01.377Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"108.91","targets":["110.07"]},"prev":"449fa24a2eb477676ea39434f32a0e5c09be03a9e384f6dcbc49aa00aae1fd0a","provider":"demo-ema-cross","seq":109,"v":1},"signer":null,"sig":null,"batch":{"root":"16e25cffb7ead6ebab0a4098369499396e4fc93fd51e85e0f6af905f9a5508ee","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T01:15:36.740Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970704},"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"]}