{"format":"receipts-proof/1","hash":"841346791e3929139482ccf6b042b56e29e3b9b48950bfeb11fa9f1366b261d3","provider":"demo-bollinger-squeeze","seq":130,"kind":"signal","issued_at":"2026-10-21T00:53:12.441Z","prev":"d41a38878ed770190bdd015b2c6109231adf6b51b8ff5f49b458617dcc1a65b2","body":{"issued_at":"2026-10-21T00:53:12.441Z","kind":"signal","nonce":"df98e58296dc98798926d8edb5ea2f21","payload":{"entry":{"type":"market"},"expires_at":"2026-10-22T00:53:12.441Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.08177","targets":["0.08243","0.08277","0.0831"]},"prev":"d41a38878ed770190bdd015b2c6109231adf6b51b8ff5f49b458617dcc1a65b2","provider":"demo-bollinger-squeeze","seq":130,"v":1},"signer":null,"sig":null,"batch":{"root":"841346791e3929139482ccf6b042b56e29e3b9b48950bfeb11fa9f1366b261d3","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-21T01:09:41.475Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972401},"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"]}