{"format":"receipts-proof/1","hash":"8c9a9866b48bb12ca4c679915d18041fd7ed48c3c5bb3bfd1cdd10cd48b2bd8c","provider":"demo-ema-cross","seq":120,"kind":"signal","issued_at":"2026-10-11T12:23:27.839Z","prev":"617b7a667a44fc34c5d7a3c91bc1de6e07ed9f6b407bbae941bc88e4f2252ee9","body":{"issued_at":"2026-10-11T12:23:27.839Z","kind":"signal","nonce":"bd6015e4095dbf03f06f4dcbea9aa6c6","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T12:23:27.839Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"109.45","targets":["110.34"]},"prev":"617b7a667a44fc34c5d7a3c91bc1de6e07ed9f6b407bbae941bc88e4f2252ee9","provider":"demo-ema-cross","seq":120,"v":1},"signer":null,"sig":null,"batch":{"root":"8c9a9866b48bb12ca4c679915d18041fd7ed48c3c5bb3bfd1cdd10cd48b2bd8c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T12:40:07.465Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIjJqYZrSLsSykxnmRXRgEH9ftSMPFuzv9HN0QzUiyvYz/8Ah9RdpDzFCVZgjwEJKr8PvuUJF3EMSkIW+uasEI8CDKfYtwqiVk2nEBD5oM5aC9RCcwDb3xGYvCxujjBtepVwjxIJX2LhLNjWpKTvC+lYNWIKOMwrQv9cMPrrErn6fgiKyECPEEasuDqPAIGsl/kVjQgq4I8SBpQdbyY7mez9NamlWTQ7u3jSpOYxgbf8a4v3qnpuoE4gjwIKi9LgkA8tGPYexfYV/ieaSeYE5qipR3TgYvnJEYQWveCPEgfnsRAIGrzAhnAPznEnzz639/xEHKfM82sTOgJB9Il/kI8SBz8/Yhanewg2Od2YYlWPKG4iFS+jXcHIlldoKgP+L2FQjwIFp73pw4MySXycdSwcth8eMvU64o88Zd7yuv9ko0UE34CPEgoiXgU8swsv87wt96SOkj/niAO+5syEH1QpfrcaHhyP8I8SD1j4l6SchvlN790H/c6KE63KK5gakrS/W0ah2aRrptmgjwIMDWgAT4hyvV8n12J+FCOULTmCWUB/OR4zVpZ1MJTp2sCPFZAQAAAAGZFB3yOyfwVdCGiDmyDV5Vp9NVTp84rbPzXj+W6t3LrwAAAAAA/v///wIlWgAAAAAAABYAFN56pqal6U05Al5N8/8jcogRlu86AAAAAAAAAAAiaiDwBLTQDgAICPEgysmIhWyYQKM9Rk7YqoTOjWa/6KOxgaLMhx8iu8DJqyQICPEgpCzFpuxns0c6ouLMcpAiGD4ySIc87lt7yqVP3Svdm60ICPAgOwF6adM4ECnmp7EpCLT+gRL9ihH1U1qiT4Fko8/UMmYICPAgvFGPSLFSHER5akD4r7bROgAAw31102JjrWk/PKenV6EICPEg93/zLLuS8BbKxdXWZQ0f/yJ2KbmzYK0PQWXF9jDb+20ICPAgZRa2t+OrCk7zgoAtWrpz19hPHJtGKQ1LLEHJ9WhWsPMICPAg23GHs499Iofm3Jguoj+z88u9/8NfDT4ssonlGNOphXgICPEgzTtoJtawAcsr+Kk2tB5+9G1Olsyq/ImK/+87y4Nt0dsICPEgI9OQISJ3fmfRrxUGlZEaavpDPrg5wywHH8s97oXV1wkICPEgwdXtMxEC+wew5C5BOOSfs9ixYaNojalwbMnWg0+4r/sICPEgR2WfT+rwaY/MgKc3VUf4j9nCqCTuciAMF5f9nKovcAYICPAgGRopnCxP3nXYoP+1WVUetCVijk94s13w/Latn3IO3+EICPAgAuh6pyyTpw3eYO7/NHdoFRb5EFCVcmlt/5RPqtn0640ICAAFiJYNc9cZAQO1oTv/8AjU3usBBCh7fAjwEAK8GRX9FVH8eDHEy6LrecoI8SCqy4EoD3Xv0PhAW9lk4+DMfHVzeOzyJC4lEWooElDT8QjxBGrLg6jwCE7sZDt15T+lAIPf4w0u+QyOLCtodHRwczovL2JvYi5idGMuY2FsZW5kYXIub3BlbnRpbWVzdGFtcHMub3Jn8BD/Ycu6jKX0ZkbQizHq3OfMCPEgT2CukPNveA4NfviWCMrJ4RU+WSaYSvzrFj93Nno0SAUI8CDrhsGiifCmOLsOH7pBXhRCLCZ0u3iaGWT7b937mgP6IAjxBGrLg6jwCGLQwPisvUtyAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":970933},"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"]}