{"format":"receipts-proof/1","hash":"07d86a149036729749ad30f398f0711bc7b878d7e40ebacfe93b6e4758bfa281","provider":"demo-bollinger-squeeze","seq":102,"kind":"signal","issued_at":"2026-10-13T09:15:51.400Z","prev":"09adfb34c48c955d8679336c7b7b807b3bb628e9a6e5957e32aa9b2178c8d03f","body":{"issued_at":"2026-10-13T09:15:51.400Z","kind":"signal","nonce":"3b4f1893c3af37a808de4214d5a51aa9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T09:15:51.400Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.08479","targets":["0.08373","0.08319","0.08266"]},"prev":"09adfb34c48c955d8679336c7b7b807b3bb628e9a6e5957e32aa9b2178c8d03f","provider":"demo-bollinger-squeeze","seq":102,"v":1},"signer":null,"sig":null,"batch":{"root":"ee1001212a39dc448f821fe52d5618d3b8ebbe203a6cbb0ca9a6cdff2e1e8567","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"09adfb34c48c955d8679336c7b7b807b3bb628e9a6e5957e32aa9b2178c8d03f"}],"sealed_at":"2026-10-13T09:15:56.054Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI7hABISo53ESPgh/lLVYY07jrviA6bLsMqabN/y4ehWf/8Ahdq7N6fH2WvAjwEMg+xt77/ifo7StJaezx3toI8CBLbuEbDK90dNQ3O2x8UJqZIZp147TzXLAV0YkyYGsyTwjwIMafFvjKw4PYTWGFGUbRCz2pO1ulZ/JB2ChkMb49PfqcCPAg7GHsNaYCInVf1VCim64clybI8ZnfsWriTyM4y2fcR0YI8QRqzfbN8AgkhhS/4rBH0wjwIIPKOW/zeh2jMfzjcMudZpgTxWo7jFt5PV2BC9j7+S3fCPEgdnwtQSvyZzT21Btcn4H3SxCKvluSmTa13dGOZP6njJkI8CAaum5zdX5o1NiprPy0PgLMMx6VPDHEquB6rqnIYSIADQjwIMudji//Q5NWDEhcXT652vscioN5meg53uZvDVxyaNq+CPEgBzd/XTBWf4xHEwZwGtc6LfzA/ewOhBvp39KXNL12U+wI8SBbHiqpRJndHkZOOXw+JSCzxnaBTcdcOVtR6aO127A+0QjxIKFhp4/QZgYXFPO2j62+osXAUIePkytv9nSME1ql6yjHCPEg10/VERT0blUYrS+9JJkqpZxlO08oNb9O4/UNCZt1EhEI8CB2cH/fQ4B+Tg1qIh8v3nuMOcJ+qmKegL8UFxb84gxPNwjwIBq1p15R6yZvRRaxTIGhkYeFXLKxQbhK1bdq+fucCI/CCPAguHT2ORpWLnYzVrqA7AEA63mCy63DyOJSO1oWBVT7QqgI8VkBAAAAAWGYcF6YnNGD5LbXm11fPIHMQwn/NU5Yrgw4EwhQgGypAAAAAAD+////AjcnAAAAAAAAFgAU8uBQ7GZeYpwZ0lbb6+mNJtzEgWMAAAAAAAAAACJqIPAE2dEOAAgI8CDVTZBmjkXhBci1KuH1rOibbR7yO8P3qbFeGe6sXkLYIQgI8SDzkfZNooe1h/5DHKIxHS2iQwRU/XOl2/zOK1vUFQCUxwgI8CA7vOZvNIvgu8MV+zwmxQi1R/+/HpTcMaks4jwrKwK04AgI8CDCOhURgb/qC3WTv2njiVksVXoCZ9paOuznvi5/c/v//wgI8CBeqqHIyPMjcfyCETKD0xF/gZLPvH255WkzfNKDSe51qwgI8CDzcDBgbbFGEyN80yXE9Mta2JF+NhtJx5rMYzFEnHfUVAgI8CDmn9jUjHHa1aZheg9AqLww+DaS4l2bojyNnRRPj5Nk+QgI8SBMzfLkiVm4pDWvYb/Qlf0veMWae2TzrU8xgP1sGO58iggI8CCLYBCl7Jb40D3WiCnwPITC51qcSibVEM8QClTrIbrgswgI8CBO+lBXEe7SRoS4qvJcQoCmY4YH2rm6XZXDbVCGIxnI2wgI8SDn64aF4A5SsDsq2xI33rFAxXYzzS0ZQczbrHaah/5GLQgI8CDRPFyu7OFLKnKbDXB71YKkDV0PC98Z+X1G5zs/bbRx5AgI8CCbrUp10XRUw/Zdf9YehNpcBTpPVDUeMB4uXZkckLpEzwgIAAWIlg1z1xkBA9qjO//wCFv0kwhpy9iTCPAQB1riQ5oaK0Bt5N1Zcn5vzwjxIIqLNLRpRWssYCoSbqOFcpJihE7pM6r87QeYLPIvvLzcCPEEas32zPAIEISz+9yOGVAAg9/jDS75DI4sK2h0dHBzOi8vYm9iLmJ0Yy5jYWxlbmRhci5vcGVudGltZXN0YW1wcy5vcmfwEFk4UkEjS3vVfyH7y8y6Wm0I8CDrYe+Sv0OckMvZtJ5/DiNJ03cnqFyOCbKNIjwNT0O/ogjxILtCI00gA4MMfbHZactND3y+paj+9RLOgRCRoNf42h2dCPEEas32zfAIoWTg+pXy+kUAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":971226},"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"]}