{"format":"receipts-proof/1","hash":"60e19aea77c7410643523c0a7ba3ba7564586b286dd4329c6635ad1703cd6e4a","provider":"demo-donchian-breakout","seq":61,"kind":"signal","issued_at":"2026-11-08T07:28:27.019Z","prev":"49c91918245e512f9a5213c348645a61e4bb10e6be36304620ea1a461f2fd196","body":{"issued_at":"2026-11-08T07:28:27.019Z","kind":"signal","nonce":"48a3925b9e3b76fa93c3aff0feac0cf9","payload":{"entry":{"type":"market"},"expires_at":"2026-11-10T07:28:27.019Z","market":{"kind":"perp","symbol":"BNBUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"695.7","targets":["703.61","708.35"]},"prev":"49c91918245e512f9a5213c348645a61e4bb10e6be36304620ea1a461f2fd196","provider":"demo-donchian-breakout","seq":61,"v":1},"signer":null,"sig":null,"batch":{"root":"a3dead477299db98331bd9a9b0024248849af1a142eff78d30b73d5b59703635","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"d6ab8fdb6a0b60f477e43351e5a1a17d98c9ee49264359f6b4adc829a99224df"}],"sealed_at":"2026-11-08T07:44:53.687Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975049},"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"]}