{"format":"receipts-proof/1","hash":"78acf7128d296f191e48b11583fca9aa336381faf2c468eef651080ca689311a","provider":"demo-ema-cross","seq":76,"kind":"signal","issued_at":"2026-10-03T15:15:57.036Z","prev":"d8cab8e90768a06d0c65d73806620b2b9fe10d438c9bcdfab22bc1e5f8298da0","body":{"issued_at":"2026-10-03T15:15:57.036Z","kind":"signal","nonce":"157923e0b0f91dae5f05894bbadf7d95","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T15:15:57.036Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2676.57","targets":["2690.42"]},"prev":"d8cab8e90768a06d0c65d73806620b2b9fe10d438c9bcdfab22bc1e5f8298da0","provider":"demo-ema-cross","seq":76,"v":1},"signer":null,"sig":null,"batch":{"root":"78acf7128d296f191e48b11583fca9aa336381faf2c468eef651080ca689311a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T15:16:56.987Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969745},"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"]}