{"format":"receipts-proof/1","hash":"1eb56a01037a5e0148edea87ea627e5c43fe7ff416244d805dfae6c41558768c","provider":"demo-bollinger-squeeze","seq":67,"kind":"signal","issued_at":"2026-10-04T22:21:15.447Z","prev":"46176907ef10d81cd7a8c3251e9ffdc973ccc5b26e14d1921e631fc174b400d7","body":{"issued_at":"2026-10-04T22:21:15.447Z","kind":"signal","nonce":"f7fa93bc528bce0d9ed65d677aee40e7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T22:21:15.447Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"14.214","targets":["14.378","14.459","14.541"]},"prev":"46176907ef10d81cd7a8c3251e9ffdc973ccc5b26e14d1921e631fc174b400d7","provider":"demo-bollinger-squeeze","seq":67,"v":1},"signer":null,"sig":null,"batch":{"root":"01dc60d13272e83bdc70ef343140ad51e4b3f9538c510471cd5ded709d06d103","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"139beb5298fa58eb1cef5a8398b5a0f5bdf2858326279bb1692bf59c00d09c5c"}],"sealed_at":"2026-10-04T22:33:14.383Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969913},"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"]}