{"format":"receipts-proof/1","hash":"88a33e2c17dc0d56f71e6a116a01267e148515d1438b1cde5a506ead8a88afae","provider":"demo-bollinger-squeeze","seq":144,"kind":"signal","issued_at":"2026-11-07T15:45:07.771Z","prev":"98116daf0059a7d1c88e231db839f9aeac057357a59ca9b6ae04abdf58db89fd","body":{"issued_at":"2026-11-07T15:45:07.771Z","kind":"signal","nonce":"550e0083fa977e8d07c431f7ff507c68","payload":{"entry":{"type":"market"},"expires_at":"2026-11-08T15:45:07.771Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.07184","targets":["0.07136","0.07112","0.07087"]},"prev":"98116daf0059a7d1c88e231db839f9aeac057357a59ca9b6ae04abdf58db89fd","provider":"demo-bollinger-squeeze","seq":144,"v":1},"signer":null,"sig":null,"batch":{"root":"90dfdbd4972f95fb7c8878b34f61990d87ebb413978f0ba072564f58309933bf","index":2,"leaf_count":3,"proof":[{"side":"L","hash":"5a68f54e5500150091be19e61dbb51c4bc217dd9d71c3a44ba7f78cfe888a4f9"}],"sealed_at":"2026-11-07T15:51:07.711Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":974951},"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"]}