{"format":"receipts-proof/1","hash":"d10cd9decb8bfb39ffdfea680beeaf902b3441788192e039bdfc0a1f242b550d","provider":"demo-bollinger-squeeze","seq":32,"kind":"signal","issued_at":"2026-09-29T01:30:05.599Z","prev":"36e17dfb71ed344ba8c7f13a90567bdecef66f7238bb6f35d09481f46025b71c","body":{"issued_at":"2026-09-29T01:30:05.599Z","kind":"signal","nonce":"f5383a854a0ccda1dadd58d7338b8589","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T01:30:05.599Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.09314","targets":["0.09158","0.09079","0.09001"]},"prev":"36e17dfb71ed344ba8c7f13a90567bdecef66f7238bb6f35d09481f46025b71c","provider":"demo-bollinger-squeeze","seq":32,"v":1},"signer":null,"sig":null,"batch":{"root":"d10cd9decb8bfb39ffdfea680beeaf902b3441788192e039bdfc0a1f242b550d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T01:38:05.591Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969085},"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"]}