{"format":"receipts-proof/1","hash":"ee5d953cf459671517662da02479444907c7cad4fab77cb8220665806e38bb0e","provider":"demo-bollinger-squeeze","seq":82,"kind":"signal","issued_at":"2026-10-09T21:15:07.359Z","prev":"01a34ad57f19c25c814acdf0311fba6062fcd6a63fd92b8f331412d8ff071184","body":{"issued_at":"2026-10-09T21:15:07.359Z","kind":"signal","nonce":"420abb3d17ee8a96c0069948de191786","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T21:15:07.359Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.08466","targets":["0.0855","0.08593","0.08635"]},"prev":"01a34ad57f19c25c814acdf0311fba6062fcd6a63fd92b8f331412d8ff071184","provider":"demo-bollinger-squeeze","seq":82,"v":1},"signer":null,"sig":null,"batch":{"root":"f3b3493f5ce8ef1d0f7a104e3fe153d8b9fe06e04827220ef02097363affbf5b","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"01a34ad57f19c25c814acdf0311fba6062fcd6a63fd92b8f331412d8ff071184"}],"sealed_at":"2026-10-09T21:16:07.379Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970680},"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"]}