{"format":"receipts-proof/1","hash":"c607ec3bf1bc392be6d503a1a3d2ae9cdcca4d0b317dcf082019e223d793901d","provider":"demo-bollinger-squeeze","seq":15,"kind":"signal","issued_at":"2026-09-26T11:04:05.182Z","prev":"d121b6f65522523a5dca9d2f6a20244167a916adff08f1999a1a7014bbebdd0e","body":{"issued_at":"2026-09-26T11:04:05.182Z","kind":"signal","nonce":"84ac8130764914000d1de126ad4bf9bb","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T11:04:05.182Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"14.116","targets":["14.388","14.523","14.659"]},"prev":"d121b6f65522523a5dca9d2f6a20244167a916adff08f1999a1a7014bbebdd0e","provider":"demo-bollinger-squeeze","seq":15,"v":1},"signer":null,"sig":null,"batch":{"root":"c607ec3bf1bc392be6d503a1a3d2ae9cdcca4d0b317dcf082019e223d793901d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T11:05:05.502Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968678},"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"]}