{"format":"receipts-proof/1","hash":"af1c5ddefa60aee212836e0a5fb0ecf6bfb351582cd356d545570b4e62fbceab","provider":"demo-bollinger-squeeze","seq":133,"kind":"signal","issued_at":"2026-10-21T07:30:53.266Z","prev":"c1c6af36690dad6f04fef8cd51b0e862ca42b08b3d5b57492d360f3a03a89c3c","body":{"issued_at":"2026-10-21T07:30:53.266Z","kind":"signal","nonce":"40a7a4017b4e835c308899a4cd75fee1","payload":{"entry":{"type":"market"},"expires_at":"2026-10-22T07:30:53.266Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.2238","targets":["0.2262","0.2274","0.2287"]},"prev":"c1c6af36690dad6f04fef8cd51b0e862ca42b08b3d5b57492d360f3a03a89c3c","provider":"demo-bollinger-squeeze","seq":133,"v":1},"signer":null,"sig":null,"batch":{"root":"221a757fa4ebea7595f942b285fa4f771ac0bd443ca2e0a7cb926eb442b06421","index":2,"leaf_count":3,"proof":[{"side":"L","hash":"2649fcaffd555ef0af8cbf0427a53514bf8852dd43fda1c09cee154522c48c95"}],"sealed_at":"2026-10-21T07:37:45.368Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972439},"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"]}