{"format":"receipts-proof/1","hash":"e2fce425eb1596ef50d415117da0a52d6cc505a3683b5e4eecd828195acb0258","provider":"demo-bollinger-squeeze","seq":95,"kind":"signal","issued_at":"2026-10-11T03:15:03.561Z","prev":"d80ab274376e9ce35c20e2a77b5439f98f566cdadf752887c9a6c8c2739fb428","body":{"issued_at":"2026-10-11T03:15:03.561Z","kind":"signal","nonce":"2de81b82699f0637878604b8029ee6fc","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T03:15:03.561Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.08584","targets":["0.08522","0.08492","0.08461"]},"prev":"d80ab274376e9ce35c20e2a77b5439f98f566cdadf752887c9a6c8c2739fb428","provider":"demo-bollinger-squeeze","seq":95,"v":1},"signer":null,"sig":null,"batch":{"root":"a013b19c9c58758078184153ef9c55435d598dc65056615648747ec75bcd117a","index":2,"leaf_count":3,"proof":[{"side":"L","hash":"d662f9f2dc6134e75973e7a2d1116f2888ca54380eaa62c16c2bc7e1e9607ce4"}],"sealed_at":"2026-10-11T03:28:26.687Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970867},"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"]}