{"format":"receipts-proof/1","hash":"d0476f842f4d20d3941a8a3cf5a152f8cb07a79c4d65f1d36453fad245923938","provider":"demo-donchian-breakout","seq":48,"kind":"signal","issued_at":"2026-10-14T13:00:36.745Z","prev":"e04c3524cb35e78ec08b50a7ab02b09e46f318b9a3880da9f01e1b0f4dd56466","body":{"issued_at":"2026-10-14T13:00:36.745Z","kind":"signal","nonce":"87705d275f9acc5eff5127b53d25a8fc","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T13:00:36.745Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"107.37","targets":["102.49","99.57"]},"prev":"e04c3524cb35e78ec08b50a7ab02b09e46f318b9a3880da9f01e1b0f4dd56466","provider":"demo-donchian-breakout","seq":48,"v":1},"signer":null,"sig":null,"batch":{"root":"ccfb7a33fcdb6880f1e70fd48962074165a3433e05e689f7edc9b93ea4548829","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"66c060636ae911708c28ac7e57b97d4d183671036516ba39f352bcf9d86869f4"}],"sealed_at":"2026-10-14T13:00:38.672Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971410},"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"]}