{"format":"receipts-proof/1","hash":"d2aaa63f63170da984e1cb1981ae131d4d974f4ebc6f210d26b8852be5fcf1b8","provider":"demo-bollinger-squeeze","seq":96,"kind":"signal","issued_at":"2026-10-11T11:57:51.703Z","prev":"e2fce425eb1596ef50d415117da0a52d6cc505a3683b5e4eecd828195acb0258","body":{"issued_at":"2026-10-11T11:57:51.703Z","kind":"signal","nonce":"f05bc64711c06076967f2bd10a7476ea","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T11:57:51.703Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"10.335","targets":["10.415","10.454","10.494"]},"prev":"e2fce425eb1596ef50d415117da0a52d6cc505a3683b5e4eecd828195acb0258","provider":"demo-bollinger-squeeze","seq":96,"v":1},"signer":null,"sig":null,"batch":{"root":"d2aaa63f63170da984e1cb1981ae131d4d974f4ebc6f210d26b8852be5fcf1b8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T12:06:23.413Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970928},"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"]}