{"format":"receipts-proof/1","hash":"858674dceb945407a0da8a83154d0b8e6fe812e5cc57835ebdcd08ba12ec14d7","provider":"demo-bollinger-squeeze","seq":121,"kind":"signal","issued_at":"2026-10-15T13:00:50.086Z","prev":"df88b769517bd5b594eefdff8d58492979c9396ec2f4a372d6dab4d4396b1578","body":{"issued_at":"2026-10-15T13:00:50.086Z","kind":"signal","nonce":"ff3db8e2bbd938b1ae25706efda64968","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T13:00:50.086Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.08018","targets":["0.0789","0.07825","0.07761"]},"prev":"df88b769517bd5b594eefdff8d58492979c9396ec2f4a372d6dab4d4396b1578","provider":"demo-bollinger-squeeze","seq":121,"v":1},"signer":null,"sig":null,"batch":{"root":"858674dceb945407a0da8a83154d0b8e6fe812e5cc57835ebdcd08ba12ec14d7","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T13:00:53.631Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971576},"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"]}