{"format":"receipts-proof/1","hash":"d872f1c90fbb65030fac30a90568abdbf3d6e7ab21c4d388ad3b6f67a97d1763","provider":"demo-ema-cross","seq":192,"kind":"signal","issued_at":"2026-11-08T19:05:01.489Z","prev":"fcd4759273162b5411763f5c4584b389b1c226b3aa9a775adc8782926de0291c","body":{"issued_at":"2026-11-08T19:05:01.489Z","kind":"signal","nonce":"de1ef7998c080cdf674d80971677070e","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T19:05:01.489Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"89.1","targets":["90.35"]},"prev":"fcd4759273162b5411763f5c4584b389b1c226b3aa9a775adc8782926de0291c","provider":"demo-ema-cross","seq":192,"v":1},"signer":null,"sig":null,"batch":{"root":"d872f1c90fbb65030fac30a90568abdbf3d6e7ab21c4d388ad3b6f67a97d1763","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-08T19:06:01.476Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI2HLxyQ+7ZQMPrDCpBWir2/PW56shxNOIrTtvZ6l9F2P/8AhKCvkXrFA5aQjwEE3Mvz0ugad7bcKwaGWBMsgI8SC9dZr7N0mdCCZ8kDI4jB219C3Mo08HOBepKs72OGDC4wjxBGrwyBvwCBL2A/ucX5DSCPEgk1uYvx9P9GVIzVT9xLobGwnPMK30gWY4kILJ1Mg90H4I8SBjSt5VRG56EoXt/DK3+clWs7tyGbh5CLWc4ghkY111sAjwIBl/Hpty3l5LAZwwHAKiCQPe4VUunyySGpV4Q4OHU6j0CPEgA+5PnAX7H8mPp0ncuDHN/DRWQRu1tv2PEZegJuDHpPEI8CACK2EYvgaL/yz1Cne894rgdfVvUyS7DiR+VbNUahzIRwjxIAEPNcHiHHPcupT+Pe56aARSEqEERWW4Od+anxsXry4HCPAgXjH8h6XpHOkeJho6/DBsmi5bJ3ckbNsXT+jQJAKEQKcI8SDsbiuCzVtfcgylDZj2pVyAIuDOUE9KvcF/NY8VTTYhkgjxICM8KbGEeConFWs1IkY3iBl2YBcGviG3vCKO7lK2+y1xCPAgCdR6aVAh+4Dby6ml7o0X4ISV8j923/BvcxOaGDEAKckI8SDoWczHDqKAJiE2iuVAjLrI4UtzToW8oSUNUwgquXbUawjxIJj8/TLl1UZ5Z30dIH83/9vwJPkFB5BoAJS6nwbmsjbgCPFZAQAAAAGlDwRQ8S4U8Ca2FFx8UgFS2FRB4D/cvQ2HUwIJoacvvAAAAAAA/v///wIXzQAAAAAAABYAFAidHp1MhuHRwkskBk5P2eS6W9ODAAAAAAAAAAAiaiDwBPHgDgAICPAgvyaFXyQXn2mED7fLxTSraj9qNumptciCVDNFqMxR8gYICPAgEygq+VVlHb5pXpYmZXSy4LCkqs7xpSPlhkOE0O2tXvMICPEgtEkh+8dGkdrMPFOug7X2OhV5/2calmJ8dhRBF+/Tw0QICPAgcB6J095+hXXQXULf+ASy/905tufzWXObAhB9eebNIT8ICPEglXrGU3qyOEK89v0khla5tDfm6ZWRS8ULlt3TYzH9jysICPAgC+IooIwyBqKTKAclkBnNxz4GpMbkIgnoCaqwjbOMqcAICPEgJ2TKJs8EFve75MaxEDMJy0OndyzDEgtRVVlId0DpqTgICPAgkkdTtgTMezMcBcTaUM/GaVSVODHm5j6KVuRObm8iRSwICPAgqygSWQp7FI/hOJHS40edqMneexxiEc6X0edji7/muYsICPEgxdSHO9YJHtYxdBDXjwsETY/vSDp7Aicmr45iPTqC4UkICPAglOybBEtJlgDG20K41bbzPyyM049dsejfsD8IrEDMQD8ICPEgim+IqPxkAtPSVkPXiplZEOBIvsF4kJ5JrYU/WwsIwyAICAAFiJYNc9cZAQPzwTv/8AhwGe0lASoKqgjxIEUtXBdHmoHIc/64wUxV7ut+Fw8aNGiHA66aZ86WCCM6CPAQIMLJCavW9oe/OErU8EQUqgjwIE1w6KB9oJwivGF77w9GQ+YW1qZ5kecQ0WTvc1iFbSD9CPAgv78XR/KD9PqseveKTBgPmGja3agNeyZEWrWEixUV9LAI8QRq8Mgb8Aj26Y53LkUiygCD3+MNLvkMjiwraHR0cHM6Ly9ib2IuYnRjLmNhbGVuZGFyLm9wZW50aW1lc3RhbXBzLm9yZ/AQcN0dcwVTlVSBJjv4Unfu8QjwIG6TIIvOIYdQKc2RRc7utiNYvamhdx/w7X6pLS4PFZDbCPAg7pmJTaTC8Lxxzgjif1o4Rqg8Mh9B3apZAR7zIXc2HvsI8QRq8Mga8AgOeK8DjK14owCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":975091},"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"]}