{"format":"receipts-proof/1","hash":"f7f479b3eb4075d456feb20b755ae30c5ae1ce413ec8253b737cf5b6656f03c4","provider":"demo-bollinger-squeeze","seq":86,"kind":"signal","issued_at":"2026-10-10T10:31:43.790Z","prev":"60d3bcccb76d2155fa7309748b96f5c5719f1e39cf01efd053a18081c64918c6","body":{"issued_at":"2026-10-10T10:31:43.790Z","kind":"signal","nonce":"dfb11661d21b0b14eb17b2d9fd3c7ba0","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T10:31:43.790Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.08601","targets":["0.08553","0.08529","0.08505"]},"prev":"60d3bcccb76d2155fa7309748b96f5c5719f1e39cf01efd053a18081c64918c6","provider":"demo-bollinger-squeeze","seq":86,"v":1},"signer":null,"sig":null,"batch":{"root":"e629453c240d660178698acb21856c29592d83e58960ded42e19959195056cbc","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"f5fa4711305fbe4f154263ea0d83a51a527a037228cdcddc3e62002e326ae7fc"}],"sealed_at":"2026-10-10T10:32:43.808Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970752},"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"]}