{"format":"receipts-proof/1","hash":"2253ce9302e0ab4bfb9a489902832b6d1d8e37bb715840dce6709fa25ef3a939","provider":"demo-bollinger-squeeze","seq":41,"kind":"signal","issued_at":"2026-10-01T00:51:28.601Z","prev":"5dbf9eb21143bfeacbe46d5e8e80232f4b47bfbe7258ee728889bbf426f75006","body":{"issued_at":"2026-10-01T00:51:28.601Z","kind":"signal","nonce":"68bc60a83f16d1bc8693dd729849a856","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T00:51:28.601Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"10.937","targets":["10.801","10.733","10.665"]},"prev":"5dbf9eb21143bfeacbe46d5e8e80232f4b47bfbe7258ee728889bbf426f75006","provider":"demo-bollinger-squeeze","seq":41,"v":1},"signer":null,"sig":null,"batch":{"root":"35d8866847832bcb0e3e68f412375d05ede5725ebcfed67e405739b8e640036f","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"71cab4929fa0f4af1fc77167c2fddd97d36010057f6db3a19aa48001f93e462a"}],"sealed_at":"2026-10-01T01:06:44.381Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969375},"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"]}