{"format":"receipts-proof/1","hash":"36e17dfb71ed344ba8c7f13a90567bdecef66f7238bb6f35d09481f46025b71c","provider":"demo-bollinger-squeeze","seq":31,"kind":"signal","issued_at":"2026-09-29T00:15:05.597Z","prev":"c9c37937b5cfa2031fa38ad66dd360cee1bdf389d2bec453d99b9ce61bc54c42","body":{"issued_at":"2026-09-29T00:15:05.597Z","kind":"signal","nonce":"1600ad9ec32201fbf0a293f054085f8e","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T00:15:05.597Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2462","targets":["0.2506","0.2527","0.2549"]},"prev":"c9c37937b5cfa2031fa38ad66dd360cee1bdf389d2bec453d99b9ce61bc54c42","provider":"demo-bollinger-squeeze","seq":31,"v":1},"signer":null,"sig":null,"batch":{"root":"36e17dfb71ed344ba8c7f13a90567bdecef66f7238bb6f35d09481f46025b71c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T00:16:05.586Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969072},"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"]}