{"format":"receipts-proof/1","hash":"3080050ca4a2f01e8b9085bfaeac1debc39b14034264d7c39a104898f57abdc7","provider":"demo-bollinger-squeeze","seq":60,"kind":"signal","issued_at":"2026-10-04T07:39:42.425Z","prev":"962967c5926e34d0656420211b96355e9dbb23d8f312d5199a40be866721150f","body":{"issued_at":"2026-10-04T07:39:42.425Z","kind":"signal","nonce":"28b4ea4f18a443244eaa86f5fbb966fb","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T07:39:42.425Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"11.039","targets":["10.955","10.913","10.871"]},"prev":"962967c5926e34d0656420211b96355e9dbb23d8f312d5199a40be866721150f","provider":"demo-bollinger-squeeze","seq":60,"v":1},"signer":null,"sig":null,"batch":{"root":"3080050ca4a2f01e8b9085bfaeac1debc39b14034264d7c39a104898f57abdc7","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T07:55:55.385Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIMIAFDKSi8B6LkIW/rqwd68ObFANCZNfDmhBImPV6vcf/8AhxryRqOTFkIwjwED/abcfT/Q4FN3+TnEqENsYI8SDYACGPH7MOLdwIZWBjvXQu3PrHzJSd3O4CUNl+KCnErQjxBGrCBozwCEjcF8wTdJIoAIPf4w0u+QyOLi1odHRwczovL2FsaWNlLmJ0Yy5jYWxlbmRhci5vcGVudGltZXN0YW1wcy5vcmf/8Ag/A0bzsTaxLAjwENy9FfdRKN7kEDMXZhSbpe4I8CBpWuN7ASC1fp3Lf2Ljh0iFJBIjHLhLuuDfR0bhUJXhCwjxICwkU15M8s+BBYxlm5SFdx1elMBG+iGeRCWqm8uc9qGGCPEEasIGjPAIVpF6OvEEM0MI8CDrWfVU5gwESOAGdIeCS17n/jJfcgDwdloUI723WUjfoAjxINPYN52xAHv8psDxDyacJU+OfHRsUhW4BHHzWvknypgzCPAgrQxRkBAbTkAduptvtNJFxUwOv828zQixYw1xQuaDfbMI8SCZsuN6XnXt4DZPzreWKpawzCX3mkKbwIsLR4W5VoU3qgjwIG8/VNx5Qzig6oHFrXuYDmTm+cOPCteI83/TS3+qgSGQCPEgBzQSmwuDwgs4Rn0g1aZ5AHxRipVkTwIOZlf0qXFcAfYI8SBrror/+sNZdlnu9WQwVY8Kq3TLD5UpEznsIiRVwHbywgjxIPDLPyesRMkt9kNMkRl4eqjLscnGNxVKTv9/gKyl9773CPEg06RtxHEvJMIm0+jfHvm3yWASmZolfN/uNxa0Vb/Kwe0I8CAqwK1zAFFBu05mKwx+/NoU/Bpawu7W1UtGhVHrAhbd5gjwILkc2alykLNuHCENNb9yY0x72sm+9ZofUttSVPXLJOoXCPAgMpB30TZM0HQVLQgay94zSBuEQmFu2ZC7Ma88MoYQ65sI8CDadth9jJ5bKcIB8hg/VPDgzwP7kzDKmuHL+UU85oCniQjxWQEAAAABEkTXURK9Hc0eskTwv6dwKmcZGH3rJxHQRh1rD5iWb8cAAAAAAP7///8CkvcAAAAAAAAWABTvxRDyDrej4zFMz9xoejWYiSF/+AAAAAAAAAAAImog8ARczA4ACAjxILOHPFxhn0rf37QRtY7CiiU/E5vH4uEDC5JbtmI9l4wMCAjwID9FZ/fHxpCGd41ImTViBc6TNCVjw36L3ybgugLWGOIxCAjxINwjp7SHs2oKNZgpsVZ08DkrBDVBbJKdV5DLKpauXVKsCAjwIMZ/uK/daVv/019pOe5XjxjFal5cjkCq0U9popTnAhIjCAjwIN5mwv/67akSNfs1T3ZJYC2pSp+ao0sXBJuNmVQh+GW1CAjwINX9MsOFAst1V+DIBkQOhGXm3i+vpgQAeuAwxL+qsXE8CAjxICxhF0WSdXDLwVh0jaXWBPZBk9x5IVrvbJk6d2cfqyJJCAjxIKrQVdi6F24o/bCaQ2Z75Epne2gMCM3XrSyjL7uuqC6iCAjxIJ8xzs1CNqTz10DM6k6rlWmneR/31SU5g4niqtZ//3U0CAjwIEtGrWJ7kPbEbbyyoZbhNUItPNXn928nJ/WRHR2bdMVACAjwIBHYK6TyYQyc82xhBL0ga1uU2seO0hsE9/AShDMs2WNbCAgABYiWDXPXGQED3Zg78BAkCeZ37y2R0rfutpEOA/15CPAgLHkuxjJHBpgWlE0m7bS46TWFAJ7rc3wxGq4IqywikbEI8SDXGtbecvZeHhL4OZFUgeFiAe4lpdpeUsUoG1j+RMEHSAjxBGrCBozwCKREPlm8sJkeAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":969821},"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"]}