{"format":"receipts-proof/1","hash":"4f643c41e20ded57c3721ed3706222b9436c225c467bb8c883dcdf748d09a184","provider":"demo-ema-cross","seq":130,"kind":"signal","issued_at":"2026-10-13T10:15:51.466Z","prev":"5f25a1542a1edab660413e24443e0c6805685d21fa8beece21e92ddbf0001ae9","body":{"issued_at":"2026-10-13T10:15:51.466Z","kind":"signal","nonce":"a6809c161832af8c8c48fae5f9ff3160","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T10:15:51.466Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2521.72","targets":["2482.12"]},"prev":"5f25a1542a1edab660413e24443e0c6805685d21fa8beece21e92ddbf0001ae9","provider":"demo-ema-cross","seq":130,"v":1},"signer":null,"sig":null,"batch":{"root":"4f643c41e20ded57c3721ed3706222b9436c225c467bb8c883dcdf748d09a184","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T10:15:56.108Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971230},"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"]}