{"format":"receipts-proof/1","hash":"e820ccf8d4dcbf535c53de683102b2e80bf459bc9b9758caed3aa4e93aa52287","provider":"demo-ema-cross","seq":37,"kind":"signal","issued_at":"2026-09-27T21:30:01.918Z","prev":"e2d31f97ae4c45a7b3ef4cef3cc0204fb3e7181fd039a0e1b3dad856032d6321","body":{"issued_at":"2026-09-27T21:30:01.918Z","kind":"signal","nonce":"361c420fd6e27a9d417f3ee4d5157c0f","payload":{"entry":{"type":"market"},"expires_at":"2026-09-28T21:30:01.918Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84756.5","targets":["84188.3"]},"prev":"e2d31f97ae4c45a7b3ef4cef3cc0204fb3e7181fd039a0e1b3dad856032d6321","provider":"demo-ema-cross","seq":37,"v":1},"signer":null,"sig":null,"batch":{"root":"e820ccf8d4dcbf535c53de683102b2e80bf459bc9b9758caed3aa4e93aa52287","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-27T21:36:02.014Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968902},"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"]}