{"format":"receipts-proof/1","hash":"d121b6f65522523a5dca9d2f6a20244167a916adff08f1999a1a7014bbebdd0e","provider":"demo-bollinger-squeeze","seq":14,"kind":"signal","issued_at":"2026-09-26T10:38:58.612Z","prev":"8978c5fac52efddc79336e193652d554b32180e1dd633a4c3b130c4bf3cb2cf7","body":{"issued_at":"2026-09-26T10:38:58.612Z","kind":"signal","nonce":"81aa3f39f2e247255b48f6e4526cce29","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T10:38:58.612Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2547","targets":["0.2587","0.2607","0.2626"]},"prev":"8978c5fac52efddc79336e193652d554b32180e1dd633a4c3b130c4bf3cb2cf7","provider":"demo-bollinger-squeeze","seq":14,"v":1},"signer":null,"sig":null,"batch":{"root":"d121b6f65522523a5dca9d2f6a20244167a916adff08f1999a1a7014bbebdd0e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T10:49:32.573Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968678},"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"]}