{"format":"receipts-proof/1","hash":"7bf95dc383eda091e1825cd92ada8b37b4a91687e1162780e25fb164d878fa7f","provider":"demo-bollinger-squeeze","seq":49,"kind":"signal","issued_at":"2026-10-02T15:00:04.292Z","prev":"e19251ccc4977e623a4cb929e0847213d75b3145ef409b99ee696d9f76b50b3a","body":{"issued_at":"2026-10-02T15:00:04.292Z","kind":"signal","nonce":"7bef379f2a9c9e884e3471d21e3ac0ef","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T15:00:04.292Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.2557","targets":["0.2489","0.2455","0.2421"]},"prev":"e19251ccc4977e623a4cb929e0847213d75b3145ef409b99ee696d9f76b50b3a","provider":"demo-bollinger-squeeze","seq":49,"v":1},"signer":null,"sig":null,"batch":{"root":"7bf95dc383eda091e1825cd92ada8b37b4a91687e1162780e25fb164d878fa7f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-02T15:01:04.290Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969609},"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"]}