{"format":"receipts-proof/1","hash":"df88b769517bd5b594eefdff8d58492979c9396ec2f4a372d6dab4d4396b1578","provider":"demo-bollinger-squeeze","seq":120,"kind":"signal","issued_at":"2026-10-15T02:00:20.462Z","prev":"a1e03337ca78539b54ebaa54641e8370595d50693671909503972253ea035570","body":{"issued_at":"2026-10-15T02:00:20.462Z","kind":"signal","nonce":"341395501b2dff1571dbc04339b39bef","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T02:00:20.462Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"12.42","targets":["12.244","12.155","12.067"]},"prev":"a1e03337ca78539b54ebaa54641e8370595d50693671909503972253ea035570","provider":"demo-bollinger-squeeze","seq":120,"v":1},"signer":null,"sig":null,"batch":{"root":"df88b769517bd5b594eefdff8d58492979c9396ec2f4a372d6dab4d4396b1578","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T02:00:43.335Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971494},"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"]}