{"format":"receipts-proof/1","hash":"207d7af25c9223c06a99ae19f0cc6b383a9808024f8bec2eecd1ca24ce0e0573","provider":"demo-ema-cross","seq":148,"kind":"signal","issued_at":"2026-10-14T06:00:19.144Z","prev":"06c6fe1cf90e2587738fb67469889a32216430481b5df5c3b7184b58d2f02f5c","body":{"issued_at":"2026-10-14T06:00:19.144Z","kind":"signal","nonce":"522a03fcb32584125feb48613bc33937","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T06:00:19.144Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"107.76","targets":["105.9"]},"prev":"06c6fe1cf90e2587738fb67469889a32216430481b5df5c3b7184b58d2f02f5c","provider":"demo-ema-cross","seq":148,"v":1},"signer":null,"sig":null,"batch":{"root":"1b78eb51f3555171b321670de2a58c205955b246866f29c21fe30567ec076f0d","index":1,"leaf_count":3,"proof":[{"side":"L","hash":"06c6fe1cf90e2587738fb67469889a32216430481b5df5c3b7184b58d2f02f5c"},{"side":"R","hash":"565d0e5d2d2199fcd7aed60e7655025eae80924ecc7f9d400d9480cf36e5d96e"}],"sealed_at":"2026-10-14T06:01:19.163Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971364},"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"]}