{"format":"receipts-proof/1","hash":"0c7509f5b7d15de348ec7f5aea61916b0f382d0802350f7654d4d70204ec98d2","provider":"demo-bollinger-squeeze","seq":148,"kind":"signal","issued_at":"2026-11-08T11:32:03.148Z","prev":"ed0052be73324b7ca4a07be2238d45894d81c31b3916b50a26307867d9eab81b","body":{"issued_at":"2026-11-08T11:32:03.148Z","kind":"signal","nonce":"4e8a32c30a2f254a5cb031c37854d5c2","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T11:32:03.148Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.1798","targets":["0.1814","0.1821","0.1829"]},"prev":"ed0052be73324b7ca4a07be2238d45894d81c31b3916b50a26307867d9eab81b","provider":"demo-bollinger-squeeze","seq":148,"v":1},"signer":null,"sig":null,"batch":{"root":"662e148f1adbc34f070f05fc25188a461f50fa4b024e12b69d222e4986b98d38","index":2,"leaf_count":3,"proof":[{"side":"L","hash":"a1f792cbef692d90b722e1932c1b5900eeb997c312a60bfbb1b7ff88a006cafc"}],"sealed_at":"2026-11-08T11:44:25.193Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975060},"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"]}